Hello i write and backend service that sells flight tickets and i'm trying to write tests for this api. When i try to write createAirlineCompany test for AirlineCompanyController class i get this error.
Cannot resolve method 'thenReturn(flight.flightticketapp.entities.AirlineCompany)'
My test class:
@Test
public void testCreateAirlineCompany()
{
AirlineCompany airlineCompanyNew = new AirlineCompany();
airlineCompanyNew.setName("RYANAIR");
when(airlineCompanyService.createAirlineCompany(airlineCompanyNew.getName())).thenReturn(airlineCompanyNew);
ResponseEntity<AirlineCompany> airlineCompanyResponseEntity = testRestTemplate.postForEntity
(ROOT_URL+"/airlinecompany/airlineCreate",airlineCompanyNew,AirlineCompany.class);
AirlineCompany airline = (AirlineCompany) airlineCompanyResponseEntity.getBody();
assertNotNull(airlineCompanyResponseEntity.getBody());
assertEquals(airlineCompanyNew.getName(),airline.getName());
}
}
and my AirlineCompanyService class:
@Service
public class AirlineCompanyManager implements AirlineCompanyService {
@Override
public Result createAirlineCompany(String name) {
return airlineCompanyAbstract.createAirlineCompany(name);
}
}
My AirlineCompany Imp class:
@Component
public class AirlineCompanyImp implements AirlineCompanyAbstract {
@Override
public Result createAirlineCompany(String name) {
AirlineCompany airlineCompany = new AirlineCompany();
airlineCompany.setName(name);
add(airlineCompany);
return new SuccessResult(Messages.airlineCompanyCreated);
}
@Override
public Result add(AirlineCompany airlineCompany) {
airlineCompanyRepository.save(airlineCompany);
return new SuccessResult(Messages.airlineCompanyAdded);
}
}
The error i got is coming from thenReturn() method and i don't know how to fix this. Thank you for all.