Lessons 36 - angelShlesser/HomeWorksAIT GitHub Wiki
Цель задания:
Научиться писать и выполнять модульные тесты для Java-классов, используя библиотеку JUnit, на примере системы управления супергероями. Описание задачи:
Вы разрабатываете программу для управления супергероями в мире комиксов. Вам необходимо написать класс Superhero, который представляет собой сущность супергероя с полями: имя (name), силой (power), и возрастом (age). Затем вы должны разработать класс SuperheroManager, который будет управлять коллекцией супергероев.
Создайте класс Superhero с полями:
* String name: имя супергероя.
* int power: уровень силы супергероя (от 1 до 10).
* int age: возраст супергероя.
Реализуйте конструктор для класса Superhero, который принимает параметры name, power и age и инициализирует соответствующие поля.
Добавьте геттеры и сеттеры для всех полей.
Переопределите метод toString() для класса Superhero, чтобы он возвращал строку с информацией о супергерое в формате: "Имя: [name], Сила: [power], Возраст: [age]".
Создайте класс SuperheroManager для управления коллекцией супергероев. В этом классе должны быть следующие методы:
void addSuperhero(Superhero superhero): метод для добавления супергероя в коллекцию.
void removeSuperhero(String name): метод для удаления супергероя по имени.
Superhero getSuperhero(String name): метод, который возвращает супергероя по имени.
List<Superhero> getAllSuperheroes(): метод, который возвращает список всех супергероев.
Реализуйте методы класса SuperheroManager с учетом следующих правил:
Нельзя добавлять супергероев с одинаковыми именами.
Если метод removeSuperhero не находит супергероя с указанным именем, он должен возвращать null`.
Создайте тестовый класс SuperheroManagerTest для класса SuperheroManager.
Напишите тесты для всех методов класса SuperheroManager. Убедитесь, что каждый метод работает корректно и соответствует правилам, указанным в описании задачи.
Ваши тесты должны покрывать следующие сценарии:
* Добавление супергероев в коллекцию.
* Удаление супергероев из коллекции.
* Получение супергероя по имени.
* Обработку ситуации при удалении несуществующего супергероя.
Реализуйте дополнительный метод void updateSuperhero(String name, Superhero newSuperhero) в классе SuperheroManager, который позволяет обновить информацию о супергерое по имени.
Напишите соответствующие тесты для метода updateSuperhero в тестовом классе SuperheroManagerTest.
Список Супер Героев для Тестов
Superhero superheroSuperman = new Superhero("Superman", 10, 35);
Superhero superheroSpiderMan = new Superhero("Spider-Man", 8, 30);
Superhero superheroWonderWoman = new Superhero("Wonder Woman", 9, 28);
Superhero superheroIronMan = new Superhero("Iron Man", 7, 40);
Superhero superheroBlackWidow = new Superhero("Black Widow", 6, 35);
Superhero superheroCaptainAmerica = new Superhero("Captain America", 9, 35);
Superhero superheroThor = new Superhero("Thor", 8, 1500);
Superhero superheroHulk = new Superhero("Hulk", 10, 45);
Superhero superheroAquaman = new Superhero("Aquaman", 7, 35);
Superhero superheroWonderMan = new Superhero("Wonder Man", 8, 32);
Superhero superheroBlackPanther = new Superhero("Black Panther", 7, 35);
Superhero superheroFlash = new Superhero("Flash", 9, 30);
Superhero superheroGreenLantern = new Superhero("Green Lantern", 8, 35);
Superhero superheroAntMan = new Superhero("Ant-Man", 7, 45);
Superhero superheroWolverine = new Superhero("Wolverine", 10, 60);
Superhero superheroStorm = new Superhero("Storm", 9, 40);
Superhero superheroDoctorStrange = new Superhero("Doctor Strange", 8, 45);
Superhero superheroScarletWitch = new Superhero("Scarlet Witch", 7, 35);
Superhero superheroCaptainMarvel = new Superhero("Captain Marvel", 8, 30);
Superhero superheroBlackCanary = new Superhero("Black Canary", 7, 33);
Superhero superheroShazam = new Superhero("Shazam", 9, 32);
Superhero superheroGreenArrow = new Superhero("Green Arrow", 8, 37);
Superhero superheroCatwoman = new Superhero("Catwoman", 7, 35);
Superhero superheroBatgirl = new Superhero("Batgirl", 8, 29);
Superhero superheroRobin = new Superhero("Robin", 7, 22);
Superhero superheroNightwing = new Superhero("Nightwing", 9, 31);
Superhero superheroJoker = new Superhero("Joker", 6, 40);
Superhero superheroHarleyQuinn = new Superhero("Harley Quinn", 7, 29);
Superhero superheroPenguin = new Superhero("Penguin", 5, 54);
Superhero superheroRiddler = new Superhero("Riddler", 6, 41);
Superhero superheroTwoFace = new Superhero("Two-Face", 7, 39);
Superhero superheroScarecrow = new Superhero("Scarecrow", 5, 42);
Superhero superheroPoisonIvy = new Superhero("Poison Ivy", 6, 36);
Superhero superheroBane = new Superhero("Bane", 9, 40);
Superhero superheroRa'sAlGhul = new Superhero("Ra's al Ghul", 10, 700);
Superhero superheroDeathstroke = new Superhero("Deathstroke", 8, 55);
// И так далее...