[asterisk-commits] dvossel: branch group/aoc r251943 - in /team/group/aoc: include/asterisk/ mai...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Fri Mar 12 11:48:34 CST 2010


Author: dvossel
Date: Fri Mar 12 11:48:30 2010
New Revision: 251943

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=251943
Log:
additional aoc unit test checks

Modified:
    team/group/aoc/include/asterisk/aoc.h
    team/group/aoc/main/aoc.c
    team/group/aoc/tests/test_aoc.c

Modified: team/group/aoc/include/asterisk/aoc.h
URL: http://svnview.digium.com/svn/asterisk/team/group/aoc/include/asterisk/aoc.h?view=diff&rev=251943&r1=251942&r2=251943
==============================================================================
--- team/group/aoc/include/asterisk/aoc.h (original)
+++ team/group/aoc/include/asterisk/aoc.h Fri Mar 12 11:48:30 2010
@@ -133,7 +133,7 @@
 
 /* \brief Sets the type of total for a AOC-D message
  *
- * \note If this value is not set, the default for the message is TOTAL 
+ * \note If this value is not set, the default for the message is TOTAL
  *
  * \param total type, TOTAL or SUBTOTAL
  *
@@ -145,7 +145,7 @@
  *
  * \param ast_aoc_decoded struct to set values on
  * \param currency amount REQUIRED
- * \param currency multiplier REQUIRED
+ * \param currency multiplier REQUIRED, 0 or undefined value defaults to AOC_MULT_ONE.
  * \param currency name OPTIONAL
  *
  * \retval 0 success

Modified: team/group/aoc/main/aoc.c
URL: http://svnview.digium.com/svn/asterisk/team/group/aoc/main/aoc.c?view=diff&rev=251943&r1=251942&r2=251943
==============================================================================
--- team/group/aoc/main/aoc.c (original)
+++ team/group/aoc/main/aoc.c Fri Mar 12 11:48:30 2010
@@ -411,6 +411,7 @@
 			encoded->flags |= AOC_ENCODED_CHARGE_FREE;
 		case AOC_CHARGE_NA:
 		default:
+			encoded->flags |= AOC_ENCODED_CHARGE_NA;
 			break;
 		}
 
@@ -474,7 +475,6 @@
 	}
 
 	return 0;
-
 }
 
 unsigned int ast_aoc_get_currency_amount(struct ast_aoc_decoded *decoded)
@@ -611,7 +611,7 @@
 		res = -1;
 	}
 
-	ast_free(new);
-	ast_free(encoded);
+	ast_aoc_destroy_decoded(new);
+	ast_aoc_destroy_encoded(encoded);
 	return res;
 }

Modified: team/group/aoc/tests/test_aoc.c
URL: http://svnview.digium.com/svn/asterisk/team/group/aoc/tests/test_aoc.c?view=diff&rev=251943&r1=251942&r2=251943
==============================================================================
--- team/group/aoc/tests/test_aoc.c (original)
+++ team/group/aoc/tests/test_aoc.c Fri Mar 12 11:48:30 2010
@@ -16,12 +16,12 @@
  * at the top of the source tree.
  */
 
-/*! 
+/*!
  * \file
  * \brief Generic AOC encode decode tests
  *
- * \author David Vossel  <dvossel at digium.com>
- * 
+ * \author David Vossel <dvossel at digium.com>
+ *
  * \ingroup tests
  */
 
@@ -168,14 +168,39 @@
 
 	}
 
