Для выполнения основной логики расчёта используется класс DeliveryCostCalculator.
Для запуска приложения используется класс Main с 4 параметрами:
args[0]-- расстояние до пункта назначения (Integer);args[1]-- размер груза (Boolean:true-- большой,false-- небольшой);args[2]-- фактор хрупкости груза (Boolean:true-- хрупкий,false-- нехрупкий);args[3]-- степень загруженности службы доставки и соответствующий коэффициент-мультипликатор стоимости (String:"normal"-- 1.0,"middle"-- 1.2,"high"-- 1.4,"highest"-- 1.6);
DeliveryCostBlackBoxTest -- тесты для проверки логики по методу "чёрного ящика".
DeliveryCostWhiteBoxText -- тесты кода для проверки по методу "белого ящика".
Стоимость рассчитывается в зависимости от следующих условий.
- более 30 км: +300 рублей к доставке;
- до 30 км: +200 рублей к доставке;
- до 10 км: +100 рублей к доставке;
- до 2 км: +50 рублей к доставке.
- большие габариты: +200 рублей к доставке;
- маленькие габариты: +100 рублей к доставке;
- если груз хрупкий: +300 рублей к доставке;
- хрупкие грузы нельзя возить на расстояние более 30 км.
Стоимость умножается на коэффициент доставки:
- очень высокая загруженность ("highest") — 1.6;
- высокая загруженность ("high") — 1.4;
- повышенная загруженность ("middle") — 1.2;
- во всех остальных случаях ("normal") коэффициент равен 1.
- Минимальная сумма доставки — 400 рублей; если сумма доставки меньше минимальной, выводится минимальная сумма.
- расстояние до пункта назначения;
- габариты;
- информацию о хрупкости;
- загруженность службы на текущий момент
- Пользователь получает стоимость доставки.