@Test
void fail_fast_if_working_solution_vehicle_list_does_not_contain_working_vehicle() {

    long removedId = 111L;
    long wrongId = 222L;
    PlanningVehicle removedVehicle = PlanningVehicleFactory.testVehicle(removedId);
    PlanningVehicle wrongVehicle = PlanningVehicleFactory.testVehicle(wrongId);
    PlanningDepot depot = new PlanningDepot(PlanningLocationFactory.testLocation(1));
    VehicleRoutingSolution solution = SolutionFactory.solutionFromVisits(
            Arrays.asList(wrongVehicle),
            depot,
            Collections.emptyList());
    when(scoreDirector.getWorkingSolution()).thenReturn(solution);
    when(scoreDirector.lookUpWorkingObject(removedVehicle)).thenReturn(removedVehicle);
    // do change
    RemoveVehicle removeVehicle = new RemoveVehicle(removedVehicle);
    assertThatIllegalStateException()
            .isThrownBy(() -> removeVehicle.doChange(scoreDirector))
            .withMessageMatching(".*List .*" + wrongId + ".* doesn't contain the working.*" + removedId + ".*");
}