package tv.dyndns.kishibe.qmaclone.server; import static com.google.common.truth.Truth.assertThat; import static org.mockito.Mockito.when; import java.io.File; import java.io.IOException; import java.util.Date; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import org.apache.commons.io.FileUtils; import org.apache.http.impl.cookie.DateParseException; import org.apache.http.impl.cookie.DateUtils; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.JUnit4; import org.mockito.Mock; import org.mockito.junit.MockitoJUnit; import org.mockito.junit.MockitoRule; import tv.dyndns.kishibe.qmaclone.server.image.ImageUtils; import tv.dyndns.kishibe.qmaclone.server.image.ImageUtils.Parameter; @RunWith(JUnit4.class) public class ImageProxyServletStubTest { @Rule public final MockitoRule mocks = MockitoJUnit.rule(); @Mock private ImageProxyServletStub service; @Mock private HttpServletRequest mockRequest; @Mock private ImageUtils mockImageManager; @Before public void setUp() { try { FileUtils.deleteDirectory(new File("/tmp/qmaclone/image")); } catch (IOException e) { } service = new ImageProxyServletStub(mockImageManager); } @Test public void parseParameterShouldWork() throws ServletException { when(mockRequest.getRequestURI()).thenReturn("/image/url/006100620063/width/512/height/384"); Parameter parameter = service.parseParameter(mockRequest); assertThat(parameter.url).isEqualTo("abc"); assertThat(parameter.width).isEqualTo(512); assertThat(parameter.height).isEqualTo(384); } @Test public void parseParameterShouldWorkWithRoot() throws ServletException { when(mockRequest.getRequestURI()).thenReturn( "/QMAClone/image/url/006100620063/width/512/height/384"); Parameter parameter = service.parseParameter(mockRequest); assertThat(parameter.url).isEqualTo("abc"); assertThat(parameter.width).isEqualTo(512); assertThat(parameter.height).isEqualTo(384); } @Test public void testGetRFC1123NextYear() throws DateParseException { Date date = DateUtils.parseDate(service.getRFC1123NextYear()); assertThat(date.getTime()).isLessThan(System.currentTimeMillis() + 366L * 24 * 60 * 60 * 1000); } }