Skip to content

Commit 15b20f6

Browse files
committed
Improving some tests
1 parent b04b0c5 commit 15b20f6

File tree

1 file changed

+40
-26
lines changed

1 file changed

+40
-26
lines changed

rskj-core/src/test/java/co/rsk/mine/gas/provider/HttpGetMinGasPriceProviderTest.java

Lines changed: 40 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
import co.rsk.config.mining.StableMinGasPriceSystemConfig;
2222
import co.rsk.net.http.HttpException;
2323
import co.rsk.net.http.SimpleHttpClient;
24+
import org.junit.jupiter.api.BeforeEach;
2425
import org.junit.jupiter.api.Test;
2526

2627
import java.time.Duration;
@@ -29,20 +30,36 @@
2930
import static org.junit.jupiter.api.Assertions.assertEquals;
3031
import static org.junit.jupiter.api.Assertions.assertTrue;
3132
import static org.mockito.ArgumentMatchers.anyString;
32-
import static org.mockito.Mockito.*;
33+
import static org.mockito.Mockito.anyBoolean;
34+
import static org.mockito.Mockito.mock;
35+
import static org.mockito.Mockito.reset;
36+
import static org.mockito.Mockito.spy;
37+
import static org.mockito.Mockito.times;
38+
import static org.mockito.Mockito.verify;
39+
import static org.mockito.Mockito.when;
3340

3441
class HttpGetMinGasPriceProviderTest {
3542

43+
private final MinGasPriceProvider fallbackProvider = mock(MinGasPriceProvider.class);
44+
private final SimpleHttpClient httpClient = mock(SimpleHttpClient.class);
45+
private StableMinGasPriceSystemConfig config;
46+
47+
@BeforeEach
48+
void setUp() {
49+
reset(fallbackProvider);
50+
config = createStableMinGasPriceSystemConfig();
51+
}
52+
3653
@Test
3754
void returnsMappedPriceFromWebClient() throws HttpException {
38-
MinGasPriceProvider fallbackProvider = mock(MinGasPriceProvider.class);
55+
// given
3956
when(fallbackProvider.getType()).thenReturn(MinGasPriceProviderType.FIXED);
40-
41-
SimpleHttpClient httpClient = mock(SimpleHttpClient.class);
4257
when(httpClient.doGet(anyString())).thenReturn("{\"bitcoin\":{\"usd\":10000}}");
43-
StableMinGasPriceSystemConfig config = createStableMinGasPriceSystemConfig();
58+
59+
// when
4460
HttpGetMinGasPriceProvider provider = new HttpGetMinGasPriceProvider(config, fallbackProvider, httpClient);
4561

62+
// then
4663
Optional<Long> result = provider.getBtcExchangeRate();
4764
verify(fallbackProvider, times(0)).getMinGasPrice();
4865
assertTrue(result.isPresent());
@@ -51,69 +68,66 @@ void returnsMappedPriceFromWebClient() throws HttpException {
5168

5269
@Test
5370
void whenRequestingTheValueTwiceCachedValueIsUsed() throws HttpException {
54-
MinGasPriceProvider fallbackProvider = mock(MinGasPriceProvider.class);
71+
// given
5572
when(fallbackProvider.getType()).thenReturn(MinGasPriceProviderType.FIXED);
56-
57-
SimpleHttpClient httpClient = mock(SimpleHttpClient.class);
5873
when(httpClient.doGet(anyString())).thenReturn("{\"bitcoin\":{\"usd\":10000}}");
59-
60-
StableMinGasPriceSystemConfig config = createStableMinGasPriceSystemConfig();
6174
HttpGetMinGasPriceProvider provider = spy(new HttpGetMinGasPriceProvider(config, fallbackProvider, httpClient));
6275

76+
// when
6377
// First call should fetch and cache the value
6478
provider.getMinGasPrice();
6579
// Second call should use the cached value
6680
provider.getMinGasPrice(true);
6781

82+
// then
6883
verify(httpClient, times(1)).doGet(anyString());
69-
verify(provider, times(2)).getMinGasPrice(anyBoolean());
84+
verify(provider, times(1)).getMinGasPrice(anyBoolean());
7085
}
7186

7287
@Test
7388
void whenEmptyResponseReturnsFallbackProvider() throws HttpException {
74-
MinGasPriceProvider fallbackProvider = mock(MinGasPriceProvider.class);
89+
// given
7590
when(fallbackProvider.getMinGasPrice()).thenReturn(10L);
7691
when(fallbackProvider.getType()).thenReturn(MinGasPriceProviderType.FIXED);
77-
78-
SimpleHttpClient httpClient = mock(SimpleHttpClient.class);
7992
when(httpClient.doGet(anyString())).thenReturn("");
80-
StableMinGasPriceSystemConfig config = createStableMinGasPriceSystemConfig();
81-
HttpGetMinGasPriceProvider provider = new HttpGetMinGasPriceProvider(config, fallbackProvider, httpClient);
8293

94+
// when
95+
HttpGetMinGasPriceProvider provider = new HttpGetMinGasPriceProvider(config, fallbackProvider, httpClient);
8396
Long result = provider.getMinGasPrice(true);
97+
98+
// then
8499
verify(fallbackProvider, times(1)).getMinGasPrice();
85100
assertEquals(10L, result);
86101
}
87102

88103
@Test
89104
void whenErrorReturnsFallbackProvider() throws HttpException {
90-
MinGasPriceProvider fallbackProvider = mock(MinGasPriceProvider.class);
105+
// given
91106
when(fallbackProvider.getMinGasPrice()).thenReturn(10L);
92107
when(fallbackProvider.getType()).thenReturn(MinGasPriceProviderType.FIXED);
93-
94-
SimpleHttpClient httpClient = mock(SimpleHttpClient.class);
95108
when(httpClient.doGet(anyString())).thenThrow(new HttpException("Error"));
96-
StableMinGasPriceSystemConfig config = createStableMinGasPriceSystemConfig();
97-
HttpGetMinGasPriceProvider provider = new HttpGetMinGasPriceProvider(config, fallbackProvider, httpClient);
98109

110+
// when
111+
HttpGetMinGasPriceProvider provider = new HttpGetMinGasPriceProvider(config, fallbackProvider, httpClient);
99112
Long result = provider.getMinGasPrice(true);
113+
114+
// then
100115
verify(fallbackProvider, times(1)).getMinGasPrice();
101116
assertEquals(10L, result);
102117
}
103118

104119
@Test
105120
void whenPathIsWrongReturnsFallBack() throws HttpException {
106-
MinGasPriceProvider fallbackProvider = mock(MinGasPriceProvider.class);
121+
// given
107122
when(fallbackProvider.getMinGasPrice()).thenReturn(10L);
108123
when(fallbackProvider.getType()).thenReturn(MinGasPriceProviderType.FIXED);
109-
110-
SimpleHttpClient httpClient = mock(SimpleHttpClient.class);
111124
when(httpClient.doGet(anyString())).thenReturn("{\"btc\":{\"usd\":10000}}");
112-
StableMinGasPriceSystemConfig config = createStableMinGasPriceSystemConfig();
113-
HttpGetMinGasPriceProvider provider = new HttpGetMinGasPriceProvider(config, fallbackProvider, httpClient);
114125

126+
// when
127+
HttpGetMinGasPriceProvider provider = new HttpGetMinGasPriceProvider(config, fallbackProvider, httpClient);
115128
Long result = provider.getMinGasPrice(true);
116129

130+
// then
117131
verify(fallbackProvider, times(1)).getMinGasPrice();
118132
assertEquals(10L, result);
119133
}

0 commit comments

Comments
 (0)