Merge branch 'last-working' into next
[Sone.git] / src / test / java / net / pterodactylus / sone / core / UpdateCheckerTest.java
index fb2b9f2..a5e3b2a 100644 (file)
@@ -20,13 +20,13 @@ import java.io.InputStream;
 import net.pterodactylus.sone.core.FreenetInterface.Callback;
 import net.pterodactylus.sone.core.FreenetInterface.Fetched;
 import net.pterodactylus.sone.core.event.UpdateFoundEvent;
-import net.pterodactylus.sone.freenet.StringBucket;
 import net.pterodactylus.util.version.Version;
 
 import freenet.client.ClientMetadata;
 import freenet.client.FetchResult;
 import freenet.keys.FreenetURI;
 import freenet.support.api.Bucket;
+import freenet.support.io.ArrayBucket;
 
 import com.google.common.eventbus.EventBus;
 import org.junit.Before;
@@ -93,13 +93,14 @@ public class UpdateCheckerTest {
                assertThat(updateFoundEvent.getValue().releaseTime(), is(11865368297000L));
                assertThat(updateChecker.getLatestVersion(), is(new Version(99, 0, 0)));
                assertThat(updateChecker.getLatestVersionDate(), is(11865368297000L));
+               assertThat(updateChecker.hasLatestVersion(), is(true));
        }
 
        private FetchResult createFutureFetchResult() {
                ClientMetadata clientMetadata = new ClientMetadata("application/xml");
-               Bucket fetched = new StringBucket("# MapConfigurationBackendVersion=1\n" +
+               Bucket fetched = new ArrayBucket(("# MapConfigurationBackendVersion=1\n" +
                                "CurrentVersion/Version: 99.0.0\n" +
-                               "CurrentVersion/ReleaseTime: 11865368297000");
+                               "CurrentVersion/ReleaseTime: 11865368297000").getBytes());
                return new FetchResult(clientMetadata, fetched);
        }
 
@@ -123,9 +124,9 @@ public class UpdateCheckerTest {
 
        private FetchResult createPastFetchResult() {
                ClientMetadata clientMetadata = new ClientMetadata("application/xml");
-               Bucket fetched = new StringBucket("# MapConfigurationBackendVersion=1\n" +
+               Bucket fetched = new ArrayBucket(("# MapConfigurationBackendVersion=1\n" +
                                "CurrentVersion/Version: 0.2\n" +
-                               "CurrentVersion/ReleaseTime: 1289417883000");
+                               "CurrentVersion/ReleaseTime: 1289417883000").getBytes());
                return new FetchResult(clientMetadata, fetched);
        }
 
@@ -139,7 +140,7 @@ public class UpdateCheckerTest {
 
        private FetchResult createInvalidFetchResult() {
                ClientMetadata clientMetadata = new ClientMetadata("text/plain");
-               Bucket fetched = new StringBucket("Some other data.");
+               Bucket fetched = new ArrayBucket("Some other data.".getBytes());
                return new FetchResult(clientMetadata, fetched);
        }
 
@@ -168,7 +169,7 @@ public class UpdateCheckerTest {
 
        private FetchResult createBrokenBucketFetchResult() {
                ClientMetadata clientMetadata = new ClientMetadata("text/plain");
-               Bucket fetched = new StringBucket("Some other data.") {
+               Bucket fetched = new ArrayBucket("Some other data.".getBytes()) {
                        @Override
                        public InputStream getInputStream() {
                                try {
@@ -192,9 +193,40 @@ public class UpdateCheckerTest {
 
        private FetchResult createInvalidTimeFetchResult() {
                ClientMetadata clientMetadata = new ClientMetadata("application/xml");
-               Bucket fetched = new StringBucket("# MapConfigurationBackendVersion=1\n" +
+               Bucket fetched = new ArrayBucket(("# MapConfigurationBackendVersion=1\n" +
                                "CurrentVersion/Version: 0.2\n" +
-                               "CurrentVersion/ReleaseTime: invalid");
+                               "CurrentVersion/ReleaseTime: invalid").getBytes());
+               return new FetchResult(clientMetadata, fetched);
+       }
+
+       @Test
+       public void invalidPropertiesDoesNotCauseAnUpdateToBeFound() {
+               setupFetchResult(createMissingTimeFetchResult());
+               setupCallbackWithEdition(MAX_VALUE, true, false);
+               verifyAFreenetUriIsFetched();
+               verifyNoUpdateFoundEventIsFired();
+       }
+
+       private FetchResult createMissingTimeFetchResult() {
+               ClientMetadata clientMetadata = new ClientMetadata("application/xml");
+               Bucket fetched = new ArrayBucket(("# MapConfigurationBackendVersion=1\n" +
+                               "CurrentVersion/Version: 0.2\n").getBytes());
+               return new FetchResult(clientMetadata, fetched);
+       }
+
+       @Test
+       public void invalidVersionDoesNotCauseAnUpdateToBeFound() {
+               setupFetchResult(createInvalidVersionFetchResult());
+               setupCallbackWithEdition(MAX_VALUE, true, false);
+               verifyAFreenetUriIsFetched();
+               verifyNoUpdateFoundEventIsFired();
+       }
+
+       private FetchResult createInvalidVersionFetchResult() {
+               ClientMetadata clientMetadata = new ClientMetadata("application/xml");
+               Bucket fetched = new ArrayBucket(("# MapConfigurationBackendVersion=1\n" +
+                               "CurrentVersion/Version: foo\n" +
+                               "CurrentVersion/ReleaseTime: 1289417883000").getBytes());
                return new FetchResult(clientMetadata, fetched);
        }