/Aviasales

Домашнее задание к занятию «Интерфейсы для организации малой связности. Обобщенное программирование (Generics)»

Primary LanguageJava

Домашнее задание к занятию «Интерфейсы для организации малой связности. Обобщенное программирование (Generics)»

Что вам нужно сделать:

  1. Спроектируйте класс для информации о "Билете"*
  2. Реализуйте репозиторий для хранения информации о "Билетах" (добавить, удалить, получить список)
  3. Реализуйте менеджера поиска по аэропорту вылета и аэропорту прилёта (даты не учитывайте)

Класс информации о билете - это data-класс, который должен содержать:

  1. id
  2. Стоимость (для упрощения будем считать стоимость единой для всех продавцов)
  3. Аэропорт вылета (вы можете использовать IATA-коды)
  4. Аэропорт прилёта (вы можете использовать IATA-коды)
  5. Время в пути (в минутах)

Других данных не нужно.

Данный класс должен реализовывать интерфейс Comparable так, чтобы по умолчанию сортировка происходила по цене (самый дешёвый - самый первый). Репозиторий для хранения "билетов" ничем не отличается от тех репозиториев, что мы проходили раньше В менеджере методов findAll должен претерпеть некоторые изменения: он должен принимать два параметра:

  1. from - аэропорта вылета
  2. to - аэропорт прилёта

Соответственно, в результате поиска возвращается массив только с теми билетами, что соответствуют условиям поиска.
Кроме того, результаты должны быть отсортированы по цене (от меньшей к большей).
Напишите автотесты на поиск, удостоверившись, что он удовлетворяет условиям задачи. Количество тестов и тестируемые сценарии мы оставляем на ваше усмотрение.