-	/* Add billing id information */
-	if ((ast_aoc_set_billing_id(decoded, AOC_BILLING_CALL_FWD_NO_REPLY) ||
-		(ast_aoc_get_billing_id(decoded) != AOC_BILLING_CALL_FWD_NO_REPLY))) {
-
-		ast_test_status_update(test, "TEST 2, could not set billing id correctly\n");
-		res = AST_TEST_FAIL;
-		goto cleanup_aoc_test;
-
+	/* Test every billing id possiblity */
+	{
+		int billid[9] = {
+			AOC_BILLING_NA,
+			AOC_BILLING_NORMAL,
+			AOC_BILLING_REVERSE_CHARGE,
+			AOC_BILLING_CREDIT_CARD,
+			AOC_BILLING_CALL_FWD_UNCONDITIONAL,
+			AOC_BILLING_CALL_FWD_BUSY,
+			AOC_BILLING_CALL_FWD_NO_REPLY,
+			AOC_BILLING_CALL_DEFLECTION,
+			AOC_BILLING_CALL_TRANSFER,
+		};
+		int i;
+
+		/* these should fail */
+		if (!(ast_aoc_set_billing_id(decoded, (AOC_BILLING_NA - 1))) ||
+			!(ast_aoc_set_billing_id(decoded, (AOC_BILLING_CALL_TRANSFER + 1)))) {
+
+				ast_test_status_update(test, "TEST 2, setting invalid billing id should fail\n");
+				res = AST_TEST_FAIL;
+				goto cleanup_aoc_test;
+		}
+
+		for (i = 0; i < ARRAY_LEN(billid); i++) {
+			if ((ast_aoc_set_billing_id(decoded, billid[i]) ||
+				(ast_aoc_get_billing_id(decoded) != billid[i]))) {
+
+				ast_test_status_update(test, "TEST 2, could not set billing id correctly, iteration #%d\n", i);
+				res = AST_TEST_FAIL;
+				goto cleanup_aoc_test;
+			}
+		}
 	}
 	/* Encode the message */
 	if (ast_aoc_test_encode_decode_match(decoded)) {
@@ -229,10 +254,51 @@
 	}
 	if ((decoded = ast_aoc_create(AOC_REQUEST, 0, 0))) {
 
-		ast_test_status_update(test, "Test 4: aoc-d creation with no valid charge type should fail\n");
-		res = AST_TEST_FAIL;
-		goto cleanup_aoc_test;
-	}
+		ast_test_status_update(test, "Test 4: aoc request creation with no data should have failed\n");
+		res = AST_TEST_FAIL;
+		goto cleanup_aoc_test;
+	}
+	if ((decoded = ast_aoc_create(AOC_REQUEST, -12345678, -23456789))) {
+
+		ast_test_status_update(test, "Test 4: aoc request creation with random data should have failed\n");
+		res = AST_TEST_FAIL;
+		goto cleanup_aoc_test;
+	}
+
+	/* ---- Test 5 ---- create AOC-E message with charge type == FREE and charge type == NA */
+	/* create AOC-E message */
+	if (!(decoded = ast_aoc_create(AOC_E, AOC_CHARGE_FREE, 0)) ||
+		(ast_aoc_get_msg_type(decoded) != AOC_E) ||
+		(ast_aoc_get_charge_type(decoded) != AOC_CHARGE_FREE)) {
+
+		ast_test_status_update(test, "Test 5: failed to create AOC-E message, charge type Free\n");
+		res = AST_TEST_FAIL;
+		goto cleanup_aoc_test;
+	}
+	if (ast_aoc_test_encode_decode_match(decoded)) {
+		ast_test_status_update(test, "Test5: encode decode routine did not match expected results, charge type Free\n");
+		res = AST_TEST_FAIL;
+		goto cleanup_aoc_test;
+	}
+	/* cleanup decoded msg */
+	decoded = ast_aoc_destroy_decoded(decoded);
+
+	/* create AOC-E message */
+	if (!(decoded = ast_aoc_create(AOC_E, AOC_CHARGE_NA, 0)) ||
+		(ast_aoc_get_msg_type(decoded) != AOC_E) ||
+		(ast_aoc_get_charge_type(decoded) != AOC_CHARGE_NA)) {
+
+		ast_test_status_update(test, "Test 5: failed to create AOC-E message, charge type NA\n");
+		res = AST_TEST_FAIL;
+		goto cleanup_aoc_test;
+	}
+	if (ast_aoc_test_encode_decode_match(decoded)) {
+		ast_test_status_update(test, "Test5: encode decode routine did not match expected results, charge type NA.\n");
+		res = AST_TEST_FAIL;
+		goto cleanup_aoc_test;
+	}
+	/* cleanup decoded msg */
+	decoded = ast_aoc_destroy_decoded(decoded);
 
 cleanup_aoc_test:
 




More information about the asterisk-commits mailing list