AlphaNumberDecoratorTest.cc 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #include "AlphaNumberDecorator.h"
  2. #include <cppunit/extensions/HelperMacros.h>
  3. class AlphaNumberDecoratorTest:public CppUnit::TestFixture {
  4. CPPUNIT_TEST_SUITE(AlphaNumberDecoratorTest);
  5. CPPUNIT_TEST(testDecorate);
  6. CPPUNIT_TEST(testDecorate_uppercase);
  7. CPPUNIT_TEST(testDecorate_minus);
  8. CPPUNIT_TEST_SUITE_END();
  9. private:
  10. public:
  11. void setUp() {
  12. }
  13. void testDecorate();
  14. void testDecorate_uppercase();
  15. void testDecorate_minus();
  16. };
  17. CPPUNIT_TEST_SUITE_REGISTRATION( AlphaNumberDecoratorTest );
  18. void AlphaNumberDecoratorTest::testDecorate()
  19. {
  20. CPPUNIT_ASSERT_EQUAL(string("a"), AlphaNumberDecorator(1).decorate(0));
  21. CPPUNIT_ASSERT_EQUAL(string("z"), AlphaNumberDecorator(1).decorate(25));
  22. CPPUNIT_ASSERT_EQUAL(string("zz"), AlphaNumberDecorator(1).decorate(675)); // 25*26+25
  23. CPPUNIT_ASSERT_EQUAL(string("aab"), AlphaNumberDecorator(3).decorate(1));
  24. }
  25. void AlphaNumberDecoratorTest::testDecorate_uppercase()
  26. {
  27. CPPUNIT_ASSERT_EQUAL(string("A"), AlphaNumberDecorator(1, true).decorate(0));
  28. CPPUNIT_ASSERT_EQUAL(string("Z"), AlphaNumberDecorator(1, true).decorate(25));
  29. CPPUNIT_ASSERT_EQUAL(string("ZZ"), AlphaNumberDecorator(1, true).decorate(675)); // 25*26+25
  30. CPPUNIT_ASSERT_EQUAL(string("AAB"), AlphaNumberDecorator(3, true).decorate(1));
  31. }
  32. void AlphaNumberDecoratorTest::testDecorate_minus()
  33. {
  34. try {
  35. AlphaNumberDecorator(1, true).decorate(-1);
  36. CPPUNIT_FAIL("exception must be thrown.");
  37. } catch(FatalException* e) {
  38. cerr << e->getMsg() << endl;
  39. delete e;
  40. } catch(...) {
  41. CPPUNIT_FAIL("FatalException must be thrown.");
  42. }
  43. }