package tv.dyndns.kishibe.qmaclone.server.image; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import java.util.List; import org.junit.After; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.runners.MockitoJUnitRunner; import com.google.gwt.thirdparty.guava.common.collect.Lists; import tv.dyndns.kishibe.qmaclone.client.packet.PacketImageLink; import tv.dyndns.kishibe.qmaclone.server.database.Database; @RunWith(MockitoJUnitRunner.class) public class BrokenImageLinkDetectorTest { @Mock private ImageLinkChecker.Factory mockImageLinkCheckerFactory; @Mock private ImageLinkChecker mockImageLinkChecker; @Mock private Database mockDatabase; private BrokenImageLinkDetector brokenImageLinkDetector; @Before public void setUp() throws Exception { BrokenImageLinkDetector.SKIP_HOST_CHECK_FOR_TESTING = true; brokenImageLinkDetector = new BrokenImageLinkDetector(mockImageLinkCheckerFactory, mockDatabase); } @After public void tearDown() { BrokenImageLinkDetector.SKIP_HOST_CHECK_FOR_TESTING = false; } @Test public void runProcessesProblems() throws Exception { when(mockImageLinkCheckerFactory.create()).thenReturn(mockImageLinkChecker); brokenImageLinkDetector.run(); verify(mockDatabase).processProblems(mockImageLinkChecker); } @Test public void getBrokenImageLinksReturnsImageLinks() throws Exception { List<PacketImageLink> imageLinks = Lists.newArrayList(new PacketImageLink()); when(mockImageLinkCheckerFactory.create()).thenReturn(mockImageLinkChecker); when(mockImageLinkChecker.getImageLinks()).thenReturn(imageLinks); brokenImageLinkDetector.run(); assertThat(brokenImageLinkDetector.getBrokenImageLinks()).isEqualTo(imageLinks); } }