-
Notifications
You must be signed in to change notification settings - Fork 45
Closed as not planned
Closed as not planned
Copy link
Labels
comp-fuzzingIssue is related to the fuzzingIssue is related to the fuzzingcomp-springIssue is related to Spring projects supportIssue is related to Spring projects supportstatus-wont-fixThis will not be worked onThis will not be worked on
Milestone
Description
Description
OwnerController Integration tests fail on assertions.
findOwner tests get Owner by id, but it was not saved in the test method before.
To Reproduce
- Install UnitTestBot plugin built from main in IntelliJ IDEA
- Open
spring-petclinicproject - Generate
Integration testsforOwnerController - Run the tests
Expected behavior
Tests should fail only on expected exceptions.
Entity should be saved to database before calling methods that check it.
Actual behavior
There are 26 tests failing unexpectedly.
There are tests that call ownerController.findOwner(<int>), but do not call entityManager.persist(...) before.
Screenshots, logs
This is one of successful tests on findOwner:
/**
* @utbot.classUnderTest {@link OwnerController}
* @utbot.methodUnderTest {@link OwnerController#findOwner(Integer)}
*/
@Test
@DisplayName("findOwner: ownerId = 3 (mutated from positive)")
public void testFindOwner1() throws Exception {
Owner actual = ownerController.findOwner(3);
Owner expected = ((Owner) createInstance("org.springframework.samples.petclinic.owner.Owner"));
String address = "2693 Commerce St.";
expected.setAddress(address);
String city = "McFarland";
expected.setCity(city);
String telephone = "6085558763";
expected.setTelephone(telephone);
List pets = new ArrayList();
Pet pet = ((Pet) createInstance("org.springframework.samples.petclinic.owner.Pet"));
LocalDate birthDate = ((LocalDate) createInstance("java.time.LocalDate"));
pet.setBirthDate(birthDate);
PetType type = ((PetType) createInstance("org.springframework.samples.petclinic.owner.PetType"));
String name = "dog";
type.setName(name);
Integer id = 2;
type.setId(id);
pet.setType(type);
Set visits = new LinkedHashSet();
setField(pet, "org.springframework.samples.petclinic.owner.Pet", "visits", visits);
String name1 = "Jewel";
pet.setName(name1);
Integer id1 = 4;
pet.setId(id1);
pets.add(pet);
Pet pet1 = ((Pet) createInstance("org.springframework.samples.petclinic.owner.Pet"));
LocalDate birthDate1 = ((LocalDate) createInstance("java.time.LocalDate"));
pet1.setBirthDate(birthDate1);
pet1.setType(type);
Set visits1 = new LinkedHashSet();
setField(pet1, "org.springframework.samples.petclinic.owner.Pet", "visits", visits1);
String name2 = "Rosy";
pet1.setName(name2);
Integer id2 = 3;
pet1.setId(id2);
pets.add(pet1);
setField(expected, "org.springframework.samples.petclinic.owner.Owner", "pets", pets);
String firstName = "Eduardo";
expected.setFirstName(firstName);
String lastName = "Rodriquez";
expected.setLastName(lastName);
expected.setId(id2);
String expectedAddress = expected.getAddress();
String actualAddress = actual.getAddress();
assertEquals(expectedAddress, actualAddress);
String expectedCity = expected.getCity();
String actualCity = actual.getCity();
assertEquals(expectedCity, actualCity);
String expectedTelephone = expected.getTelephone();
String actualTelephone = actual.getTelephone();
assertEquals(expectedTelephone, actualTelephone);
List expectedPets = expected.getPets();
List actualPets = actual.getPets();
assertTrue(deepEquals(expectedPets, actualPets));
String expectedFirstName = expected.getFirstName();
String actualFirstName = actual.getFirstName();
assertEquals(expectedFirstName, actualFirstName);
String expectedLastName = expected.getLastName();
String actualLastName = actual.getLastName();
assertEquals(expectedLastName, actualLastName);
Integer expectedId = expected.getId();
Integer actualId = actual.getId();
assertEquals(expectedId, actualId);
} ///region FUZZER: CHECKED EXCEPTIONS for method showOwner(int)
/**
* @utbot.classUnderTest {@link OwnerController}
* @utbot.methodUnderTest {@link OwnerController#showOwner(int)}
*/
@Test
@DisplayName("showOwner: ownerId = zero (mutated from min) -> throw ServletException")
public void testShowOwnerThrowsSEWithCornerCase() throws Exception {
UriComponentsBuilder uriComponentsBuilder = fromPath("/owners/{ownerId}");
Map uriVariables = new HashMap();
uriVariables.put("ownerId", 0);
UriComponentsBuilder uriComponentsBuilder1 = uriComponentsBuilder.uriVariables(uriVariables);
String urlTemplate = uriComponentsBuilder1.toUriString();
Object[] uriVariables1 = {};
MockHttpServletRequestBuilder mockHttpServletRequestBuilder = get(urlTemplate, uriVariables1);
/* This test fails because method [org.springframework.test.web.servlet.MockMvc.perform] produces [jakarta.servlet.ServletException: Request processing failed: java.lang.IllegalArgumentException: Model object must not be null]
org.springframework.util.Assert.notNull(Assert.java:204)
org.springframework.ui.ModelMap.addAttribute(ModelMap.java:90)
org.springframework.web.servlet.ModelAndView.addObject(ModelAndView.java:300)
org.springframework.samples.petclinic.owner.OwnerController.showOwner(OwnerController.java:157) */
mockMvc.perform(mockHttpServletRequestBuilder);
}Environment
IntelliJ IDEA version - Ultimate 2023.2
Project - spring-petclinic (Gradle)
JDK - 17
Metadata
Metadata
Assignees
Labels
comp-fuzzingIssue is related to the fuzzingIssue is related to the fuzzingcomp-springIssue is related to Spring projects supportIssue is related to Spring projects supportstatus-wont-fixThis will not be worked onThis will not be worked on
Type
Projects
Status
Done