#include <gtest/gtest.h>
-// TODO: Add tests for the Contact Saving process.
\ No newline at end of file
+#include "../contacteditor/cdo/ContactDataObject.h"
+
+TEST(ContactSave, ContactSaveTests){
+
+ ContactDataObject TestFile1;
+ ContactDataObject TestFile2;
+ ContactDataObject TestFile3;
+
+ wxString SaveData;
+ wxString SaveDataCompare = "BEGIN:VCARD\n"
+ "VERSION:4.0\n"
+ "PRODID:-//Xestia//Address Book Unit Testing//KW\n"
+ "FN:Test vCard\n"
+ "TITLE:Knight of the Tests\n"
+ "TITLE:The Tester of Cornwall\n"
+ "END:VCARD";
+
+ ASSERT_EQ(CONTACTLOAD_OK, TestFile1.LoadFile("LoadCheck-Load1.vcf"));
+
+ ASSERT_EQ(CONTACTSAVE_OK, TestFile1.SaveString(&SaveData));
+
+ ASSERT_EQ(SaveDataCompare, SaveData);
+
+ ASSERT_EQ(CONTACTLOAD_OK, TestFile2.LoadFile("LoadCheck-Load2.vcf"));
+
+ 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(SaveDataCompare, SaveData);
+
+ SaveData.clear();
+ SaveDataCompare = "BEGIN:VCARD\n"
+ "VERSION:4.0\n"
+ "PRODID:-//Xestia//Address Book Unit Testing//KW\n"
+ "UID:903588-9082374-989120310-AAFECDBCDF\n"
+ "FN;TYPE=work;LANGUAGE=kw;ALTID=500;PID=40;PREF=45;EXAMPLE=Baaa:Test Contact\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"
+ "TITLE;TYPE=work;ALTID=40;LANGUAGE=moths/eew;PID=41;PREF=42;EEP=BOTH:Master of\n"
+ " the Light & Darkness\n"
+ "END:VCARD";
+
+ ASSERT_EQ(CONTACTLOAD_OK, TestFile3.LoadFile("LoadCheck-Load4.vcf"));
+ ASSERT_EQ(CONTACTSAVE_OK, TestFile3.SaveString(&SaveData));
+
+ std::cout << SaveData << std::endl;
+ std::cout << SaveDataCompare << std::endl;
+
+ ASSERT_EQ(SaveDataCompare, SaveData);
+
+}
\ No newline at end of file