Нужно упростить/скорректировать код в методе юнит теста (java)

Всем привет! Имеется задание, в котором требуется скорректировать тестовый метод testGetTransportMilitaryPlanes(), после аннотации @Test, убрав внутри данного метода излишний код. Если я правильно понимаю - надо избавиться от переменных типа "flag" и for-if цикла (наверное:)). В блоке кода есть исходный метод и скорректированный мной (в самом конце). Оба варианта проходят (IDE показывает их зелеными). Но мне кажется что я логически неправильно написал Assert, так как передал туда конкретный объект для проверки... и, если в основном коде удалить либо добавить Military Plane c типом Transport, то тест ляжет... Как я понимаю, мне надо каким то образом подобраться к "militaryPlane.getType()" и "MilitaryType.TRANSPORT" и правильно завернуть все это в assertTrue или assertEquals...

!Важно! Менять сам класс теста нельзя и использование сторонних фрэймворков типа Mockito не допускается... Основная задача - упростить код метода, не потеряв смысл теста...

И еще на всякий случай: Метод testGetTransportMilitaryPlanes() - только один из методов, которые нужно упростить. В задании еще есть пару методов (я их просто сюда не вносил), поэтому сам тестовый класс и включает в себя столько инфы...

public class AirportTest {
    private static List<Plane> planes = Arrays.asList(
            new PassengerPlane("Boeing-737", 900, 12000, 60500, 164),
            new PassengerPlane("Boeing-737-800", 940, 12300, 63870, 192),
            new PassengerPlane("Boeing-747", 980, 16100, 70500, 242),
            new PassengerPlane("Airbus A320", 930, 11800, 65500, 188),
            new PassengerPlane("Airbus A330", 990, 14800, 80500, 222),
            new PassengerPlane("Embraer 190", 870, 8100, 30800, 64),
            new PassengerPlane("Sukhoi Superjet 100", 870, 11500, 50500, 140),
            new PassengerPlane("Bombardier CS300", 920, 11000, 60700, 196),
            new MilitaryPlane("B-1B Lancer", 1050, 21000, 80000, MilitaryType.BOMBER),
            new MilitaryPlane("B-2 Spirit", 1030, 22000, 70000, MilitaryType.BOMBER),
            new MilitaryPlane("B-52 Stratofortress", 1000, 20000, 80000, MilitaryType.BOMBER),
            new MilitaryPlane("F-15", 1500, 12000, 10000, MilitaryType.FIGHTER),
            new MilitaryPlane("F-22", 1550, 13000, 11000, MilitaryType.FIGHTER),
            new MilitaryPlane("C-130 Hercules", 650, 5000, 110000, MilitaryType.TRANSPORT),
            new experimentalPlane("Bell X-14", 277, 482, 500, ExperimentalTypes.HIGH_ALTITUDE, ClassificationLevel.SECRET),
            new experimentalPlane("Ryan X-13 Vertijet", 560, 307, 500, ExperimentalTypes.VTOL, ClassificationLevel.TOP_SECRET)
    );

    private static PassengerPlane planeWithMaxPassengerCapacity = new PassengerPlane("Boeing-747", 980, 16100, 70500, 242);

    @Test
// Внизу метод, код которого нужно упростить
  public void testGetTransportMilitaryPlanes() {
        Airport airport = new Airport(planes);
        List<MilitaryPlane> transportMilitaryPlanes = airport.getTransportMilitaryPlanes();
        boolean flag = false;
        for (MilitaryPlane militaryPlane : transportMilitaryPlanes) {
            if ((militaryPlane.getType() == MilitaryType.TRANSPORT)) {
                flag = true;
                break;
            }
        }
        Assert.assertEquals(flag, true);
    }

// Моя версия упрощенного кода
public void testGetTransportMilitaryPlanes() {
Airport airport = new Airport(planes);
 List<MilitaryPlane> transportMilitaryPlanes = airport.getTransportMilitaryPlanes();
Assert.assertTrue(transportMilitaryPlanes.contains(new MilitaryPlane("C-130 Hercules", 650, 5000, 110000, TRANSPORT)));
    }

Ответы (0 шт):