Skip to content

Commit

Permalink
Write Spring MVC tests for Owner controller. Closes #52.
Browse files Browse the repository at this point in the history
  • Loading branch information
lucasfugisawa committed Oct 17, 2022
1 parent 4edb1cb commit 5d1c750
Show file tree
Hide file tree
Showing 2 changed files with 76 additions and 2 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
package br.com.fugisawa.petclinic.controllers;

import br.com.fugisawa.petclinic.model.Owner;
import br.com.fugisawa.petclinic.services.OwnerService;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;

import java.util.HashSet;
import java.util.Set;

import static org.hamcrest.Matchers.hasSize;
import static org.mockito.Mockito.verifyNoInteractions;
import static org.mockito.Mockito.when;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;

@ExtendWith(MockitoExtension.class)
class OwnerControllerTest {

@Mock
OwnerService ownerService;

@InjectMocks
OwnerController ownerController;

Set<Owner> owners;

MockMvc mockMvc;

@BeforeEach
void setUp() {
owners = new HashSet<>();
Owner owner1 = new Owner();
owner1.setId(1L);
owners.add(owner1);
Owner owner2 = new Owner();
owner2.setId(2L);
owners.add(owner2);

mockMvc = MockMvcBuilders.standaloneSetup(ownerController).build();
}

@Test
void listOwners() throws Exception {
when(ownerService.findAll()).thenReturn(owners);
mockMvc.perform(get("/owners"))
.andExpect(status().isOk())
.andExpect(view().name("owners/index"))
.andExpect(model().attribute("owners", hasSize(2)));
}

@Test
void listOwnersByIndex() throws Exception {
when(ownerService.findAll()).thenReturn(owners);
mockMvc.perform(get("/owners/index"))
.andExpect(status().isOk())
.andExpect(view().name("owners/index"))
.andExpect(model().attribute("owners", hasSize(2)));
}

@Test
void findOwners() throws Exception {
mockMvc.perform(get("/owners/find"))
.andExpect(status().isOk())
.andExpect(view().name("notimplemented"));
verifyNoInteractions(ownerService);
}
}
4 changes: 2 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@

<scm>
<developerConnection>scm:git:https://github.com/lucasfugisawa/pet-clinic.git</developerConnection>
<tag>HEAD</tag>
</scm>
<tag>HEAD</tag>
</scm>

</project>

0 comments on commit 5d1c750

Please sign in to comment.