package org.zalando.catwatch.backend.scheduler;
import org.junit.Test;
import org.zalando.catwatch.backend.mail.MailSender;
import static org.mockito.Mockito.*;
public class FetcherTest {
private final static int MAX_ATTEMPTS = 3;
private final Fetcher fetcher = mock(Fetcher.class);
private final MailSender mailSender = mock(MailSender.class);
private final RetryableFetcher retryableFetcher = new RetryableFetcher(fetcher, MAX_ATTEMPTS, 0, 0, 0, mailSender);
@SuppressWarnings("unchecked")
@Test
public void shouldRetryThreeTimes() throws Exception {
when(fetcher.fetchData())
.thenThrow(CrawlerRetryException.class)
.thenThrow(CrawlerRetryException.class)
.thenReturn(true);
retryableFetcher.tryFetchData();
verify(fetcher, times(3)).fetchData();
}
}