Задачи скопированы в TASKS.md
Проект в папке Project/. Комментарии по коду тут:
AdministratorDataBuilder
и ReportDataBuilder
реализуют единственную функцию - сборку соответствующего дата класса, реализует SRP
Интерфейсы IAdministratorDatabaseAPIStrategy
, IReportDatabaseAPIStrategy
, IUserDatabaseAPIStrategy
, IVideoDatabaseAPIStrategy
реализуют OCP
Класс CommandManagerSingleton
и метод CommandManagerSingleton.Execute
- явное использование подкласса, использование LSP
Интерфейсы IAdministratorDatabaseAPIStrategy
, IReportDatabaseAPIStrategy
, IUserDatabaseAPIStrategy
, IVideoDatabaseAPIStrategy
разделяют логику взаимодействия с API базы данных, реализуют ISP
DatabaseAPIFacade
иммеет инвертрорлванные зависимости, реализует DIP.
Сделан простейший юнит тест
==== После дедлайна ====
Добавлено покрытие тестами программы:
TestExample
- тест для примера из заданияTestInvalidCostFormat
- тест на проверку валидности введённых данных(стоимость)TestInvalidTipsFormat
- тест на проверку валидности введённых данных(чаевые)TestNegativeCost
- тест с негативной стоимостьюTestNegativeTips
- тест с негативными чаевымиTestTooBigTips
- тест с чаевым более 100%