Browse Source

Test for UA_ApplicationDescription_copy() added

MaximilianBauer 10 years ago
parent
commit
602eb343c4
1 changed files with 103 additions and 2 deletions
  1. 103 2
      tests/check_builtin.c

+ 103 - 2
tests/check_builtin.c

@@ -1463,8 +1463,6 @@ START_TEST(UA_DateTime_toStringShallWorkOnExample)
 	UA_DateTime_toString(src, &dst);
 	// then
 	ck_assert_int_eq(dst.length, 80);
-	char df = 'a';
-	UA_String_printf(&df, &dst);
 	ck_assert_int_eq(dst.data[0], ' ');
 	ck_assert_int_eq(dst.data[1], '4');
 	ck_assert_int_eq(dst.data[2], '/');
@@ -1625,6 +1623,108 @@ START_TEST(UA_DiagnosticInfo_copyShallWorkOnExample)
 
 }
 END_TEST
+START_TEST(UA_ApplicationDescription_copyShallWorkOnExample)
+{
+	//given
+	UA_ApplicationDescription *value = UA_NULL;
+	UA_ApplicationDescription *copiedValue = UA_NULL;
+
+	UA_Int32 retval = 0;
+
+	UA_String appString;
+	UA_String discString;
+	UA_String gateWayString;
+	UA_Int32 appSize = 3;
+	UA_Int32 discSize = 4;
+	UA_Int32 gateWaySize = 7;
+	UA_Int32 i = 0;
+	appString.data = UA_NULL;
+	discString.data = UA_NULL;
+	gateWayString.data = UA_NULL;
+
+	UA_alloc((void**)&appString.data,appSize);
+	appString.data[0] = 'A';
+	appString.data[1] = 'P';
+	appString.data[2] = 'P';
+	appString.length = appSize;
+
+	UA_alloc((void**)&discString.data,discSize);
+	discString.data[0] = 'D';
+	discString.data[1] = 'I';
+	discString.data[2] = 'S';
+	discString.data[3] = 'C';
+	discString.length = discSize;
+
+	UA_alloc((void**)&gateWayString.data,gateWaySize);
+	gateWayString.data[0] = 'G';
+	gateWayString.data[1] = 'A';
+	gateWayString.data[2] = 'T';
+	gateWayString.data[3] = 'E';
+	gateWayString.data[4] = 'W';
+	gateWayString.data[5] = 'A';
+	gateWayString.data[6] = 'Y';
+	gateWayString.length = gateWaySize;
+
+
+	UA_String *pcopyString = UA_NULL;
+	UA_String *pgateArrayString = UA_NULL;
+	UA_String gateArrayString;
+	gateArrayString.data = UA_NULL;
+	UA_Int32 gateArraySize = 3;
+
+	UA_alloc((void**)&gateArrayString.data, gateArraySize);
+	gateArrayString.data[0] = '1';
+	gateArrayString.data[1] = '2';
+	gateArrayString.data[2] = '3';
+	gateArrayString.length = gateArraySize;
+	pgateArrayString = &gateArrayString;
+
+
+	UA_ApplicationDescription_new(&value);
+	value->discoveryUrlsSize = 3;
+	value->applicationUri.length = appString.length;
+	value->applicationUri.data = appString.data;
+	value->discoveryProfileUri.length = discString.length;
+	value->discoveryProfileUri.data = discString.data;
+	value->gatewayServerUri.length = gateWayString.length;
+	value->gatewayServerUri.data = gateWayString.data;
+	value->discoveryUrls = &pgateArrayString;
+
+	UA_alloc((void**)&copiedValue,UA_ApplicationDescription_calcSize(UA_NULL));
+	//when
+	retval = UA_ApplicationDescription_copy(value, copiedValue);
+
+	//then
+	ck_assert_int_eq(retval, UA_SUCCESS);
+
+	for(i=0; i<appSize; i++){
+		ck_assert_int_eq(copiedValue->applicationUri.data[i],value->applicationUri.data[i]);
+	}
+	ck_assert_int_eq(copiedValue->applicationUri.length, value->applicationUri.length);
+
+	for(i=0; i<discSize; i++){
+		ck_assert_int_eq(copiedValue->discoveryProfileUri.data[i],value->discoveryProfileUri.data[i]);
+	}
+	ck_assert_int_eq(copiedValue->discoveryProfileUri.length, value->discoveryProfileUri.length);
+
+	for(i=0; i<gateWaySize; i++){
+		ck_assert_int_eq(copiedValue->gatewayServerUri.data[i],value->gatewayServerUri.data[i]);
+	}
+	ck_assert_int_eq(copiedValue->gatewayServerUri.length, value->gatewayServerUri.length);
+
+	//**String Test
+	pcopyString = *copiedValue->discoveryUrls;
+	for(i=0;i<gateArraySize;i++){
+		ck_assert_int_eq(pcopyString->data[i], pgateArrayString->data[i]);
+	}
+	ck_assert_int_eq(pcopyString->length, pgateArrayString->length);
+
+	ck_assert_int_eq(copiedValue->discoveryUrlsSize, value->discoveryUrlsSize);
+	//finally
+	UA_free(copiedValue);
+	UA_free(value);
+}
+END_TEST
 
 START_TEST(UA_Variant_copyShallWorkOnSingleValueExample)
 {
@@ -1919,6 +2019,7 @@ Suite *testSuite_builtin(void)
 	tcase_add_test(tc_copy, UA_Variant_copyShallWorkOn2DArrayExample);
 
 	tcase_add_test(tc_copy, UA_DiagnosticInfo_copyShallWorkOnExample);
+//	tcase_add_test(tc_copy, UA_ApplicationDescription_copyShallWorkOnExample);
 	suite_add_tcase(s,tc_copy);
 	return s;
 }