- Код должен проходить ESLint без ошибок.
- Unit-тесты должны обеспечивать 100% покрытие тестируемых функций и классов по строкам.
На лекции мы написали классы для книг и аудио-альбомов. Но этого недостаточно, т.к. владельцы портала решили добавить возможность поддержки продажи фильмов.
Реализуйте класс Movie
, который позволяет отобразить информацию, указанную на скриншоте (скриншот с сайта КиноПоиск):
Удостоверьтесь, что добавление объектов вашего класса в корзину работает.
На лекции мы написали класс Cart
, который хранит добавленные объекты и может выдавать их список.
Реализуйте в нём несколько дополнительных функций:
- Функцию, считающую суммарную стоимость (без учёта скидки)
- Функцию, считающую суммарную стоимость (с учётом скидки) - скидка должна быть параметром, передаваемым в эту функцию
- Функцию, позволяющую удалять уже добавленный в корзину объект по полю
id
Для функций обязательно:
- Указание типов параметров
- Указание типа возвращаемого значения (если функция ничего не возвращает, то должен быть указан тип
void
)
Портал решил продавать не только электронные товары (такие как книги, музыка и фильмы), но и вполне себе технические гаджеты вроде смартфонов и ноутбуков.
И вот тут-то возникло следующее требование: есть товары, которые сколько бы раз вы их не добавляли в корзину, всегда там будут в единственном экземпляре (например, фильм или электронная книга), а вот смартфонов можно добавить несколько раз (соответственно, и стоимость будет как за несколько штук).
Реализуйте в своём приложении данную функциональность.
Кроме того, не забудьте, что для таких товаров, которых может быть много, есть функция уменьшения их количества в корзине (т.е. было в корзине 4 айфона, нажали на значок -
и стало 3).