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 @@ + + + +/home/kai/Dokumente/yourshouter/http-resources/src/test/java/de/juplo/httpresources/HttpResourceNotFetchedFirstFetchSuccessfulTest.java xref + + + +
View Javadoc
+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 }
+
+
+ + +