+ }
+
+ template<>
+ template<>
+ void testobject::test<7>()
+ {
+ set_test_name("Check changePolicy - ALLOW");
+
+ TARIFF_DATA td("test");
+ td.tariffConf.changePolicy = TARIFF::ALLOW;
+ td.tariffConf.fee = 100;
+ TARIFF_IMPL tariff(td);
+
+ td.tariffConf.fee = 50;
+ TARIFF_IMPL cheaper(td);
+
+ ensure_equals("Allow cheaper", tariff.TariffChangeIsAllowed(cheaper, 1461606400).empty(), true);
+
+ td.tariffConf.fee = 100;
+ TARIFF_IMPL equal(td);
+
+ ensure_equals("Allow equal", tariff.TariffChangeIsAllowed(equal, 1461606400).empty(), true);
+
+ td.tariffConf.fee = 150;
+ TARIFF_IMPL expensive(td);
+
+ ensure_equals("Allow expensive", tariff.TariffChangeIsAllowed(expensive, 1461606400).empty(), true);
+ }
+
+ template<>
+ template<>
+ void testobject::test<8>()
+ {
+ set_test_name("Check changePolicy - TO_CHEAP");
+
+ TARIFF_DATA td("test");
+ td.tariffConf.changePolicy = TARIFF::TO_CHEAP;
+ td.tariffConf.fee = 100;
+ TARIFF_IMPL tariff(td);
+
+ td.tariffConf.fee = 50;
+ TARIFF_IMPL cheaper(td);
+
+ ensure_equals("Allow cheaper", tariff.TariffChangeIsAllowed(cheaper, 1461606400).empty(), true);
+
+ td.tariffConf.fee = 100;
+ TARIFF_IMPL equal(td);
+
+ ensure_equals("Prohibit equal", tariff.TariffChangeIsAllowed(equal, 1461606400).empty(), false);
+
+ td.tariffConf.fee = 150;
+ TARIFF_IMPL expensive(td);
+
+ ensure_equals("Prohibit expensive", tariff.TariffChangeIsAllowed(expensive, 1461606400).empty(), false);
+ }
+
+ template<>
+ template<>
+ void testobject::test<9>()
+ {
+ set_test_name("Check changePolicy - TO_EXPENSIVE");
+
+ TARIFF_DATA td("test");
+ td.tariffConf.changePolicy = TARIFF::TO_EXPENSIVE;
+ td.tariffConf.fee = 100;
+ TARIFF_IMPL tariff(td);
+
+ td.tariffConf.fee = 50;
+ TARIFF_IMPL cheaper(td);
+
+ ensure_equals("Prohibit cheaper", tariff.TariffChangeIsAllowed(cheaper, 1461606400).empty(), false);
+
+ td.tariffConf.fee = 100;
+ TARIFF_IMPL equal(td);
+
+ ensure_equals("Allow equal", tariff.TariffChangeIsAllowed(equal, 1461606400).empty(), true);
+
+ td.tariffConf.fee = 150;
+ TARIFF_IMPL expensive(td);
+
+ ensure_equals("Allow expensive", tariff.TariffChangeIsAllowed(expensive, 1461606400).empty(), true);
+ }
+
+ template<>
+ template<>
+ void testobject::test<10>()
+ {
+ set_test_name("Check changePolicy - DENY");
+
+ TARIFF_DATA td("test");
+ td.tariffConf.changePolicy = TARIFF::DENY;
+ td.tariffConf.fee = 100;
+ TARIFF_IMPL tariff(td);
+
+ td.tariffConf.fee = 50;
+ TARIFF_IMPL cheaper(td);
+
+ ensure_equals("Prohibit cheaper", tariff.TariffChangeIsAllowed(cheaper, 1461606400).empty(), false);
+
+ td.tariffConf.fee = 100;
+ TARIFF_IMPL equal(td);
+
+ ensure_equals("Prohibit equal", tariff.TariffChangeIsAllowed(equal, 1461606400).empty(), false);
+
+ td.tariffConf.fee = 150;
+ TARIFF_IMPL expensive(td);
+
+ ensure_equals("Prohibit expensive", tariff.TariffChangeIsAllowed(expensive, 1461606400).empty(), false);
+ }
+
+ template<>
+ template<>
+ void testobject::test<11>()
+ {
+ set_test_name("Check changePolicyTimeout < current time");
+
+ TARIFF_DATA td("test");
+ td.tariffConf.changePolicyTimeout = 1451606400;
+ td.tariffConf.changePolicy = TARIFF::TO_EXPENSIVE;
+ td.tariffConf.fee = 100;
+ TARIFF_IMPL tariff(td);
+
+ td.tariffConf.fee = 50;
+ TARIFF_IMPL cheaper(td);
+
+ ensure_equals("Allow cheaper", tariff.TariffChangeIsAllowed(cheaper, 1461606400).empty(), true);
+ }
+
+ template<>
+ template<>
+ void testobject::test<12>()
+ {
+ set_test_name("Check changePolicyTimeout > current time");
+
+ TARIFF_DATA td("test");
+ td.tariffConf.changePolicyTimeout = 1483228800;
+ td.tariffConf.changePolicy = TARIFF::TO_EXPENSIVE;
+ td.tariffConf.fee = 100;
+ TARIFF_IMPL tariff(td);
+
+ td.tariffConf.fee = 50;
+ TARIFF_IMPL cheaper(td);
+
+ ensure_equals("Prohibit cheaper", tariff.TariffChangeIsAllowed(cheaper, 1461606400).empty(), false);
+ }
+
+ template<>
+ template<>
+ void testobject::test<13>()
+ {
+ set_test_name("Check changePolicyTimeout = 0");
+
+ TARIFF_DATA td("test");
+ td.tariffConf.changePolicyTimeout = 0;
+ td.tariffConf.changePolicy = TARIFF::TO_EXPENSIVE;
+ td.tariffConf.fee = 100;
+ TARIFF_IMPL tariff(td);
+
+ td.tariffConf.fee = 50;
+ TARIFF_IMPL cheaper(td);
+
+ ensure_equals("Prohibit cheaper", tariff.TariffChangeIsAllowed(cheaper, 1461606400).empty(), false);