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 bab693e..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"
@@ -693,12 +713,74 @@ TEST(ContactSave, ContactSaveTests){
        "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