Skip to content

Commit 2c1102b

Browse files
committed
Added Powermockito to parametrized tests.
1 parent 22636ba commit 2c1102b

2 files changed

Lines changed: 23 additions & 2 deletions

File tree

src/main/java/com/codecentric/sample/store/service/RateService.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.codecentric.sample.store.model.Item;
44
import com.codecentric.sample.store.repository.ItemRepository;
5+
import com.codecentric.sample.store.service.tools.StaticService;
56
import org.springframework.beans.factory.annotation.Autowired;
67

78
public class RateService {
@@ -13,7 +14,7 @@ public class RateService {
1314
public int calculateRate(String itemId, int muliplicator) {
1415

1516
Item item = itemRepository.findById(itemId);
16-
int rate = item.getPriceInCents() * muliplicator;
17+
int rate = item.getPriceInCents() * StaticService.getMultiplicator();
1718
return rate;
1819
}
1920

src/test/java/com/codecentric/sample/store/service/RateServiceTest.java

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,36 @@
22

33
import com.codecentric.sample.store.model.Item;
44
import com.codecentric.sample.store.repository.ItemRepository;
5+
import com.codecentric.sample.store.service.tools.StaticService;
56
import org.junit.Before;
67
import org.junit.Test;
78
import org.junit.runner.RunWith;
89
import org.junit.runners.Parameterized;
910
import org.mockito.InjectMocks;
1011
import org.mockito.Mock;
1112
import org.mockito.MockitoAnnotations;
13+
import org.powermock.api.mockito.PowerMockito;
14+
import org.powermock.core.classloader.annotations.PrepareForTest;
15+
import org.powermock.modules.junit4.PowerMockRunner;
16+
import org.powermock.modules.junit4.PowerMockRunnerDelegate;
1217

1318
import java.util.Arrays;
1419
import java.util.Collection;
1520

1621
import static org.hamcrest.CoreMatchers.is;
1722
import static org.junit.Assert.assertThat;
23+
import static org.mockito.Mockito.times;
24+
import static org.mockito.Mockito.verify;
1825
import static org.mockito.Mockito.when;
26+
import static org.powermock.api.mockito.PowerMockito.mockStatic;
27+
import static org.powermock.api.mockito.PowerMockito.verifyStatic;
1928

20-
@RunWith(Parameterized.class)
29+
// See http://www.jayway.com/2014/11/29/using-another-junit-runner-with-powermock/
30+
// for an example with the SpringJUnit4ClassRunner.class
31+
32+
@RunWith(PowerMockRunner.class)
33+
@PowerMockRunnerDelegate(Parameterized.class)
34+
@PrepareForTest({StaticService.class})
2135
public class RateServiceTest {
2236

2337
@Mock
@@ -57,6 +71,8 @@ public void rateCalculationTest() {
5771
// Given
5872
//
5973
when(itemRepositoryeMock.findById(item.getId())).thenReturn(item);
74+
mockStatic(StaticService.class);
75+
PowerMockito.when(StaticService.getMultiplicator()).thenReturn(multiplicator);
6076

6177
//
6278
// When
@@ -66,6 +82,10 @@ public void rateCalculationTest() {
6682
//
6783
// Then
6884
//
85+
verify(itemRepositoryeMock, times(1)).findById(item.getId());
86+
verifyStatic(times(1));
87+
StaticService.getMultiplicator();
88+
6989
assertThat(result, is(expected));
7090
}
7191
}

0 commit comments

Comments
 (0)