X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/82af4f9a41b7474aa65820c7f54ceca209bfc633..0492dd9aebc0acf9158af88178c503d5d907f9e4:/tests/test_tariff.cpp diff --git a/tests/test_tariff.cpp b/tests/test_tariff.cpp index 7252a237..188aee8a 100644 --- a/tests/test_tariff.cpp +++ b/tests/test_tariff.cpp @@ -343,5 +343,113 @@ namespace tut ensure_equals("1101 == 0", tariff.GetPriceWithTraffType(0, 6 * 1024 * 1024, 0, 1286461245), 0); // Near 17:30, 6 > 4 DA (ignore night) ensure_equals("1110 == 0", tariff.GetPriceWithTraffType(0, 0 * 1024 * 1024, 0, 1286479245), 0); // Near 22:30, 0 < 4 DA (ignore night) ensure_equals("1111 == 0", tariff.GetPriceWithTraffType(0, 6 * 1024 * 1024, 0, 1286479245), 0); // Near 22:30, 6 > 4 DA (ignore night) + } + + 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).empty(), true); + + td.tariffConf.fee = 100; + TARIFF_IMPL equal(td); + + ensure_equals("Allow equal", tariff.TariffChangeIsAllowed(equal).empty(), true); + + td.tariffConf.fee = 150; + TARIFF_IMPL expensive(td); + + ensure_equals("Allow expensive", tariff.TariffChangeIsAllowed(expensive).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).empty(), true); + + td.tariffConf.fee = 100; + TARIFF_IMPL equal(td); + + ensure_equals("Prohibit equal", tariff.TariffChangeIsAllowed(equal).empty(), false); + + td.tariffConf.fee = 150; + TARIFF_IMPL expensive(td); + + ensure_equals("Prohibit expensive", tariff.TariffChangeIsAllowed(expensive).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).empty(), false); + + td.tariffConf.fee = 100; + TARIFF_IMPL equal(td); + + ensure_equals("Allow equal", tariff.TariffChangeIsAllowed(equal).empty(), true); + + td.tariffConf.fee = 150; + TARIFF_IMPL expensive(td); + + ensure_equals("Allow expensive", tariff.TariffChangeIsAllowed(expensive).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).empty(), false); + + td.tariffConf.fee = 100; + TARIFF_IMPL equal(td); + + ensure_equals("Prohibit equal", tariff.TariffChangeIsAllowed(equal).empty(), false); + + td.tariffConf.fee = 150; + TARIFF_IMPL expensive(td); + + ensure_equals("Prohibit expensive", tariff.TariffChangeIsAllowed(expensive).empty(), false); } }