X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Ffcp%2FFcpInterfaceTest.java;h=78b2591ce573dc3e7510cca32589fa48000e9f06;hb=d4b256f5b8d0f89795d6b86c0ae2b0d57904782c;hp=6648d12d15e3028d8ba6eebb2fd1170cbc2149d3;hpb=726661d4d58c5707b411d316c05b8901b1434d8b;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 6648d12..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,8 @@ 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; import static org.hamcrest.MatcherAssert.assertThat; @@ -29,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; @@ -43,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; /** @@ -59,8 +57,14 @@ public class FcpInterfaceTest { private final FcpInterface fcpInterface = new FcpInterface(core); private final CapturingPluginReplySender pluginReplySender = new CapturingPluginReplySender(); + public FcpInterfaceTest() { + 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"); @@ -68,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"); @@ -75,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"); @@ -82,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(); @@ -90,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); @@ -99,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); @@ -108,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(); @@ -118,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(); @@ -128,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); @@ -137,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(); @@ -147,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(); @@ -157,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); @@ -166,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(); @@ -176,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(); @@ -192,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); @@ -201,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(); @@ -211,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(); @@ -221,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); @@ -230,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(); @@ -240,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(); @@ -250,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); @@ -259,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(); @@ -269,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(); @@ -279,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); @@ -288,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); @@ -307,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); @@ -317,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());