Skip to content
Open

Xml #15

Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
add tests
  • Loading branch information
lxian-coder committed Dec 1, 2020
commit b52a973ed87acf20ec89ccc216020c51a2180dc6
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@

package guru.springfamework.api.v1.mapper;

import guru.springfamework.api.v1.model.CategoryDTO;
import guru.springfamework.domain.Category;
import org.junit.Test;

import static org.junit.Assert.*;

/**
* Darcy Xian 21/11/20 6:14 pm spring5-mvc-rest
*/
public class CategoryMapperTest {

CategoryMapper categoryMapper = CategoryMapper.INSTANCE;

@Test
public void categoryToCategoryDTO() throws Exception{

//given
Category category = new Category();
category.setName("Joe");
category.setId(1L);

// when
CategoryDTO categoryDTO = categoryMapper.categoryToCategoryDTO(category);

// then
assertEquals(Long.valueOf(1L), categoryDTO.getId());
assertEquals("Joe", categoryDTO.getName());
}


}
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package guru.springfamework.api.v1.mapper;


import guru.springfamework.domain.Customer;
import guru.springfamework.model.CustomerDTO;
import org.junit.Before;
import org.junit.Test;

import static org.junit.Assert.*;

/**
* Darcy Xian 22/11/20 6:33 pm spring5-mvc-rest
*/
public class CustomerMapperTest {

private static final String FIRSTNAME = "Joe";
private static final String LASTNAME = "Lin";

CustomerMapper customerMapper = CustomerMapper.INSTANCE;

@Test
public void customerToCustomerDTO() {
// given
Customer customer = new Customer();
customer.setFirstname(FIRSTNAME);
customer.setLastname(LASTNAME);
customer.setId(1L);

// when
CustomerDTO customerDTO1 = customerMapper.CustomerToCustomerDTO(customer);

// then
assertEquals(Long.valueOf(1L), customerDTO1.getId());
assertEquals(FIRSTNAME,customerDTO1.getFirstname());
assertEquals(LASTNAME,customerDTO1.getLastname());


}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@

package guru.springfamework.api.v1.mapper;

import guru.springfamework.api.v1.model.VendorDTO;
import guru.springfamework.domain.Vendor;
import org.junit.Before;
import org.junit.Test;

import java.util.NavigableMap;

import static org.junit.Assert.*;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.when;

/**
* Darcy Xian 24/11/20 3:42 pm spring5-mvc-rest
*/
public class VendorMapperTest {

private static final String NAME = "JJJ";
private static final String URL = "kkkk";
VendorMapper vendorMapper = VendorMapper.INSTANCE;

@Test
public void vendorToVendorDTO() {
//given
Vendor vendor = new Vendor();
vendor.setId(1L);
vendor.setName(NAME);


// when
VendorDTO vendorDTO = vendorMapper.vendorToVendorDTO(vendor);

// then
assertEquals(Long.valueOf(1L),vendorDTO.getId());
assertEquals(NAME,vendorDTO.getName());

}

@Test
public void vendorDTOToVendor() {
//given
VendorDTO vendorDTO = new VendorDTO();
vendorDTO.setId(1L);
vendorDTO.setName(NAME);


// when
Vendor vendor1 = vendorMapper.vendorDTOToVendor(vendorDTO);

// then
assertEquals(Long.valueOf(1L),vendor1.getId());
assertEquals(NAME,vendor1.getName());
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package guru.springfamework.controllers.v1;

import com.fasterxml.jackson.databind.ObjectMapper;

/**
* Darcy Xian 22/11/20 9:07 pm spring5-mvc-rest
*/
public abstract class AbstractControllerTest {

public static String asJsonString(final Object ob){
try{
return new ObjectMapper().writeValueAsString(ob);
} catch (Exception e){
throw new RuntimeException(e);
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@

package guru.springfamework.controllers.v1;

import guru.springfamework.api.v1.model.CategoryDTO;
import guru.springfamework.services.CategoryService;
import guru.springfamework.services.ResourceNotFoundException;
import lombok.extern.slf4j.Slf4j;
import org.junit.Before;
import org.junit.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.springframework.http.MediaType;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.setup.MockMvcBuilders;

import java.util.Arrays;
import java.util.List;

import static org.hamcrest.Matchers.equalTo;
import static org.hamcrest.Matchers.hasSize;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.when;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
/**
* Darcy Xian 22/11/20 11:24 am spring5-mvc-rest
*/
@Slf4j
public class CategoryControllerTest {

public static final String NAME = "Joe";

@Mock
CategoryService categoryService;

@InjectMocks
CategoryController categoryController;

MockMvc mockMvc;
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);

mockMvc = MockMvcBuilders.standaloneSetup(categoryController)
.setControllerAdvice(new RestReponseEntityExceptionHandler()).build();
}

@Test
public void testGetAllCategories() throws Exception {
//given
CategoryDTO categoryDTO = new CategoryDTO();
categoryDTO.setId(1L);
categoryDTO.setName(NAME);

CategoryDTO categoryDTO1 = new CategoryDTO();
categoryDTO1.setName("Bob");
categoryDTO1.setId(2L);

List<CategoryDTO> c = Arrays.asList(categoryDTO,categoryDTO1);

when(categoryService.getAllCategories()).thenReturn(c);


// when
mockMvc.perform(get("/api/v1/categories/")
.accept(MediaType.APPLICATION_JSON)
.contentType(MediaType.APPLICATION_JSON))
.andExpect(status().isOk())
// categoryListDTOS 是 CategoryListDTO 里的 property
.andExpect(jsonPath("$.categoryListDTOS", hasSize(2)));


}

@Test
public void getCategoryByName() throws Exception {

CategoryDTO categoryDTO = new CategoryDTO();
categoryDTO.setId(1L);
categoryDTO.setName(NAME);

when(categoryService.getCategoryByName(anyString())).thenReturn(categoryDTO);

mockMvc.perform(get("/api/v1/categories/Joe")
.accept(MediaType.APPLICATION_JSON)
.contentType(MediaType.APPLICATION_JSON))
.andExpect(status().isOk())
.andExpect(jsonPath("$.name",equalTo(NAME)));
}
@Test
public void testGetByNameNotFound() throws Exception{
when(categoryService.getCategoryByName(anyString())).thenThrow(ResourceNotFoundException.class);

mockMvc.perform(get(CategoryController.BASE_URL + "/Foo")
.contentType(MediaType.APPLICATION_JSON))
.andExpect(status().isNotFound());

}
}
Loading