Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
ContactSave Unit Tests: Cleanup and formatting to Given/When/Then
[xestiaab/.git] / source / tests / xestiaab_contactsave.h
index 8a09b03..c2de21f 100644 (file)
 
 #include "../contacteditor/cdo/ContactDataObject.h"
 
-TEST(ContactSave, ContactSaveTests){
-       
-       ContactDataObject TestFile1;
-       ContactDataObject TestFile2;
-       ContactDataObject TestFile3;
-       
+TEST(ContactSave, GivenAContactDataObjectWhenSaveStringIsCalledThenContactDataSavesToAString)
+{
+
        wxString SaveData;
        wxString SaveDataCompare = "BEGIN:VCARD\n"
        "VERSION:4.0\n"
        "PRODID:-//Xestia//Address Book Unit Testing//KW\n"
+       "REV:20160703T091000Z\n"
        "FN:Test vCard\n"
        "TITLE:Knight of the Tests\n"
        "TITLE:The Tester of Cornwall\n"
        "END:VCARD";
+
+       // Given
+
+       ContactDataObject testFile;
        
-       ASSERT_EQ(CONTACTLOAD_OK, TestFile1.LoadFile("LoadCheck-Load1.vcf"));
+       ContactLoadStatus testFileLoadStatus = CONTACTLOAD_UNITTESTFAIL;
+       testFileLoadStatus = testFile1.LoadFile("LoadCheck-Load1.vcf");
        
-       ASSERT_EQ(CONTACTSAVE_OK, TestFile1.SaveString(&SaveData));
+       ASSERT_EQ(CONTACTLOAD_OK, testFileLoadStatus);
+
+       // When
        
-       ASSERT_EQ(SaveDataCompare, SaveData);
+       ContactSaveStatus testFileSaveStatus = CONTACTSAVE_UNITTESTFAIL;
+       testFileSaveStatus = testFile.SaveString(&SaveData);
        
-       ASSERT_EQ(CONTACTLOAD_OK, TestFile2.LoadFile("LoadCheck-Load2.vcf"));
+       // Then
        
-       SaveData.clear();
-       SaveDataCompare = "BEGIN:VCARD\n"
-       "VERSION:4.0\n"
-       "PRODID:-//Xestia//Address Book Unit Testing//KW\n"
-       "FN:Test vCard\n"
-       "TITLE:The Third Title\n"
-       "TITLE:Knight of the Tests\n"
-       "TITLE:The Tester of Cornwall\n"
-       "END:VCARD";
-       
-       ASSERT_EQ(CONTACTSAVE_OK, TestFile2.SaveString(&SaveData));
+       ASSERT_EQ(CONTACTSAVE_OK, testFileSaveStatus);
        ASSERT_EQ(SaveDataCompare, SaveData);
 
-       SaveData.clear();
-       SaveDataCompare = "BEGIN:VCARD\n"
+}
+
+TEST(ContactSave, GivenContactDataObjectWithLotsOfInformationWhenSaveStringIsCalledThenContactStringMatches)
+{
+
+       ContactDataObject testFile;
+       
+       wxString saveData;
+       wxString saveDataCompare;
+       
+       saveDataCompare = "BEGIN:VCARD\n"
        "VERSION:4.0\n"
        "PRODID:-//Xestia//Address Book Unit Testing//KW\n"
        "UID:903588-9082374-989120310-AAFECDBCDF\n"
        "KIND:individual\n"
+       "REV;TEST=YES;DATA=NO;MORE=MAYBE:20160703T091000Z\n"
        "XML:<a xmlns=\"http://www.w3.org/1999/xhtml\"\\n   href=\"http://example.com/\">Ex\n"
        " ample Page 1</a>\n"
        "XML;ALTID=3:<a xmlns=\"http://www.w3.org/1999/xhtml\"\\n   href=\"http://example.\n"
@@ -79,11 +85,16 @@ TEST(ContactSave, ContactSaveTests){
        "CLIENTPIDMAP;MEEP=MOO;WOOP=WOO:3;urn;uuid:bbbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbb\n"
        " bb\n"
        "FN;TYPE=work;LANGUAGE=kw;ALTID=500;PID=40;PREF=45;EXAMPLE=Baaa:Test Contact\n"
+       "N;ALTID=3;LANGUAGE=kw;SORT-AS=\"Contact,Test\";TEST=Yes:Contact;Test;Example;Ro\n"
+       " bot;LOONY\n"
        "NICKNAME;ALTID=35;LANGUAGE=kw;PID=50;PREF=40;YAY=Nope;Beep=Boop:Tester\n"
        "NICKNAME;TYPE=home;ALTID=17;LANGUAGE=en;PID=39;PREF=78;YAY=Yep;Beep=Boop:Test\n"
        " y\n"
        "NICKNAME;TYPE=work;ALTID=99;LANGUAGE=en-GB;PID=10;PREF=1;YAY=Maybe;Boop=Boing\n"
        " :The Testing One\n"
+       "GENDER;BEEP=Boop:F;Example Text\n"
+       "BDAY;ALTID=35;CALSCALE=georgian;HAPPY=Days:20040101\n"
+       "ANNIVERSARY;ALTID=70;CALSCALE=georgian;WONDERFUL=Day:20200516\n"
        "TITLE;ALTID=20;LANGUAGE=text/plain;PID=21;PREF=22;EEP=LIGHT:Lord of Light\n"
        "TITLE;TYPE=home;ALTID=30;LANGUAGE=grass/dry;PID=31;PREF=32;EEP=DARK:Lord of D\n"
        " arkness\n"
@@ -110,6 +121,15 @@ TEST(ContactSave, ContactSaveTests){
        "EMAIL;ALTID=10;PID=20;PREF=40;WONDERFUL=Colour:moo@example.com\n"
        "EMAIL;TYPE=home;ALTID=5;PID=10;PREF=20;PEACE=quiet:moo.home@example.com\n"
        "EMAIL;TYPE=work;ALTID=1;PID=2;PREF=3;BUSINESS=Money:moo.business@example.com\n"
+       "IMPP;ALTID=10;MEDIATYPE=text/plain;PID=20;PREF=40;WONDERFUL=Colour:skype:moo@\n"
+       " example.com\n"
+       "IMPP;TYPE=home;ALTID=20;MEDIATYPE=text/reallyplain;PID=40;PREF=80;PEACE=quiet\n"
+       " :msn:moo.home@example.com\n"
+       "IMPP;TYPE=work;ALTID=98;MEDIATYPE=text/superplain;PID=99;PREF=50;BUSINESS=Mon\n"
+       " ey:xmpp:moo.business@example.com\n"
+       "TEL;TYPE=\"fax,cell\";ALTID=10;PID=20;PREF=40;WONDERFUL=Colour:tel:00000000\n"
+       "TEL;TYPE=\"home,fax\";ALTID=10;PID=20;PREF=40;BUSINESS=Money:tel:00001111\n"
+       "TEL;TYPE=\"work,voice\";ALTID=25;PID=50;PREF=75;BEEP=Boop:tel:22221111\n"
        "LANG;ALTID=20;PID=40;PREF=80;GELFORN=Great:kw\n"
        "LANG;TYPE=home;ALTID=22;PID=45;PREF=90;LANGUAGE=yes:en\n"
        "LANG;TYPE=work;ALTID=10;PID=15;PREF=20;FFENSTRI=ie:cy\n"
@@ -544,14 +564,223 @@ TEST(ContactSave, ContactSaveTests){
        " rOiaKk49EpYoqYecozQYDhT04juULDYbJn7IXeksuXpi2v2irciAXICHx2PAvM4SVoUKcberP+c9\n"
        " c+Pj7unVvPkyBqbwKmHWBSOj4S4e7W5oSH9nHhrW1jnyCtQZClVD86hh6E7vpEDb8Ny+AbwuSlI+\n"
        " b4KyFDt6/fEADBnCOeFgDID42jkBQ+wFjNEAGMJtbcK5WgAODg==\n"
+       "CALURI;ALTID=34;MEDIATYPE=text/plain;PID=31;PREF=32;CALENDARS=FLYING:http://e\n"
+       " xample.com\n"
+       "CALURI;TYPE=home;ALTID=44;MEDIATYPE=text/dryplain;PID=41;PREF=42;CALENDARS=GR\n"
+       " OUNDED:http://example.com/home\n"
+       "CALURI;TYPE=work;ALTID=54;MEDIATYPE=text/stillwetink;PID=51;PREF=52;CALENDARS\n"
+       " =CANCELLED:http://example.com/business\n"
+       "CALADRURI;ALTID=14;MEDIATYPE=text/plain;PID=11;PREF=12;REQUEST=YES:http://exa\n"
+       " mple.com/request\n"
+       "CALADRURI;TYPE=home;ALTID=24;MEDIATYPE=text/dryplain;PID=21;PREF=22;REQUEST=M\n"
+       " AYBE:http://example.com/home/request\n"
+       "CALADRURI;TYPE=work;ALTID=34;MEDIATYPE=text/stillwetink;PID=31;PREF=32;REQUES\n"
+       " T=NO:http://example.com/business/request\n"
+       "FBURL;ALTID=74;MEDIATYPE=text/plain;PID=71;PREF=72;STATUS=OUT:http://example.\n"
+       " com/freebusy\n"
+       "FBURL;TYPE=home;ALTID=84;MEDIATYPE=text/dryplain;PID=81;PREF=82;STATUS=FREE:h\n"
+       " ttp://example.com/home/freebusy\n"
+       "FBURL;TYPE=work;ALTID=94;MEDIATYPE=text/stillwetink;PID=91;PREF=92;STATUS=BUS\n"
+       " Y:http://example.com/business/freebusy\n"
+       "KEY;ALTID=54;PID=51;PREF=52;KEYS=JUSTONE:data:application/pgp-keys;base64,LS0\n"
+       " tLS1CRUdJTiBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tClZlcnNpb246IEdudVBHIHYyCgptUU1\n"
+       " 1QkZaL0JyWVJDQUN2cTNueUl4dXJPOFovMHcwQWdkeUdhN1d2cWRpdk5OWVdEM3dmZkgrSi83R2o\n"
+       " 1dkNOClJwWFQ5TVI4SEdmR0Jwai9hc0NsajltbjhnRENMcVZJaXFybXZXK3dHbnhBVWxFU05VT20\n"
+       " 1cEx6NTRwTzBzOW0KYzJ5SDRkYWVYR3pRTXFLUit2TDZaTWpDc0pSRk1UWVAzSDlTMlBFaHFFMXl\n"
+       " 4TnBpRi9ZTS9jNGNOYmU5bEZsTgpKMnJ2QzA2bzZuMFlzYWtuZTk3bWlndGNyTUpZVDljVDF4cjB\n"
+       " 5YUhDekcrVXZqOG1RMnlGT0tpVEpxeGlCVEdhClRMWjJjTFBVZVFFbnpjSWNwNnhVTitQZlZYZzN\n"
+       " NVllHWUZQakk0aUg0anNCQUFDc1BEMmpYSExnYVVzLzJ5VHUKNVF4M1RKSHljVTArOXZidC85VDJ\n"
+       " KdGt3c1R5SXlqQnJ0eGd6QVFERENaaFZoNU5oOFJuSWlSRDFzMzNmN1RoZgp4eENUMU0yWHI3dWh\n"
+       " 1WVFTZ1FmNUFRYkFscDZpUk9xTms5VVlBeHNSWVdPelRFd3RWMGlCLzBJamwyZFBUTm1YClJxNW9\n"
+       " FN0JOT3JYZjEzMmM4NlFpNWdPbGVHbWNoNFEvUUZTbUYwT05FZCs4aVNWemMvaVdFTUh4SzROZ1Z\n"
+       " MN0kKc0FMMDVweGZhdWxpWlRlWVVGcGM1ajZnWHFpUExyNy93ODB4Q05vOWZsWmZXQkZzYVhMZm1\n"
+       " 0Z3I1MU9kYXhJNQpLZnFjRjg1cnVQSkZkZjJWb1hxRU81YXpHZ1VsS0xoZDg5NkZUR21tZEF0SUp\n"
+       " 5b0RtTldyVFgwS1VqQ05ELzM4Ck5UZDZrK3h6bW1NcTJCRy9VRy9NVGtlTUl1T3BEenZGQjBiR2N\n"
+       " RZnlGSC9iVnRjQzBOS2lnT0crMStPZ1dMMGUKQzZqcGRyYXU3THNKeXcrbU9VSjdHWHFTN2pKWnU\n"
+       " 2ZjBZcWxLbEZrUllBZi9VekVUL3lBU2VhQUV2a1BqMnF5Lwo4b1ZIQWdrVGFZSWUvSHF1UEN4RVc\n"
+       " 4bmgzWEp2emIxaWVlOHMrT2lZaE1wWVFIdFVTYTdESWR1eTgzZllTS2REClZzUnNNWExiMFlyZ1I\n"
+       " vamhxdVZhYzR3TXFvZ3JJTGRoK3lhcDdtUEhwdUVrOCtLcGROUldJNkZMS0srekpxcVYKZWh6ckN\n"
+       " Dc1QzL09URUd6bnpTSllXOXdQWkhlbEViMVhjQjIvbXJZSWlaZkZvUUI5K1ozNkYzS051UDR5cTd\n"
+       " GcQpacWV5L0NLRFN4OTl4ckJwaTlLVENJUTl6UE5QS0xiSk0xUWFSVlNMNEhIcmh6dFJQc2Jtbzl\n"
+       " OS01lVHliSkE5ClpvY0JZRno1d1Q1RWRuZEdRUG51eWhESHY4UHZrbStWQXJnRVpkdUdFL0tIT1N\n"
+       " 6amlOVFE0QUtzaWc2OThFWGYKb0xRc1JYaGhiWEJzWlNCVmMyVnlJQ2hKYm5aaGJHbGtLU0E4Wlh\n"
+       " oaGJYQnNaVUJsZUdGdGNHeGxMbU52YlQ2SQpnUVFURVFnQUtRVUNWbjhHdGdJYkF3VUpBREJDQ2d\n"
+       " jTENRZ0hBd0lCQmhVSUFna0tDd1FXQWdNQkFoNEJBaGVBCkFBb0pFSWJ1TXE0ZVZZTFY0L01BL2l\n"
+       " SUG41cUttdC9MK0doWVlIcCtlNmRiTHdxRFpCRkI3WGRlTTNZNlVScC8KQVFDZ21NSGM4d21YS0M\n"
+       " 0QTJUMURPTHdhMUNVVzFLWHBaWm9xWEEwLzFhcHBHcmtCalFSV2Z3YTJFQVlBbnZYZgp0OWg1QnY\n"
+       " yWTdvckp2UGQvTXNYTlZMc0E1UTh3TTc2TytrRjdWMktsNzBjZitJVDM5UUpWRGtKSk15NjFGUEQ\n"
+       " vClFoME5WNm05VjVsZ0E0U2psamo0SzIvc0ExUlhkRHVtaWFrWk1naUN4eXBveEhjM09uOEdXdi9\n"
+       " kZXl0WExpU2YKQnRrVHpiZEZmMDVHdGk1NXc1cnREQmxEM1o2YmR6U0ZtRS8rK2VFYXR4Uzh5NXJ\n"
+       " BNTM2WmpoSm5RQm43dm1aSQpwb3FUeTR0SEQ3aU5oWjN5eXFjZlpBd3BzSmNpZy9RdGVhZWNFUVg\n"
+       " vSVlvL01wQllMTkp1V1VSRVpqeERBQU1GCkJmOUxmVlZJakhBdWt3NzUxeHFsQmhaUTRCVVV5eHE\n"
+       " 4UTVicjZXVjJzeVppNnhWSW5OS2h3Q2NGYkZNVjV4TUIKczg3eGFzc1UrVzlaZktuODdScDRpa3J\n"
+       " xOEVvV3FPZTVMQW93SUF6bHYxVUlzMWRpOENHeStlU1lhYVMzVGd0Ywo2REhGS004Vk5KUU8wVWZ\n"
+       " kUXNwS2FuNUVLL1ZUNy9QQVJONGFKcFZxdjNtYkVFWkdJdDJHMStpUm15VW5LbFd4CkxoaUkyREs\n"
+       " 5Rm9CajhucXlJVG1KMTBVTmRib2lmeUtFNTFwU2VlYjN3Rm8yNGhNNlVkbEVwVitQVGJvU0dGZXA\n"
+       " KNGQrSVp3UVlFUWdBRHdVQ1ZuOEd0Z0liREFVSkFEQkNDZ0FLQ1JDRzdqS3VIbFdDMVlJT0FRQ0F\n"
+       " yWXRSZDBqSQpFYWNPbUxRWUNNUzNGVUNQRDc3dFlxd1VqM3NjSGVYWTdBRDhEKzAvMWdDdlZXelJ\n"
+       " uZ1dBSFZidXZxSkhmUEFpCm1HVFVHa1ZHOGNZdlBlUT0KPWtxclcKLS0tLS1FTkQgUEdQIFBVQkx\n"
+       " JQyBLRVkgQkxPQ0stLS0tLQo=\n"
+       "KEY;TYPE=home;ALTID=64;PID=61;PREF=62;KEYS=NONE:data:application/pgp-keys;bas\n"
+       " e64,LS0tLS1CRUdJTiBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tClZlcnNpb246IEdudVBHIHYy\n"
+       " CgptUU11QkZaL0tiWVJDQUNqTDdwMDZEVTJaQTZwdmJkZ1BVQU5hd1dwTGt3ZlFnZHdWdkVNcFQv\n"
+       " RnZuQjNGbDV4CnFFL2dMRFJDZlhLTVF4UEF1NWRBWUVpZVhxN01KN0ZtVXVYbDhJSjZiY3pKRUNm\n"
+       " WUF6RFJ0VmJlMm5ReXMyUDcKaXBFcnREK1dOZFM5MEVPbFVYb2lhOGR3NmpXczl5QUIvb3BubXBD\n"
+       " V21wQjI2UVBKNDlNWTBVNWZ1NzhwamJ2MAppMWxmUXIyaWp4QzRDWHZlOGxld05Uak1pOU5UNkt6\n"
+       " R1lwUXc1MHpXUng0Zk9teENselE5c3lQUWFuZ1htaTVECmk5MytNYXBaSlZpY3UyT3I1VkdqUlRX\n"
+       " YWovUDNqN1p2REdtNGNwaUhqMURsNTFVam5ZM09xOXE4VnczMkEvK2YKbW9SWWxiY3dtWU1LeVMz\n"
+       " MHJxSjVCOE0xcTdsenJ3TTBGQXczQVFEN3FnOE9pR2E1emR1UnlYdGlQMFFNSVZBOApDZUxuR25x\n"
+       " YUJQdytEYkhDUndmK05ZelJiNUxBUXZQTXpsNlkrUTczb3N4VXhMYzBHOUt5K2tNWVRNSFg5S2xz\n"
+       " CmV2UThoQkFEc3Y5WDhVeklBRXpLUUJVQ2tWT0JQT2xLMnJiaHdrRzZGendDdzJDemxmU0NXSzBx\n"
+       " aWhPbGFQVEsKL0c1SVJEQWg2SkFXTitjM1c5SHp1TUN1T1Vhb3didENhU2cxcFdocWNEY2hoWFZt\n"
+       " NGdPZ3F6cDNkWXdKU3FEQwpCWGV4KzRsWk84TzZSa3BPMVhmTHlkSWpxSlQrQUNMdkFjek8zbW90\n"
+       " c2J6OEZNWWZzVTQ2ZWsvd05DczZJdlFDCjJQcFFJbHFHU3NmZXFLUGpsUXVGbkRQNHEvNUNlVU5o\n"
+       " dmZrMm5VeTcwTzc4Z2hFdEViUU44MXNxWUpROHBTdTcKRExjVS8zQ1oyYXJ0RWxkVGJ5a0p1RTJ6\n"
+       " a3BVMjA1WTJvU0lDMkI1eXFnZjlIeWZOemYxU3lsRVV5d3ZzZ3F2LwpuNUNzbDdobDNML3BSQ1A0\n"
+       " dEF0NTA5TFFiejNDRk8vSGk3Umg1V3luOFVXZ1EzU0dYdThWQjNrUGhmRkFDNFZPCjJBUVdnMFlD\n"
+       " eEthSSs1dUljUWRGSDR6b0s0cWNidmxZN0xWNXozOWIza2JGWUgzVytEZjJkNkhJRzZaZUF2aXQK\n"
+       " ZXhZZWNlMGNpS0l6dklqVUJydUI0R3BRREhZbGN5QmpxcWtOVE5zTzU4aEsvQisvangxMGdLUVJT\n"
+       " a0lwc0VJVgpLa0dBRk5sVnlMTGthck1hYnRNWUlzZnBidWtoSjF3d09aTXJITGJwSGxQSFFzSDJJ\n"
+       " czNIdmlkQ2RBdUdRMWQyCjE2U3lEMGFUMHFIMnlkY1V2WFAyUnIwRnFzR3BLY2dWeThMOTcyQWpC\n"
+       " TmRTRWU0YXVQVGhWRXE5RWtScENSVGIKQUxRdlJYaGhiWEJzWlNCVmMyVnlJRElnS0VsdWRtRnNh\n"
+       " V1FwSUR4bGVHRnRjR3hsTWtCbGVHRnRjR3hsTG1OdgpiVDZJZ1FRVEVRZ0FLUVVDVm44cHRnSWJB\n"
+       " d1VKQUNnMkNnY0xDUWdIQXdJQkJoVUlBZ2tLQ3dRV0FnTUJBaDRCCkFoZUFBQW9KRUFBdVBvS2h3\n"
+       " WmFqVmFFQkFMN01saU5wLzR0cy9QWkQwdlRCcTYySjBUV0hvTjBDcHpqUXJKQUwKblNZeUFQMGJY\n"
+       " Y0Y4UHRFejNlUkJkazBkTlNFeU1EMkVWVGQ0K3hhZTRRNUx4Q3gxU0xrQmpRUldmeW0yRUFZQQp4\n"
+       " eWs4dUQ4MnZTZ2xORFA0UlQ3ZzExSjdnTXROV1g0SjBEbmdocVZVc0svY2xFQm4yenZYN080eElp\n"
+       " QnluVG9wCmRKeDZaeE5pdFBKVG0zZzI4alRLUElKeXlDVGVHLzJiaWtFc0hUYlFpMStpaXBkcEpj\n"
+       " Zm9EcTlJMVBMVk41Mm8KaFVMaUJhdXdwNHFIeTFyTys3ajhtbWVlL1M5ckpzM2NmQnZHR09acmpF\n"
+       " K3g4TTRMdjJDeGlEWnJzRUFkdHNPUgpnMHgxMFFqNjJwOExuTHg2TzQ4ZWh0cGZTV1JnRmZOdU9v\n"
+       " SEJVU3RwSW5pMHRrajJSQitGaUgwZWxkc1VyRndMCkFBTUdCZ0NPYzk5bjB3OWEvelRDL0VxSnRj\n"
+       " U2llRkNtckMvODYrcW12OEJ3aW5zdU1STUtVSG1UdFFkR1RRQkcKL0ZXa2pKYm9YMEhZckp0d1JB\n"
+       " aC9tM2N6UnNMZjZkT3QxL2hEUVF2ZGVIcVhuZ1JleitWNzAyY0pUVVdwVGg5RgpjYnZ3NFpjMk93\n"
+       " Yzhzam13L3dYc2NMK0ZNU09mT3l6eC8xWmxBUDVoSkQ5TTNnV1dEL0ZLSk0weUxSZDI5OW92Ckpo\n"
+       " NDZVVkIvaHdxelEyYnlEUzV2QXhXUlFsT0FHaEdXVzNOcjlQRE82N2dsSWRPM2o5VzN4bENUNjJ4\n"
+       " cmEvVmMKbDVDTU9qU0lad1FZRVFnQUR3VUNWbjhwdGdJYkRBVUpBQ2cyQ2dBS0NSQUFMajZDb2NH\n"
+       " V296aThBUUNqc09YbQpGdEFCcEU4b0EzVmtPT1o4b28wMFZTcUhKVFkxRzhpNXgvNmtZQUVBMC9k\n"
+       " R0JmRHVhMDBxL2Z1Z3dYTmlPREJXCjh2a2hlMEVIOWFlYzJQaUd3VTg9Cj1ZWmZuCi0tLS0tRU5E\n"
+       " IFBHUCBQVUJMSUMgS0VZIEJMT0NLLS0tLS0K\n"
+       "KEY;TYPE=work;ALTID=74;PID=71;PREF=72;KEYS=MISSING:data:application/pgp-keys;\n"
+       " base64,LS0tLS1CRUdJTiBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tClZlcnNpb246IEdudVBHI\n"
+       " HYyCgptUU11QkZaL0x3d1JDQUN0cVNJa3hYN2NBWkJHNFlIUmRldkRudndvM1V4dEQ0ZmxmaW1NQ\n"
+       " mdTemUwbHJTMHNjCmEyaDRmMzJ1eklpR2Q1S0plT0psV3AwSUFBOXNCUW5lQVpXVm9XUjZaOTlZZ\n"
+       " nNtUjhoSENZVERqTGpVRUFnMTYKYzNsbUpWbkRqTDF4bmhSR2RjUGJxS2VQOGVuZ0hQWE4wM0tuS\n"
+       " kVYcUNZSnFNc3NySFNlN3crMFNMeVJPQkJkeQprSE5Lb1B1bUdOUWIvakhLd0QzNFg1SEJMbUVkb\n"
+       " XczR1gzNXVwbm9pVnNqSGJzcHY3bVBQRVJxdlNGMUtlTmVHCkhnSllHdlZiNUJZenpMQ3dRRXU0V\n"
+       " FNVMFRLQytMeUZUUFpPZE9pVzU2RG5qbktrNk1Od2xCWTFDZXRzZFpwR2QKUXFWZmNYdFRnNG1SN\n"
+       " GZzVVJaQ0JXR0w3OFMrQ2tDUFh4NTRIQVFDbEhVbUFzK3hnV0ExbU11SzVva2FadDYzeQoyb09CS\n"
+       " XBseXZkcDhreCtVY3dmL2FWUGQ1dGZ2S3JPVTV0VVZDdlpMN0syVnlkNUNSckFTUG93VkwrWmxjY\n"
+       " XNDCloyaDEvRGJKQ1FYOVVPTU5LNXVVMUZYNFErLy83OWR3ZlZVOEZYZUpzM1NKeDhHQlB3Z0s4R\n"
+       " Stmait2MWVNSmMKTkhCMlV2eGtrU050akErUHB1dW5sYXhGYWpBRTU2ckt6N2U0NGI5NUNjVldkU\n"
+       " TAxbTByeGptSGhTUmtXeDlWNQp4cExsbUZ2Q1ZLMXFsMlV5eCtzZU9RQXJpMjBGcUUzbktQMU9BN\n"
+       " Wt2QTd3b2NpZ1JVakVVWk1XOEFxL1daV2xnCnk2YW9pVTFPSlp6Q2tkeStPcWVxL0djeWRIYmcwd\n"
+       " UZ0N3UvSTROTWFLVlZMREhWdStSWXZlcGlzNy93TVMvclMKQTVwVk56NURRMXR3cTlJTWV0NGNGR\n"
+       " nBjOFdIeTVnR0pUNEFRVk1UYU5RZ0FuR1JqKytBTEpObCtsc1AzaDBjbwpTa0xqOElWbjlkaXRFU\n"
+       " GMxRGVRbllUb092WStLSDA3a09MekJmbXcvdmRlTVdkZzd6VDZhQTRza2hBL2VHNWdDCm1sL25IQ\n"
+       " mM1TS9pV2htRE9FUzFXZTRVYWMzbVNWeG9iSS9oYzNlM3pVcTlkQ0F5OFc4eUxvUThxMVArTnlSc\n"
+       " FkKd250bUxuZ2RVek00VTFLbEdMTWx3aGF1V3liQlBHTnlqYy9KUWtvdkdVa1g5dHU0cGdzaVlOb\n"
+       " 2F1MjV5NUs3OQo0Z1MxQUtlQjgya3lteWlQaGQvdnZpK3VhRXIzdFQ5Z2x0WjRiaW1YR3ZQZG1xR\n"
+       " nV1MkVYTXhmQXJGL21NSzJoClN5Z1BIUG5jVW9kc3NNV0ZxZjEvNWo1MkwrTzlUK1RLVXhxQ2RHM\n"
+       " VFSOVZDU0NoUDY0c0NFaGpqeis5R1g1eHAKZGJRdlJYaGhiWEJzWlNCVmMyVnlJRE1nS0VsdWRtR\n"
+       " nNhV1FwSUR4bGVHRnRjR3hsTTBCbGVHRnRjR3hsTG1OdgpiVDZJZ1FRVEVRZ0FLUVVDVm44dkRBS\n"
+       " WJBd1VKQUFuZU5BY0xDUWdIQXdJQkJoVUlBZ2tLQ3dRV0FnTUJBaDRCCkFoZUFBQW9KRU1IakNSb\n"
+       " G51dzVEOVFrQS9qWGFUTjJSVEhKSytMWEs1dXJEVDBLTElBTUVWak1lT1dQWmlyVXkKcldnRkFQd\n"
+       " 09XSi80eDVBT3dvZFVPTnh6Rk5NRXJBV2o5N3Y1bm5ZaURJcm1jUjl1ZzdrQmpRUldmeThNRUFZQ\n"
+       " QorVFBWcit3VGk2U0RxN25pd3pNZUo2c05QMHlwaXVJaTB3c2pXRDVndnJROGZqVE41STdtL3hld\n"
+       " EhtcXdvbDdiCnhEL09iUE1GRm9Tdm1kRERlVlR5cnl0cDI3U05QNVgzUFlxTldKbW9XN09mUTBQR\n"
+       " lIvbmprdVNGdmN0NkZDNTMKVjhvU0JPcVVuRWlZckRGSU1zREdOQ25UZ1VUeG9GaFZ1MEVESFRhW\n"
+       " VFxV2tYMWxldTJFQTlZTjJub3FFVVh2bgpEOE92TXZaWGxQcTFzdDVmc2IyODB1RGJYMWRvWVpNK\n"
+       " 0pPRWo3bHp4bEtzUjJNZFlOallKci9RZUwwaEMxVlpmCkFBTUZCZjR0bWdvRmt4a0Y4N2Z4ejB4e\n"
+       " U9sYXhGclUzYnhVZXJiYTZPUGZJTjV3cXZmOEFsNGdwZXRRRitNQysKUnBlR01rYk5iaTRwV3MvV\n"
+       " 1BUbmhIN2R3UTI4a0c3VXFkSjdiMDdYUkpVbTJrenRuNGRucFJpTGJBU1Z0MFVlRApxeWpNY1hRa\n"
+       " 21KTTFjVlNDMWpzY0ROUTl1anNjMXBQUi9iK2xPa0F2ZGJtK0x3RHZNMmVJa25LWDZsdkZsa0RlC\n"
+       " ng1dU82ZXpKTktLZEdMSW53c2hpVHdzSjZoTS9OL3JjbGFZeWpsSlBwY216VFhuaks5SmN1SU9MV\n"
+       " HVsVXFwQUwKbHQyWXh1aUlad1FZRVFnQUR3VUNWbjh2REFJYkRBVUpBQW5lTkFBS0NSREI0d2taW\n"
+       " jdzT1E1Uk5BUUNUSHVjOQpjM1dORURZY1hhV2N6S3ZwN2R4aWJ1YS9FanNxRC85eHNUOHRZUUQrT\n"
+       " 2VqRndvRmVrbnpZa2RFMmdJb2ZuaDk0CjdKeUhaNDUyTERkamZXQ1BZWFU9Cj16T3NxCi0tLS0tR\n"
+       " U5EIFBHUCBQVUJMSUMgS0VZIEJMT0NLLS0tLS0K\n"
+       "VND-696-CAKE:Lemon\n"
+       "VND-696-DRINK:Orange\n"
+       "VND-696-MUSIC:Shiena Nishizawa\n"
+       "X-FARM:Yard\n"
+       "X-FARM:Animals\n"
+       "X-FARM;LOCATION=Back;TYPE=Vehicles:Shed\n"
+       "X-DISKSERIAL:14444\n"
+       "X-DISKSERIAL:7555\n"
+       "X-DISKSERIAL;STATUS=DESTROYED;TYPE=FLASH:3250539032590\n"
+       "X-FOODS;STATUS=HIGH:Lemon Cake\n"
+       "X-FOODS;STATUS=LOW:Starrey Gazey Pie\n"
+       "X-FOODS;STATUS=FAVOURITE;TYPE=CHEESEANDONION:Cornish Pasties\n"
        "END:VCARD";
 
-       ASSERT_EQ(CONTACTLOAD_OK, TestFile3.LoadFile("LoadCheck-Load4.vcf"));
-       ASSERT_EQ(CONTACTSAVE_OK, TestFile3.SaveString(&SaveData));
+       ASSERT_EQ(CONTACTLOAD_OK, testFile.LoadFile("LoadCheck-Load4.vcf"));
+       ASSERT_EQ(CONTACTSAVE_OK, testFile.SaveString(&saveData));
        
-       std::cout << SaveData << std::endl;
-       std::cout << SaveDataCompare << std::endl;
+       ASSERT_EQ(saveDataCompare, saveData);
+
+}
+
+TEST(ContactSave, GivenSeveralContactFilesWhenLoadFileAndSaveFileIsCalledThenContactDataIsLoadedAndSaved)
+{
        
-       ASSERT_EQ(SaveDataCompare, SaveData);
+       // Given
+       
+       ContactDataObject testFile1;
+       ContactDataObject testFile2;
+       ContactDataObject testFile3;    
+       
+       ContactLoadStatus testFile1SaveStatus = CONTACTSAVE_UNITTESTFAIL;
+       ContactSaveStatus testFile1LoadStatus = CONTACTLOAD_UNITTESTFAIL;
+       
+       ContactLoadStatus testFile2SaveStatus = CONTACTSAVE_UNITTESTFAIL;
+       ContactSaveStatus testFile2LoadStatus = CONTACTLOAD_UNITTESTFAIL;
+       
+       ContactLoadStatus testFile3SaveStatus = CONTACTSAVE_UNITTESTFAIL;
+       ContactSaveStatus testFile3LoadStatus = CONTACTLOAD_UNITTESTFAIL;
+       
+       // When
+       
+       testFile1LoadStatus = testFile1.LoadFile("LoadCheck-Load1.vcf");
+       testFile1SaveStatus = testFile1.SaveFile("SaveCheck-Save1.vcf");
+
+       testFile2LoadStatus = testFile2.LoadFile("LoadCheck-Load2.vcf");
+       testFile2SaveStatus = testFile2.SaveFile("SaveCheck-Save2.vcf");
+       
+       testFile3LoadStatus = testFile3.LoadFile("LoadCheck-Load4.vcf");
+       testFile3SaveStatus = testFile3.SaveFile("SaveCheck-Save4.vcf");
+
+       // Then
+       
+       ASSERT_EQ(CONTACTLOAD_OK, testFile1LoadStatus);
+       ASSERT_EQ(CONTACTSAVE_OK, testFile1SaveStatus);
+               
+       ASSERT_EQ(CONTACTLOAD_OK, testFile1LoadStatus);
+       ASSERT_EQ(CONTACTSAVE_OK, testFile1SaveStatus);
+
+       ASSERT_EQ(CONTACTLOAD_OK, testFile3.LoadFile("LoadCheck-Load4.vcf"));
+       ASSERT_EQ(CONTACTSAVE_OK, testFile3.SaveFile("SaveCheck-Save4.vcf"));
+       
+}
+
+TEST(ContactSave, GivenContactDataObjectWhenFileIsSavedToInvalidLocationThenErrorResultIsReturned)
+{
+
+       // Given
+       
+       ContactDataObject testFile;
+       ContactLoadStatus testFileLoadStatus = CONTACTLOAD_UNITTESTFAIL;
+       ContactSaveStatus testFileSaveStatus = CONTACTSAVE_UNITTESTFAIL;
+       
+       testFileLoadStatus = testFile1.LoadFile("LoadCheck-Load1.vcf");
+       
+       ASSERT_EQ(CONTACTLOAD_OK, testFileLoadStatus);
+       
+       // When
+       
+       testFileSaveStatus = testFile.SaveFile("/invalidfile");
+       
+       // Then
+
+       ASSERT_EQ(CONTACTSAVE_FILEERROR, testFileSaveStatus);
 
-}
\ No newline at end of file
+}
Xestia Software Development
Yn Maystri
© 2006 - 2019 Xestia Software Development
Software

Xestia Address Book
Xestia Calendar
Development

Xestia Gelforn
Everything else

About
News
Privacy Policy