Skip to content

Commit

Permalink
Add tests for OwnerController. Closes #36
Browse files Browse the repository at this point in the history
  • Loading branch information
enesoral committed Feb 16, 2020
1 parent 9b0117e commit 42879e5
Show file tree
Hide file tree
Showing 2 changed files with 76 additions and 0 deletions.
16 changes: 16 additions & 0 deletions petclinicweb/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,22 @@
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-junit-jupiter</artifactId>
<version>3.2.4</version>
<scope>test</scope>
</dependency>
</dependencies>

</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
package com.petclinic.petclinic.controllers;

import com.petclinic.petclinic.models.Owner;
import com.petclinic.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.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 controller;

Set<Owner> owners;
MockMvc mockMvc;

@BeforeEach
void setUp() {
owners = new HashSet<>();
owners.add(Owner.builder().firstName("Enes").build());
owners.add(Owner.builder().firstName("Hasan").build());

mockMvc = MockMvcBuilders.standaloneSetup(controller).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)));
}
}

0 comments on commit 42879e5

Please sign in to comment.