Go to the documentation of this file.00001
00012
00013
00014
00015
00016
00017 #ifndef UUID_cpp
00018 #define UUID_cpp
00019
00020 #include <cppunit/ui/text/TestRunner.h>
00021 #include <cppunit/TextOutputter.h>
00022 #include <cppunit/extensions/TestFactoryRegistry.h>
00023 #include <cppunit/extensions/HelperMacros.h>
00024 #include <cppunit/TestAssert.h>
00025
00026 #include <coil/UUID.h>
00027
00033 namespace coilUUID
00034 {
00035 class UUIDTests
00036 : public CppUnit::TestFixture
00037 {
00038 CPPUNIT_TEST_SUITE(UUIDTests);
00039 CPPUNIT_TEST(test_UUID_to_string);
00040 CPPUNIT_TEST(test_UUID_Generator_init);
00041 CPPUNIT_TEST(test_UUID_Generator_generateUUID);
00042 CPPUNIT_TEST_SUITE_END();
00043
00044 private:
00045
00046 coil::UUID * uu;
00047 coil::UUID_Generator *ug;
00048
00049 public:
00050
00054 UUIDTests()
00055 {
00056 }
00057
00061 ~UUIDTests()
00062 {
00063 }
00064
00068 virtual void setUp()
00069 {
00070
00071 uu = new coil::UUID();
00072
00073 ug = new coil::UUID_Generator();
00074 }
00075
00079 virtual void tearDown()
00080 {
00081 delete uu;
00082 delete ug;
00083 }
00084
00085
00086
00090 void test_UUID_to_string()
00091 {
00092 CPPUNIT_ASSERT(isUuidString(uu->to_string()));
00093 }
00094
00098 void test_UUID_Generator_init()
00099 {
00100
00101 }
00102
00106 void test_UUID_Generator_generateUUID()
00107 {
00108 int n(1);
00109 int h(2);
00110 coil::UUID * p;
00111
00112 p = ug->generateUUID(n, h);
00113
00114 CPPUNIT_ASSERT(isUuidString(p->to_string()));
00115 delete p;
00116 }
00117
00121 bool isUuidString(const char* aString)
00122 {
00123 bool result(false);
00124
00125 if (!isxdigit(*aString)) return result; aString++;
00126 if (!isxdigit(*aString)) return result; aString++;
00127 if (!isxdigit(*aString)) return result; aString++;
00128 if (!isxdigit(*aString)) return result; aString++;
00129 if (!isxdigit(*aString)) return result; aString++;
00130 if (!isxdigit(*aString)) return result; aString++;
00131 if (!isxdigit(*aString)) return result; aString++;
00132 if (!isxdigit(*aString)) return result; aString++;
00133 if (*aString != '-') return result; aString++;
00134 if (!isxdigit(*aString)) return result; aString++;
00135 if (!isxdigit(*aString)) return result; aString++;
00136 if (!isxdigit(*aString)) return result; aString++;
00137 if (!isxdigit(*aString)) return result; aString++;
00138 if (*aString != '-') return result; aString++;
00139 if (!isxdigit(*aString)) return result; aString++;
00140 if (!isxdigit(*aString)) return result; aString++;
00141 if (!isxdigit(*aString)) return result; aString++;
00142 if (!isxdigit(*aString)) return result; aString++;
00143 if (*aString != '-') return result; aString++;
00144 if (!isxdigit(*aString)) return result; aString++;
00145 if (!isxdigit(*aString)) return result; aString++;
00146 if (!isxdigit(*aString)) return result; aString++;
00147 if (!isxdigit(*aString)) return result; aString++;
00148 if (*aString != '-') return result; aString++;
00149 if (!isxdigit(*aString)) return result; aString++;
00150 if (!isxdigit(*aString)) return result; aString++;
00151 if (!isxdigit(*aString)) return result; aString++;
00152 if (!isxdigit(*aString)) return result; aString++;
00153 if (!isxdigit(*aString)) return result; aString++;
00154 if (!isxdigit(*aString)) return result; aString++;
00155 if (!isxdigit(*aString)) return result; aString++;
00156 if (!isxdigit(*aString)) return result; aString++;
00157 if (!isxdigit(*aString)) return result; aString++;
00158 if (!isxdigit(*aString)) return result; aString++;
00159 if (!isxdigit(*aString)) return result; aString++;
00160 if (!isxdigit(*aString)) return result; aString++;
00161
00162 result = true;
00163
00164 return result;
00165 }
00166
00167 };
00168 };
00169
00170
00171
00172
00173 CPPUNIT_TEST_SUITE_REGISTRATION(coilUUID::UUIDTests);
00174
00175 #ifdef LOCAL_MAIN
00176 int main(int argc, char* argv[])
00177 {
00178 CppUnit::TextUi::TestRunner runner;
00179 runner.addTest(CppUnit::TestFactoryRegistry::getRegistry().makeTest());
00180 CppUnit::Outputter* outputter =
00181 new CppUnit::TextOutputter(&runner.result(), std::cout);
00182 runner.setOutputter(outputter);
00183 bool retcode = runner.run();
00184 return !retcode;
00185 }
00186 #endif // MAIN
00187
00188
00189
00190
00191
00195 static bool isUuidString(const char* aString)
00196 {
00197 bool result(false);
00198
00199 if (!isxdigit(*aString)) return result; aString++;
00200 if (!isxdigit(*aString)) return result; aString++;
00201 if (!isxdigit(*aString)) return result; aString++;
00202 if (!isxdigit(*aString)) return result; aString++;
00203 if (!isxdigit(*aString)) return result; aString++;
00204 if (!isxdigit(*aString)) return result; aString++;
00205 if (!isxdigit(*aString)) return result; aString++;
00206 if (!isxdigit(*aString)) return result; aString++;
00207 if (*aString != '-') return result; aString++;
00208 if (!isxdigit(*aString)) return result; aString++;
00209 if (!isxdigit(*aString)) return result; aString++;
00210 if (!isxdigit(*aString)) return result; aString++;
00211 if (!isxdigit(*aString)) return result; aString++;
00212 if (*aString != '-') return result; aString++;
00213 if (!isxdigit(*aString)) return result; aString++;
00214 if (!isxdigit(*aString)) return result; aString++;
00215 if (!isxdigit(*aString)) return result; aString++;
00216 if (!isxdigit(*aString)) return result; aString++;
00217 if (*aString != '-') return result; aString++;
00218 if (!isxdigit(*aString)) return result; aString++;
00219 if (!isxdigit(*aString)) return result; aString++;
00220 if (!isxdigit(*aString)) return result; aString++;
00221 if (!isxdigit(*aString)) return result; aString++;
00222 if (*aString != '-') return result; aString++;
00223 if (!isxdigit(*aString)) return result; aString++;
00224 if (!isxdigit(*aString)) return result; aString++;
00225 if (!isxdigit(*aString)) return result; aString++;
00226 if (!isxdigit(*aString)) return result; aString++;
00227 if (!isxdigit(*aString)) return result; aString++;
00228 if (!isxdigit(*aString)) return result; aString++;
00229 if (!isxdigit(*aString)) return result; aString++;
00230 if (!isxdigit(*aString)) return result; aString++;
00231 if (!isxdigit(*aString)) return result; aString++;
00232 if (!isxdigit(*aString)) return result; aString++;
00233 if (!isxdigit(*aString)) return result; aString++;
00234 if (!isxdigit(*aString)) return result; aString++;
00235
00236 result = true;
00237
00238 return result;
00239 }
00240
00241 #endif // UUID_cpp