Add unit tests for DateTime class.
authorScott Cantor <cantor.2@osu.edu>
Fri, 21 Nov 2008 02:31:41 +0000 (02:31 +0000)
committerScott Cantor <cantor.2@osu.edu>
Fri, 21 Nov 2008 02:31:41 +0000 (02:31 +0000)
xmltoolingtest/DateTimeTest.h [new file with mode: 0644]
xmltoolingtest/Makefile.am
xmltoolingtest/xmltoolingtest.vcproj

diff --git a/xmltoolingtest/DateTimeTest.h b/xmltoolingtest/DateTimeTest.h
new file mode 100644 (file)
index 0000000..4e641bd
--- /dev/null
@@ -0,0 +1,55 @@
+/*
+ *  Copyright 2001-2007 Internet2
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include "XMLObjectBaseTestCase.h"
+
+#include <xmltooling/util/DateTime.h>
+
+class DateTimeTest : public CxxTest::TestSuite {
+public:
+    void setUp() {
+    }
+
+    void tearDown() {
+    }
+
+    void testDateTime() {
+        auto_ptr_XMLCh ts1("1970-01-31T00:00:00Z");
+        DateTime dt1(ts1.get());
+        dt1.parseDateTime();
+        TSM_ASSERT_EQUALS("Epoch for Jan 31, 1970 did not match.", dt1.getEpoch(), 2592000);
+
+        DateTime dt2(1227234172);
+        auto_ptr_char ts2(dt2.getRawData());
+        TSM_ASSERT("ISO string for Nov 21, 2008 02:22:52 did not match.", !strcmp(ts2.get(), "2008-11-21T02:22:52Z"));
+    }
+
+    void testDuration() {
+        auto_ptr_XMLCh d1("P1D");
+        DateTime dt1(d1.get());
+        dt1.parseDuration();
+        TSM_ASSERT_EQUALS("Epoch for 1 day did not match.", dt1.getEpoch(), 86400);
+
+        auto_ptr_XMLCh d2("PT2H");
+        DateTime dt2(d2.get());
+        dt2.parseDuration();
+        TSM_ASSERT_EQUALS("Epoch for 2 hours did not match.", dt2.getEpoch(), 7200);
+
+        DateTime dt3(28800);
+        auto_ptr_char d3(dt3.getRawData());
+        TSM_ASSERT_EQUALS("ISO string for 8 hours did not match.", d3.get(), "PT8H");
+    }
+};
index 33e4392..5698e75 100644 (file)
@@ -31,6 +31,7 @@ endif
 
 xmltoolingtest_h = \
     ComplexXMLObjectTest.h \
+    DateTimeTest.h \
     ExceptionTest.h \
     KeyInfoTest.h \
     MarshallingTest.h \
index 42c512e..49770ef 100644 (file)
                                >\r
                        </File>\r
                        <File\r
+                               RelativePath=".\DateTimeTest.cpp"\r
+                               >\r
+                       </File>\r
+                       <File\r
                                RelativePath=".\EncryptionTest.cpp"\r
                                >\r
                        </File>\r
                                </FileConfiguration>\r
                        </File>\r
                        <File\r
+                               RelativePath=".\DateTimeTest.h"\r
+                               >\r
+                               <FileConfiguration\r
+                                       Name="Debug|Win32"\r
+                                       >\r
+                                       <Tool\r
+                                               Name="VCCustomBuildTool"\r
+                                               CommandLine="perl.exe -w \cxxtest\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o &quot;$(InputName)&quot;.cpp &quot;$(InputPath)&quot;"\r
+                                               Outputs="$(InputName).cpp"\r
+                                       />\r
+                               </FileConfiguration>\r
+                               <FileConfiguration\r
+                                       Name="Debug|x64"\r
+                                       >\r
+                                       <Tool\r
+                                               Name="VCCustomBuildTool"\r
+                                               CommandLine="perl.exe -w \cxxtest\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o &quot;$(InputName)&quot;.cpp &quot;$(InputPath)&quot;"\r
+                                               Outputs="$(InputName).cpp"\r
+                                       />\r
+                               </FileConfiguration>\r
+                               <FileConfiguration\r
+                                       Name="Release|Win32"\r
+                                       >\r
+                                       <Tool\r
+                                               Name="VCCustomBuildTool"\r
+                                               CommandLine="perl.exe -w \cxxtest\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o &quot;$(InputName)&quot;.cpp &quot;$(InputPath)&quot;"\r
+                                               Outputs="$(InputName).cpp"\r
+                                       />\r
+                               </FileConfiguration>\r
+                               <FileConfiguration\r
+                                       Name="Release|x64"\r
+                                       >\r
+                                       <Tool\r
+                                               Name="VCCustomBuildTool"\r
+                                               CommandLine="perl.exe -w \cxxtest\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o &quot;$(InputName)&quot;.cpp &quot;$(InputPath)&quot;"\r
+                                               Outputs="$(InputName).cpp"\r
+                                       />\r
+                               </FileConfiguration>\r
+                       </File>\r
+                       <File\r
                                RelativePath=".\EncryptionTest.h"\r
                                >\r
                                <FileConfiguration\r
                                        >\r
                                        <Tool\r
                                                Name="VCCustomBuildTool"\r
-                                               CommandLine="perl.exe -w \cxxtest\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o &quot;$(InputName)&quot;.cpp &quot;$(InputPath)&quot;"\r
+                                               CommandLine="perl.exe -w \cxxtest\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o &quot;$(InputName)&quot;.cpp &quot;$(InputPath)&quot;&#x0D;&#x0A;"\r
                                                Outputs="&quot;$(InputName)&quot;.cpp"\r
                                        />\r
                                </FileConfiguration>\r
                                        >\r
                                        <Tool\r
                                                Name="VCCustomBuildTool"\r
-                                               CommandLine="perl.exe -w \cxxtest\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o &quot;$(InputName)&quot;.cpp &quot;$(InputPath)&quot;"\r
+                                               CommandLine="perl.exe -w \cxxtest\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o &quot;$(InputName)&quot;.cpp &quot;$(InputPath)&quot;&#x0D;&#x0A;"\r
                                                Outputs="&quot;$(InputName)&quot;.cpp"\r
                                        />\r
                                </FileConfiguration>\r
                                        >\r
                                        <Tool\r
                                                Name="VCCustomBuildTool"\r
-                                               CommandLine="perl.exe -w \cxxtest\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o &quot;$(InputName)&quot;.cpp &quot;$(InputPath)&quot;"\r
+                                               CommandLine="perl.exe -w \cxxtest\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o &quot;$(InputName)&quot;.cpp &quot;$(InputPath)&quot;&#x0D;&#x0A;"\r
                                                Outputs="&quot;$(InputName)&quot;.cpp"\r
                                        />\r
                                </FileConfiguration>\r
                                        >\r
                                        <Tool\r
                                                Name="VCCustomBuildTool"\r
-                                               CommandLine="perl.exe -w \cxxtest\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o &quot;$(InputName)&quot;.cpp &quot;$(InputPath)&quot;"\r
+                                               CommandLine="perl.exe -w \cxxtest\cxxtestgen.pl --part --have-eh --have-std --abort-on-fail -o &quot;$(InputName)&quot;.cpp &quot;$(InputPath)&quot;&#x0D;&#x0A;"\r
                                                Outputs="&quot;$(InputName)&quot;.cpp"\r
                                        />\r
                                </FileConfiguration>\r