53665c42856b595d085a536dd84727867ef7c86b
[SpringWebServicesForFun/.git] /
1 package de.spring.webservices.rest.business.service;
2
3 import static org.mockito.Mockito.mock;
4 import static org.mockito.Mockito.times;
5 import static org.mockito.Mockito.verify;
6 import static org.mockito.Mockito.when;
7
8 import java.util.ArrayList;
9 import java.util.List;
10
11 import org.junit.Before;
12 import org.junit.Test;
13 import org.mockito.ArgumentCaptor;
14
15 import de.spring.webservices.domain.Car;
16 import de.spring.webservices.rest.business.service.impl.BusinessServiceImpl;
17 import de.spring.webservices.rest.client.service.CarClientService;
18
19 public class BusinessServiceTest {
20
21         private CarClientService carClientService;
22         private BusinessService businessService;
23         
24     @Before
25     public void createTest() {
26         carClientService = mock(CarClientService.class);
27         businessService = new BusinessServiceImpl(carClientService);    
28     }
29     
30         @Test
31         public void whenDoSomethingWithCarsThenInvokeDoGetCars() {
32                 Car expectedOne = new Car(66L, "test");
33                 Car expectedTwo = new Car(99L, "example");
34                 List<Car> expected = new ArrayList<>();
35                 expected.add(expectedOne);
36                 expected.add(expectedTwo);
37                 when(carClientService.doGetCars()).thenReturn(expected);
38                 
39                 businessService.doSomethingWithCars();
40                 
41                 verify(carClientService, times(1)).doGetCars();
42         }
43     
44         @Test
45         public void whenDoSomethingWithOneCarhenInvokeDoGetCar() {
46                 Long id = 66L;
47                 Car expected = new Car(66L, "test");
48                 
49                 when(carClientService.doGetCar(id)).thenReturn(expected);
50                 
51                 businessService.doSomethingWithCar(id);
52                 
53                 verify(carClientService, times(1)).doGetCar(id);
54         }
55         
56         @Test
57         public void whenCreateNewCarThenCreateNewOne() {
58                 Car expected = new Car(66L, "test");
59                 ArgumentCaptor<Car> argCar = ArgumentCaptor.forClass(Car.class);
60                 
61                 when(carClientService.doNewCar(argCar.capture())).thenReturn(expected);
62                 
63                 businessService.createsNewCar();
64                 
65                 verify(carClientService, times(1)).doNewCar(argCar.getValue());
66         }
67 }