Add support for serializing tdbPersonalOwnerInfo
[libisds.git] / test / offline / isds_DbOwnerInfo_duplicate.c
blob4689d880cfa5c3dc45db68e29ab46db166805b7f
1 #include "../test.h"
2 #include "isds.h"
3 #include <string.h>
5 static int test_isds_DbOwnerInfo_duplicate(struct isds_DbOwnerInfo *origin) {
6 struct isds_DbOwnerInfo *copy = isds_DbOwnerInfo_duplicate(origin);
7 TEST_DESTRUCTOR((void(*)(void*))isds_DbOwnerInfo_free, &copy);
9 if (!origin) {
10 if (copy)
11 FAIL_TEST("Duplicate of NULL should be NULL");
12 PASS_TEST;
15 if (!copy)
16 FAIL_TEST("isds_DbOwnerInfo_duplicate() returned NULL instead of "
17 "pointer to copy");
19 TEST_STRING_DUPLICITY(origin->dbID, copy->dbID);
20 TEST_INTPTR_DUPLICITY(origin->dbType, copy->dbType);
21 TEST_STRING_DUPLICITY(origin->ic, copy->ic);
23 /* Name of person */
24 TEST_POINTER_DUPLICITY(origin->personName, copy->personName);
25 if (origin->personName && copy->personName) {
26 TEST_STRING_DUPLICITY(origin->personName->pnFirstName,
27 copy->personName->pnFirstName);
28 TEST_STRING_DUPLICITY(origin->personName->pnMiddleName,
29 copy->personName->pnMiddleName);
30 TEST_STRING_DUPLICITY(origin->personName->pnLastName,
31 copy->personName->pnLastName);
32 TEST_STRING_DUPLICITY(origin->personName->pnLastNameAtBirth,
33 copy->personName->pnLastNameAtBirth);
36 /* Birth of person */
37 TEST_POINTER_DUPLICITY(origin->birthInfo, copy->birthInfo);
38 if(origin->birthInfo && copy->birthInfo) {
39 TEST_TMPTR_DUPLICITY(origin->birthInfo->biDate,
40 copy->birthInfo->biDate);
41 TEST_STRING_DUPLICITY(origin->birthInfo->biCity,
42 copy->birthInfo->biCity);
43 TEST_STRING_DUPLICITY(origin->birthInfo->biCounty,
44 copy->birthInfo->biCounty);
45 TEST_STRING_DUPLICITY(origin->birthInfo->biState,
46 copy->birthInfo->biState);
49 /* Post address */
50 TEST_POINTER_DUPLICITY(origin->address, copy->address);
51 if (origin->address && copy->address) {
52 TEST_INTPTR_DUPLICITY(origin->address->adCode,
53 copy->address->adCode);
54 TEST_STRING_DUPLICITY(origin->address->adCity,
55 copy->address->adCity);
56 TEST_STRING_DUPLICITY(origin->address->adDistrict,
57 copy->address->adDistrict);
58 TEST_STRING_DUPLICITY(origin->address->adStreet,
59 copy->address->adStreet);
60 TEST_STRING_DUPLICITY(origin->address->adNumberInStreet,
61 copy->address->adNumberInStreet);
62 TEST_STRING_DUPLICITY(origin->address->adNumberInMunicipality,
63 copy->address->adNumberInMunicipality);
64 TEST_STRING_DUPLICITY(origin->address->adZipCode,
65 copy->address->adZipCode);
66 TEST_STRING_DUPLICITY(origin->address->adState,
67 copy->address->adState);
70 TEST_STRING_DUPLICITY(origin->nationality, copy->nationality);
71 TEST_STRING_DUPLICITY(origin->email, copy->email);
72 TEST_STRING_DUPLICITY(origin->telNumber, copy->telNumber);
73 TEST_STRING_DUPLICITY(origin->identifier, copy->identifier);
74 TEST_BOOLEANPTR_DUPLICITY(origin->aifoIsds, copy->aifoIsds);
75 TEST_STRING_DUPLICITY(origin->registryCode, copy->registryCode);
76 TEST_INTPTR_DUPLICITY(origin->dbState, copy->dbState);
77 TEST_BOOLEANPTR_DUPLICITY(origin->dbEffectiveOVM, copy->dbEffectiveOVM);
78 TEST_BOOLEANPTR_DUPLICITY(origin->dbOpenAddressing, copy->dbOpenAddressing);
80 PASS_TEST;
84 int main(void) {
86 INIT_TEST("isds_DbOwnerInfo_duplicate()");
87 if (isds_init())
88 ABORT_UNIT("isds_init() failed");
90 TEST("NULL", test_isds_DbOwnerInfo_duplicate, NULL);
92 struct isds_DbOwnerInfo empty;
93 memset(&empty, 0, sizeof(empty));
94 TEST("Empty structure", test_isds_DbOwnerInfo_duplicate, &empty);
96 /* Full structure */
97 isds_DbType dbType = 2;
98 long int adCode = 4;
99 struct isds_PersonName PersonName = {
100 .pnFirstName = "P1",
101 .pnMiddleName = "P2",
102 .pnLastName = "P3",
103 .pnLastNameAtBirth = "P4"
105 struct tm BiDate = {
106 .tm_year = 1,
107 .tm_mon = 2,
108 .tm_mday = 3
110 struct isds_BirthInfo BirthInfo = {
111 .biDate = &BiDate,
112 .biCity = "B2",
113 .biCounty = "B3",
114 .biState = "B4"
116 struct isds_Address Address = {
117 .adCode = &adCode,
118 .adCity = "A1",
119 .adDistrict = "A2",
120 .adStreet = "A3",
121 .adNumberInStreet = "A4",
122 .adNumberInMunicipality = "A5",
123 .adZipCode = "A6",
124 .adState = "A7"
126 long int DbState = 13;
127 _Bool aifoIsds = 1;
128 _Bool DbEffectiveOVM = 1;
129 _Bool DbOpenAddressing = 1;
130 struct isds_DbOwnerInfo full = {
131 .dbID = "1",
132 .dbType = &dbType,
133 .ic = "3",
134 .personName = &PersonName,
135 .firmName = "5",
136 .birthInfo = &BirthInfo,
137 .address = &Address,
138 .nationality = "8",
139 .email = "9",
140 .telNumber = "10",
141 .identifier = "11",
142 .aifoIsds = &aifoIsds,
143 .registryCode = "12",
144 .dbState = &DbState,
145 .dbEffectiveOVM = &DbEffectiveOVM,
146 .dbOpenAddressing = &DbOpenAddressing
148 TEST("Full structure", test_isds_DbOwnerInfo_duplicate, &full);
150 isds_cleanup();
151 SUM_TEST();