package mobi.boilr.libdynticker.core; import static org.mockito.Mockito.verify; import java.io.IOException; import java.lang.reflect.InvocationTargetException; import javassist.CannotCompileException; import javassist.NotFoundException; import mobi.boilr.libdynticker.exchanges.BitstampExchange; import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mockito; import org.powermock.api.mockito.PowerMockito; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; @RunWith(PowerMockRunner.class) @PrepareForTest(BitstampExchange.class) public class GetPairsFromAPITest { Exchange exchange; @Before public void setUp() throws Exception { exchange = PowerMockito.spy(new BitstampExchange(1000000000)); } @After public void tearDown() throws Exception { } @Test public void testSecondGetPairsFromAPIDoesActive() throws NotFoundException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException, CannotCompileException { try { exchange.setExpiredPeriod(-1); exchange.getPairs(); verify(exchange, Mockito.times(1)).getPairsFromAPI(); Assert.assertNotNull(exchange.getTimestamp()); exchange.getPairs(); verify(exchange, Mockito.times(2)).getPairsFromAPI(); } catch(IOException e) { e.printStackTrace(); Assert.fail(); } } @Test public void testSecondGetPairsFromAPIDoesntActive() { try { // Exchange exchange = PowerMockito.spy(testExchange); exchange.setExpiredPeriod(Long.MAX_VALUE); exchange.getPairs(); verify(exchange, Mockito.times(1)).getPairsFromAPI(); Assert.assertNotNull(exchange.getTimestamp()); exchange.getPairs(); verify(exchange, Mockito.times(1)).getPairsFromAPI(); } catch(IOException e) { e.printStackTrace(); Assert.fail(); } } }