Home | News | Projects | Releases
Bugs | RFE | Repositories | Help
Added the convert subroutine and initial unit tests. The convert subroutine is run...
authorSteve Brokenshire <sbrokenshire@xestia.co.uk>
Sat, 5 Dec 2015 20:45:08 +0000 (20:45 +0000)
committerSteve Brokenshire <sbrokenshire@xestia.co.uk>
Sat, 5 Dec 2015 20:45:08 +0000 (20:45 +0000)
source/convert.cpp [new file with mode: 0644]
source/convert.h [new file with mode: 0644]
source/tests/xestiaab_convert.h [new file with mode: 0644]

diff --git a/source/convert.cpp b/source/convert.cpp
new file mode 100644 (file)
index 0000000..d8578d7
--- /dev/null
@@ -0,0 +1,59 @@
+// convert.h - Convert subroutines.
+//
+// (c) 2012-2015 Xestia Software Development.
+//
+// This file is part of Xestia Address Book.
+//
+// Xestia Address Book is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by the
+// Free Software Foundation, version 3 of the license.
+//
+// Xestia Address Book is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with Xestia Address Book. If not, see <http://www.gnu.org/licenses/>
+
+#include "convert.h"
+
+ConvertResult ConvertContact(wxString InputFormat, wxString OutputFormat, 
+       wxString InputFilename, wxString OutputFilename){
+
+       std::vector<wxString> ValidFormats = { 
+               wxT("vCard3"),
+               wxT("vCard4") 
+       };
+
+       bool ValidImport = false;
+       bool ValidOutput = false;
+
+       // Check that the input format is valid.
+
+       for (long l = 0; l < ValidFormats.size(); l++){
+       
+               if (InputFormat == ValidFormats[l]){
+                       ValidImport = true;
+                       break;
+               }
+       
+       }
+       
+       if (ValidImport == false){
+       
+               return CONVERTRESULT_INVALIDIMPORTFORMAT;
+       
+       }
+
+       if (InputFormat == OutputFormat){
+       
+               return CONVERTRESULT_FORMATSSAME;
+       
+       }
+       
+       // Check that the output format is valid.
+
+       return CONVERTRESULT_OK;
+       
+}
\ No newline at end of file
diff --git a/source/convert.h b/source/convert.h
new file mode 100644 (file)
index 0000000..8994dbe
--- /dev/null
@@ -0,0 +1,39 @@
+// convert.h - Convert subourtines header.
+//
+// (c) 2012-2015 Xestia Software Development.
+//
+// This file is part of Xestia Address Book.
+//
+// Xestia Address Book is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by the
+// Free Software Foundation, version 3 of the license.
+//
+// Xestia Address Book is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with Xestia Address Book. If not, see <http://www.gnu.org/licenses/>
+
+#ifndef __CONVERT_H__
+#define __CONVERT_H__
+
+#include <wx/wx.h>
+#include <string>
+#include <vector>
+
+enum ConvertResult {
+       CONVERTRESULT_UNITTESTFAIL = -1,
+       CONVERTRESULT_OK,
+       CONVERTRESULT_FORMATSSAME,
+       CONVERTRESULT_INVALIDIMPORTFORMAT,
+       CONVERTRESULT_INVALIDEXPORTFORMAT,
+       CONVERTRESULT_IMPORTFILEMISSING,
+       CONVERTRESULT_IMPORTFILEERROR,
+};
+
+ConvertResult ConvertContact(wxString InputFormat, wxString OutputFormat, 
+       wxString InputFilename, wxString OutputFilename);
+
+#endif
\ No newline at end of file
diff --git a/source/tests/xestiaab_convert.h b/source/tests/xestiaab_convert.h
new file mode 100644 (file)
index 0000000..383b18d
--- /dev/null
@@ -0,0 +1,50 @@
+// xestiaab_convert.h - Xestia Address Book Convert Unit Tests.
+//
+// (c) 2012-2015 Xestia Software Development.
+//
+// This file is part of Xestia Address Book.
+//
+// Xestia Address Book is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by the
+// Free Software Foundation, version 3 of the license.
+//
+// Xestia Address Book is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License along
+// with Xestia Address Book. If not, see <http://www.gnu.org/licenses/>
+
+#include <gtest/gtest.h>
+#include "../convert.h"
+
+TEST(ConvertCmdLine, ConvertTests){
+
+       // Test that the import format is valid.
+       
+       ASSERT_EQ(CONVERTRESULT_OK, ConvertContact(wxT("vCard4"), 
+               wxT("vCard3"), 
+               wxT("LoadCheck-Load1.vcf"), 
+               wxT("LoadCheck-Load1-v3Conv.vcf")));
+       ASSERT_EQ(CONVERTRESULT_OK, ConvertContact(wxT("vCard3"), 
+               wxT("vCard4"), 
+               wxT("LoadCheck-Load1.vcf"), 
+               wxT("LoadCheck-Load1-v3Conv.vcf")));            
+               
+       // Test that a matching import and export formats return
+       // an error.
+
+       ASSERT_EQ(CONVERTRESULT_FORMATSSAME, ConvertContact(wxT("vCard3"), 
+               wxT("vCard3"), 
+               wxT("LoadCheck-Load1.vcf"), 
+               wxT("LoadCheck-Load1-v3Conv.vcf")));
+               
+       // Test that an invalid import format returns an error.
+               
+       ASSERT_EQ(CONVERTRESULT_INVALIDIMPORTFORMAT, ConvertContact(wxT("vCardNope"), 
+               wxT("vCard3"), 
+               wxT("LoadCheck-Load1.vcf"), 
+               wxT("LoadCheck-Load1-v3Conv.vcf")));
+
+}
\ 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