X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Ffcp%2FFcpInterfaceTest.java;h=78b2591ce573dc3e7510cca32589fa48000e9f06;hb=8a6efbfb639dea6c707dfe26aafcb6c5029dda9a;hp=8fd09c1309ad24efab9e8323d56d97f58f4ca9b9;hpb=9f263aeceac0e0da5b140ea61858040128753de0;p=Sone.git diff --git a/src/test/java/net/pterodactylus/sone/fcp/FcpInterfaceTest.java b/src/test/java/net/pterodactylus/sone/fcp/FcpInterfaceTest.java index 8fd09c1..78b2591 100644 --- a/src/test/java/net/pterodactylus/sone/fcp/FcpInterfaceTest.java +++ b/src/test/java/net/pterodactylus/sone/fcp/FcpInterfaceTest.java @@ -20,6 +20,7 @@ package net.pterodactylus.sone.fcp; import static freenet.pluginmanager.FredPluginFCP.ACCESS_DIRECT; import static freenet.pluginmanager.FredPluginFCP.ACCESS_FCP_FULL; import static freenet.pluginmanager.FredPluginFCP.ACCESS_FCP_RESTRICTED; +import static net.pterodactylus.sone.Matchers.delivers; import static net.pterodactylus.sone.fcp.FcpInterface.FullAccessRequired.ALWAYS; import static net.pterodactylus.sone.fcp.FcpInterface.FullAccessRequired.NO; import static net.pterodactylus.sone.fcp.FcpInterface.FullAccessRequired.WRITING; @@ -30,7 +31,6 @@ import static org.hamcrest.Matchers.notNullValue; import static org.mockito.Mockito.mock; import java.io.IOException; -import java.io.InputStream; import java.util.List; import net.pterodactylus.sone.core.Core; @@ -44,9 +44,6 @@ import freenet.support.api.Bucket; import freenet.support.io.ArrayBucket; import com.google.common.collect.Lists; -import org.hamcrest.Description; -import org.hamcrest.Matcher; -import org.hamcrest.TypeSafeMatcher; import org.junit.Test; /** @@ -61,12 +58,13 @@ public class FcpInterfaceTest { private final CapturingPluginReplySender pluginReplySender = new CapturingPluginReplySender(); public FcpInterfaceTest() { - fcpInterface.setActive(false); + fcpInterface.setActive(true); fcpInterface.setFullAccessRequired(ALWAYS); } @Test public void testThatAnInactiveFcpInterfaceReturnsAnErrorForDirectAccess() throws PluginNotFoundException { + fcpInterface.setActive(false); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().get(); fcpInterface.handle(pluginReplySender, fieldSet, null, ACCESS_DIRECT); verifyErrorWithCode("400"); @@ -74,6 +72,7 @@ public class FcpInterfaceTest { @Test public void testThatAnInactiveFcpInterfaceReturnsAnErrorForRestrictedFcpAccess() throws PluginNotFoundException { + fcpInterface.setActive(false); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().get(); fcpInterface.handle(pluginReplySender, fieldSet, null, ACCESS_FCP_RESTRICTED); verifyErrorWithCode("400"); @@ -81,6 +80,7 @@ public class FcpInterfaceTest { @Test public void testThatAnInactiveFcpInterfaceReturnsAnErrorForFullFcpAccess() throws PluginNotFoundException { + fcpInterface.setActive(false); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().get(); fcpInterface.handle(pluginReplySender, fieldSet, null, ACCESS_FCP_FULL); verifyErrorWithCode("400"); @@ -88,7 +88,6 @@ public class FcpInterfaceTest { @Test public void testThatAnActiveFcpInterfaceReturnsAnErrorForAnUnknownMessage() { - fcpInterface.setActive(true); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().put("Message", "Foo").get(); fcpInterface.handle(pluginReplySender, fieldSet, null, ACCESS_DIRECT); verifyError(); @@ -96,7 +95,6 @@ public class FcpInterfaceTest { @Test public void testThatAnActiveFcpInterfaceReturnsAnErrorForAMessageWithoutIdentifier() { - fcpInterface.setActive(true); fcpInterface.addCommand("ReadOnlyPing", new ReadOnlyPing()); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().put("Message", "ReadOnlyPing").get(); fcpInterface.handle(pluginReplySender, fieldSet, null, ACCESS_DIRECT); @@ -105,7 +103,6 @@ public class FcpInterfaceTest { @Test public void testThatAnActiveFcpInterfaceRequiringFullAccessAllowsDirectFcpAccessForReadOnlyCommand() { - fcpInterface.setActive(true); fcpInterface.addCommand("ReadOnlyPing", new ReadOnlyPing()); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().put("Message", "ReadOnlyPing").put("Identifier", "foo").get(); fcpInterface.handle(pluginReplySender, fieldSet, null, ACCESS_DIRECT); @@ -114,7 +111,6 @@ public class FcpInterfaceTest { @Test public void testThatAnActiveFcpInterfaceRequiringFullAccessForWritesAllowsDirectFcpAccessForReadOnlyCommand() { - fcpInterface.setActive(true); fcpInterface.setFullAccessRequired(WRITING); fcpInterface.addCommand("ReadOnlyPing", new ReadOnlyPing()); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().put("Message", "ReadOnlyPing").put("Identifier", "foo").get(); @@ -124,7 +120,6 @@ public class FcpInterfaceTest { @Test public void testThatAnActiveFcpInterfaceNotRequiringFullAccessAllowsDirectFcpAccessForReadOnlyCommand() { - fcpInterface.setActive(true); fcpInterface.setFullAccessRequired(NO); fcpInterface.addCommand("ReadOnlyPing", new ReadOnlyPing()); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().put("Message", "ReadOnlyPing").put("Identifier", "foo").get(); @@ -134,7 +129,6 @@ public class FcpInterfaceTest { @Test public void testThatAnActiveFcpInterfaceRequiringFullAccessAllowsDirectFcpAccessForReadWriteCommand() { - fcpInterface.setActive(true); fcpInterface.addCommand("ReadWritePing", new ReadWritePing()); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().put("Message", "ReadWritePing").put("Identifier", "foo").get(); fcpInterface.handle(pluginReplySender, fieldSet, null, ACCESS_DIRECT); @@ -143,7 +137,6 @@ public class FcpInterfaceTest { @Test public void testThatAnActiveFcpInterfaceRequiringFullAccessForWritesAllowsDirectFcpAccessForReadWriteCommand() { - fcpInterface.setActive(true); fcpInterface.setFullAccessRequired(WRITING); fcpInterface.addCommand("ReadWritePing", new ReadWritePing()); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().put("Message", "ReadWritePing").put("Identifier", "foo").get(); @@ -153,7 +146,6 @@ public class FcpInterfaceTest { @Test public void testThatAnActiveFcpInterfaceNotRequiringFullAccessAllowsDirectFcpAccessForReadWriteCommand() { - fcpInterface.setActive(true); fcpInterface.setFullAccessRequired(NO); fcpInterface.addCommand("ReadWritePing", new ReadWritePing()); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().put("Message", "ReadWritePing").put("Identifier", "foo").get(); @@ -163,7 +155,6 @@ public class FcpInterfaceTest { @Test public void testThatAnActiveFcpInterfaceRequiringFullAccessAllowsFullFcpAccessForReadOnlyCommand() { - fcpInterface.setActive(true); fcpInterface.addCommand("ReadOnlyPing", new ReadOnlyPing()); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().put("Message", "ReadOnlyPing").put("Identifier", "foo").get(); fcpInterface.handle(pluginReplySender, fieldSet, null, ACCESS_FCP_FULL); @@ -172,7 +163,6 @@ public class FcpInterfaceTest { @Test public void testThatAnActiveFcpInterfaceRequiringFullAccessForWritesAllowsFullFcpAccessForReadOnlyCommand() { - fcpInterface.setActive(true); fcpInterface.setFullAccessRequired(WRITING); fcpInterface.addCommand("ReadOnlyPing", new ReadOnlyPing()); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().put("Message", "ReadOnlyPing").put("Identifier", "foo").get(); @@ -182,7 +172,6 @@ public class FcpInterfaceTest { @Test public void testThatAnActiveFcpInterfaceNotRequiringFullAccessAllowsFullFcpAccessForReadOnlyCommand() { - fcpInterface.setActive(true); fcpInterface.setFullAccessRequired(NO); fcpInterface.addCommand("ReadOnlyPing", new ReadOnlyPing()); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().put("Message", "ReadOnlyPing").put("Identifier", "foo").get(); @@ -198,7 +187,6 @@ public class FcpInterfaceTest { @Test public void testThatAnActiveFcpInterfaceRequiringFullAccessAllowsFullFcpAccessForReadWriteCommand() { - fcpInterface.setActive(true); fcpInterface.addCommand("ReadWritePing", new ReadWritePing()); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().put("Message", "ReadWritePing").put("Identifier", "foo").get(); fcpInterface.handle(pluginReplySender, fieldSet, null, ACCESS_FCP_FULL); @@ -207,7 +195,6 @@ public class FcpInterfaceTest { @Test public void testThatAnActiveFcpInterfaceRequiringFullAccessForWritesAllowsFullFcpAccessForReadWriteCommand() { - fcpInterface.setActive(true); fcpInterface.setFullAccessRequired(WRITING); fcpInterface.addCommand("ReadWritePing", new ReadWritePing()); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().put("Message", "ReadWritePing").put("Identifier", "foo").get(); @@ -217,7 +204,6 @@ public class FcpInterfaceTest { @Test public void testThatAnActiveFcpInterfaceNotRequiringFullAccessAllowsFullFcpAccessForReadWriteCommand() { - fcpInterface.setActive(true); fcpInterface.setFullAccessRequired(NO); fcpInterface.addCommand("ReadWritePing", new ReadWritePing()); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().put("Message", "ReadWritePing").put("Identifier", "foo").get(); @@ -227,7 +213,6 @@ public class FcpInterfaceTest { @Test public void testThatAnActiveFcpInterfaceRequiringFullAccessDoesNotAllowRestrictedFcpAccessForReadOnlyCommand() { - fcpInterface.setActive(true); fcpInterface.addCommand("ReadOnlyPing", new ReadOnlyPing()); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().put("Message", "ReadOnlyPing").put("Identifier", "foo").get(); fcpInterface.handle(pluginReplySender, fieldSet, null, ACCESS_FCP_RESTRICTED); @@ -236,7 +221,6 @@ public class FcpInterfaceTest { @Test public void testThatAnActiveFcpInterfaceRequiringFullAccessForWritesAllowsRestrictedFcpAccessForReadOnlyCommand() { - fcpInterface.setActive(true); fcpInterface.setFullAccessRequired(WRITING); fcpInterface.addCommand("ReadOnlyPing", new ReadOnlyPing()); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().put("Message", "ReadOnlyPing").put("Identifier", "foo").get(); @@ -246,7 +230,6 @@ public class FcpInterfaceTest { @Test public void testThatAnActiveFcpInterfaceNotRequiringFullAccessAllowsRestrictedFcpAccessForReadOnlyCommand() { - fcpInterface.setActive(true); fcpInterface.setFullAccessRequired(NO); fcpInterface.addCommand("ReadOnlyPing", new ReadOnlyPing()); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().put("Message", "ReadOnlyPing").put("Identifier", "foo").get(); @@ -256,7 +239,6 @@ public class FcpInterfaceTest { @Test public void testThatAnActiveFcpInterfaceRequiringFullAccessDoesNotAllowRestrictedFcpAccessForReadWriteCommand() { - fcpInterface.setActive(true); fcpInterface.addCommand("ReadWritePing", new ReadWritePing()); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().put("Message", "ReadWritePing").put("Identifier", "foo").get(); fcpInterface.handle(pluginReplySender, fieldSet, null, ACCESS_FCP_RESTRICTED); @@ -265,7 +247,6 @@ public class FcpInterfaceTest { @Test public void testThatAnActiveFcpInterfaceRequiringFullAccessForWritesDoesNotAllowRestrictedFcpAccessForReadWriteCommand() { - fcpInterface.setActive(true); fcpInterface.setFullAccessRequired(WRITING); fcpInterface.addCommand("ReadWritePing", new ReadWritePing()); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().put("Message", "ReadWritePing").put("Identifier", "foo").get(); @@ -275,7 +256,6 @@ public class FcpInterfaceTest { @Test public void testThatAnActiveFcpInterfaceNotRequiringFullAccessAllowsRestrictedFcpAccessForReadWriteCommand() { - fcpInterface.setActive(true); fcpInterface.setFullAccessRequired(NO); fcpInterface.addCommand("ReadWritePing", new ReadWritePing()); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().put("Message", "ReadWritePing").put("Identifier", "foo").get(); @@ -285,7 +265,6 @@ public class FcpInterfaceTest { @Test public void testThatAFaultyCommandResultsInAnError() { - fcpInterface.setActive(true); fcpInterface.addCommand("Faulty", new FaultyCommand()); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().put("Message", "Faulty").put("Identifier", "foo").get(); fcpInterface.handle(pluginReplySender, fieldSet, null, ACCESS_FCP_FULL); @@ -294,14 +273,12 @@ public class FcpInterfaceTest { @Test public void testThatAFaultyPluginReplySenderIsHandled() { - fcpInterface.setActive(true); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().put("Message", "Faulty").put("Identifier", "foo").get(); fcpInterface.handle(new FaultyPluginReplySender(), fieldSet, null, ACCESS_FCP_FULL); } @Test public void testThatACommandWithDataIsHandledCorrectly() throws IOException { - fcpInterface.setActive(true); fcpInterface.addCommand("CommandWithData", new CommandWithData()); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().put("Message", "CommandWithData").put("Identifier", "foo").get(); fcpInterface.handle(pluginReplySender, fieldSet, null, ACCESS_FCP_FULL); @@ -313,7 +290,6 @@ public class FcpInterfaceTest { @Test public void testThatACommandWithABucketIsHandledCorrectly() throws IOException { - fcpInterface.setActive(true); fcpInterface.addCommand("CommandWithBucket", new CommandWithBucket()); SimpleFieldSet fieldSet = new SimpleFieldSetBuilder().put("Message", "CommandWithBucket").put("Identifier", "foo").get(); fcpInterface.handle(pluginReplySender, fieldSet, null, ACCESS_FCP_FULL); @@ -323,41 +299,6 @@ public class FcpInterfaceTest { assertThat(pluginReplySender.results.get(0).bucket.getInputStream(), delivers(new byte[] { 4, 5, 6 })); } - private Matcher delivers(final byte[] data) { - return new TypeSafeMatcher() { - byte[] readData = new byte[data.length]; - - @Override - protected boolean matchesSafely(InputStream inputStream) { - int offset = 0; - try { - while (true) { - int r = inputStream.read(); - if (r == -1) { - return offset == data.length; - } - readData[offset] = (byte) r; - if (data[offset++] != r) { - return false; - } - } - } catch (IOException ioe1) { - return false; - } - } - - @Override - public void describeTo(Description description) { - description.appendValue(data); - } - - @Override - protected void describeMismatchSafely(InputStream item, Description mismatchDescription) { - mismatchDescription.appendValue(readData); - } - }; - } - private void verifyError() { assertThat(pluginReplySender.results, hasSize(1)); assertThat(pluginReplySender.results.get(0).fieldSet, notNullValue());