X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;f=dist%2Fhttp-resources%2F2.0.0%2Fxref-test%2Fde%2Fjuplo%2Fhttpresources%2FHttpResourceNotFetchedFirstFetchSuccessfulTest.html;fp=dist%2Fhttp-resources%2F2.0.0%2Fxref-test%2Fde%2Fjuplo%2Fhttpresources%2FHttpResourceNotFetchedFirstFetchSuccessfulTest.html;h=c184b374f2e8a027addc7da3129022427e69feee;hb=96ec104e2974d001e9bc82c3af8b21029b2042d4;hp=0000000000000000000000000000000000000000;hpb=de1fa457a1c69c673d4dd5c0a2c9af568f74ea12;p=website diff --git a/dist/http-resources/2.0.0/xref-test/de/juplo/httpresources/HttpResourceNotFetchedFirstFetchSuccessfulTest.html b/dist/http-resources/2.0.0/xref-test/de/juplo/httpresources/HttpResourceNotFetchedFirstFetchSuccessfulTest.html new file mode 100644 index 00000000..c184b374 --- /dev/null +++ b/dist/http-resources/2.0.0/xref-test/de/juplo/httpresources/HttpResourceNotFetchedFirstFetchSuccessfulTest.html @@ -0,0 +1,218 @@ + + +
++1 package de.juplo.httpresources; +2 +3 import org.junit.jupiter.api.BeforeEach; +4 import org.junit.jupiter.api.DisplayName; +5 import org.junit.jupiter.api.Test; +6 import org.junit.jupiter.api.extension.ExtendWith; +7 import org.mockito.Mock; +8 import org.mockito.junit.jupiter.MockitoExtension; +9 import org.mockito.junit.jupiter.MockitoSettings; +10 import org.mockito.quality.Strictness; +11 import org.slf4j.Logger; +12 import org.slf4j.LoggerFactory; +13 import org.springframework.cache.support.NoOpCache; +14 import org.springframework.http.HttpHeaders; +15 import org.springframework.test.context.junit.jupiter.SpringExtension; +16 +17 import java.net.URI; +18 import java.time.Clock; +19 import java.time.ZoneId; +20 +21 import static de.juplo.httpresources.TestUtil.*; +22 import static org.assertj.core.api.Assertions.assertThat; +23 import static org.mockito.ArgumentMatchers.any; +24 import static org.mockito.Mockito.*; +25 +26 +27 @DisplayName(("HttpResource - Not Fetched - First Fetch: Successfull")) +28 @ExtendWith({ SpringExtension.class, MockitoExtension.class }) +29 @MockitoSettings(strictness = Strictness.LENIENT) +30 public class HttpResourceNotFetchedFirstFetchSuccessfulTest +31 { +32 private final static Logger LOG = LoggerFactory.getLogger(HttpResourceNotFetchedFirstFetchSuccessfulTest.class); +33 +34 @Mock +35 HttpResourceFetcher fetcher; +36 +37 HttpResources resources; +38 URI uri; +39 HttpResource resource; +40 +41 +42 /************** SETUP */ +43 +44 @BeforeEach +45 public void setUp() +46 { +47 Clock clock = Clock.fixed(NOW.toInstant(), ZoneId.of("GMT")); +48 resources = new HttpResources(fetcher, clock); +49 uri = URI.create("http://foo/bar"); +50 resource = new HttpResource(resources, fetcher, clock, uri); +51 +52 // Everything is possible, nothing is necessary: Only defines behavior! +53 +54 HttpHeaders headers = new HttpHeaders(); +55 headers.setContentType(MIME_TYPE_CONTENT_TYPE_HTML); +56 +57 when(fetcher.fetch(any(), any())).thenReturn(DATA_NOT_EXPIRED); +58 } +59 +60 +61 /*************** Results for calls, that trigger a fetch */ +62 +63 @Test +64 @DisplayName(("fetch() reports modifications")) +65 public void test_fetch_ReportsModifications() +66 { +67 LOG.info("<-- start of test-case"); +68 +69 assertThat(resource.fetch()).isTrue(); +70 } +71 +72 @Test +73 @DisplayName(("exists() is true")) +74 public void test_exists_IsTrue() +75 { +76 LOG.info("<-- start of test-case"); +77 +78 assertThat(resource.exists()).isTrue(); +79 } +80 +81 @Test +82 @DisplayName(("isReadable() is true")) +83 public void test_isReadable_IsTrue() +84 { +85 LOG.info("<-- start of test-case"); +86 +87 assertThat(resource.isReadable()).isTrue(); +88 } +89 +90 @Test +91 @DisplayName(("lastModified() returns the expected time")) +92 public void test_lastModified_ReturnsExpectedTime() throws Exception +93 { +94 LOG.info("<-- start of test-case"); +95 +96 assertThat(resource.lastModified()).isEqualTo(DATA_NOT_EXPIRED.lastModified); +97 } +98 +99 @Test +100 @DisplayName(("isModified() is true")) +101 public void test_isModified_IsTrue() +102 { +103 LOG.info("<-- start of test-case"); +104 +105 assertThat(resource.isModified()).isTrue(); +106 } +107 +108 @Test +109 @DisplayName(("getInputStream() returns expected content")) +110 public void test_getInputStream_TriggersFetch() throws Exception +111 { +112 LOG.info("<-- start of test-case"); +113 +114 assertThat(resource.getInputStream()).hasContent(STR_CONTENT); +115 } +116 +117 @Test +118 @DisplayName(("contentLength() returns expected content-length")) +119 public void test_contentLength_ReturnsExpectedLength() throws Exception +120 { +121 LOG.info("<-- start of test-case"); +122 +123 assertThat(resource.contentLength()).isSameAs((long)STR_CONTENT.getBytes().length); +124 } +125 +126 +127 /*************** Expected state after calls that trigger a fetch */ +128 +129 @Test +130 @DisplayName(("call to fetch() updates data")) +131 public void test_fetch_UpdatesData() +132 { +133 LOG.info("<-- start of test-case"); +134 +135 resource.fetch(); +136 +137 assertThat(resource.data).isSameAs(DATA_NOT_EXPIRED); +138 } +139 +140 @Test +141 @DisplayName(("call to exists() updates data")) +142 public void test_exists_UpdatesData() +143 { +144 LOG.info("<-- start of test-case"); +145 +146 resource.exists(); +147 +148 assertThat(resource.data).isSameAs(DATA_NOT_EXPIRED); +149 } +150 +151 @Test +152 @DisplayName(("call to isReadable() updates data")) +153 public void test_isReadable_UpdatesData() +154 { +155 LOG.info("<-- start of test-case"); +156 +157 resource.isReadable(); +158 +159 assertThat(resource.data).isSameAs(DATA_NOT_EXPIRED); +160 } +161 +162 @Test +163 @DisplayName(("call to lastModified() updates data")) +164 public void test_lastModified_UpdatesData() throws Exception +165 { +166 LOG.info("<-- start of test-case"); +167 +168 resource.lastModified(); +169 +170 assertThat(resource.data).isSameAs(DATA_NOT_EXPIRED); +171 } +172 +173 @Test +174 @DisplayName(("call to isModified() updates data")) +175 public void test_isModified_UpdatesData() +176 { +177 LOG.info("<-- start of test-case"); +178 +179 resource.isModified(); +180 +181 assertThat(resource.data).isSameAs(DATA_NOT_EXPIRED); +182 } +183 +184 @Test +185 @DisplayName(("call to getInputStream() updates data")) +186 public void test_getInputStream_UpdatesData() throws Exception +187 { +188 LOG.info("<-- start of test-case"); +189 +190 resource.getInputStream(); +191 +192 assertThat(resource.data).isSameAs(DATA_NOT_EXPIRED); +193 } +194 +195 @Test +196 @DisplayName(("call to contentLength() updates data")) +197 public void test_contentLength_UpdatesData() throws Exception +198 { +199 LOG.info("<-- start of test-case"); +200 +201 resource.contentLength(); +202 +203 assertThat(resource.data).isSameAs(DATA_NOT_EXPIRED); +204 } +205 } ++