+ }
+
+ template<>
+ template<>
+ void testobject::test<7>()
+ {
+ set_test_name("Check changePolicy - ALLOW");
+
+ STG::TariffData td("test");
+ td.tariffConf.changePolicy = STG::Tariff::ALLOW;
+ td.tariffConf.fee = 100;
+ STG::TariffImpl tariff(td);
+
+ td.tariffConf.fee = 50;
+ STG::TariffImpl cheaper(td);
+
+ ensure_equals("Allow cheaper", tariff.TariffChangeIsAllowed(cheaper, 1461606400).empty(), true);
+
+ td.tariffConf.fee = 100;
+ STG::TariffImpl equal(td);
+
+ ensure_equals("Allow equal", tariff.TariffChangeIsAllowed(equal, 1461606400).empty(), true);
+
+ td.tariffConf.fee = 150;
+ STG::TariffImpl 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");
+
+ STG::TariffData td("test");
+ td.tariffConf.changePolicy = STG::Tariff::TO_CHEAP;
+ td.tariffConf.fee = 100;
+ STG::TariffImpl tariff(td);
+
+ td.tariffConf.fee = 50;
+ STG::TariffImpl cheaper(td);
+
+ ensure_equals("Allow cheaper", tariff.TariffChangeIsAllowed(cheaper, 1461606400).empty(), true);
+
+ td.tariffConf.fee = 100;
+ STG::TariffImpl equal(td);
+
+ ensure_equals("Prohibit equal", tariff.TariffChangeIsAllowed(equal, 1461606400).empty(), false);
+
+ td.tariffConf.fee = 150;
+ STG::TariffImpl 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");
+
+ STG::TariffData td("test");
+ td.tariffConf.changePolicy = STG::Tariff::TO_EXPENSIVE;
+ td.tariffConf.fee = 100;
+ STG::TariffImpl tariff(td);
+
+ td.tariffConf.fee = 50;
+ STG::TariffImpl cheaper(td);
+
+ ensure_equals("Prohibit cheaper", tariff.TariffChangeIsAllowed(cheaper, 1461606400).empty(), false);
+
+ td.tariffConf.fee = 100;
+ STG::TariffImpl equal(td);
+
+ ensure_equals("Allow equal", tariff.TariffChangeIsAllowed(equal, 1461606400).empty(), true);
+
+ td.tariffConf.fee = 150;
+ STG::TariffImpl expensive(td);
+
+ ensure_equals("Allow expensive", tariff.TariffChangeIsAllowed(expensive, 1461606400).empty(), true);
+ }
+
+ template<>
+ template<>
+ void testobject::test<10>()
+ {
+ set_test_name("Check changePolicy - DENY");
+
+ STG::TariffData td("test");
+ td.tariffConf.changePolicy = STG::Tariff::DENY;
+ td.tariffConf.fee = 100;
+ STG::TariffImpl tariff(td);
+
+ td.tariffConf.fee = 50;
+ STG::TariffImpl cheaper(td);
+
+ ensure_equals("Prohibit cheaper", tariff.TariffChangeIsAllowed(cheaper, 1461606400).empty(), false);
+
+ td.tariffConf.fee = 100;
+ STG::TariffImpl equal(td);
+
+ ensure_equals("Prohibit equal", tariff.TariffChangeIsAllowed(equal, 1461606400).empty(), false);
+
+ td.tariffConf.fee = 150;
+ STG::TariffImpl 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");
+
+ STG::TariffData td("test");
+ td.tariffConf.changePolicyTimeout = 1451606400;
+ td.tariffConf.changePolicy = STG::Tariff::TO_EXPENSIVE;
+ td.tariffConf.fee = 100;
+ STG::TariffImpl tariff(td);
+
+ td.tariffConf.fee = 50;
+ STG::TariffImpl 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");
+
+ STG::TariffData td("test");
+ td.tariffConf.changePolicyTimeout = 1483228800;
+ td.tariffConf.changePolicy = STG::Tariff::TO_EXPENSIVE;
+ td.tariffConf.fee = 100;
+ STG::TariffImpl tariff(td);
+
+ td.tariffConf.fee = 50;
+ STG::TariffImpl cheaper(td);
+
+ ensure_equals("Prohibit cheaper", tariff.TariffChangeIsAllowed(cheaper, 1461606400).empty(), false);
+ }
+
+ template<>
+ template<>
+ void testobject::test<13>()
+ {
+ set_test_name("Check changePolicyTimeout = 0");
+
+ STG::TariffData td("test");
+ td.tariffConf.changePolicyTimeout = 0;
+ td.tariffConf.changePolicy = STG::Tariff::TO_EXPENSIVE;
+ td.tariffConf.fee = 100;
+ STG::TariffImpl tariff(td);
+
+ td.tariffConf.fee = 50;
+ STG::TariffImpl cheaper(td);
+
+ ensure_equals("Prohibit cheaper", tariff.TariffChangeIsAllowed(cheaper, 1461606400).empty(), false);