X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fnet%2Fpterodactylus%2Ffcp%2Fquelaton%2FDefaultFcpClientTest.java;h=f95f9b286e430d21f68159a0d11531b269ad28a5;hb=a395e37c0d5db8f766a128130f32ec13c33912e8;hp=428ee045a1652030a87f632c8f23f5bcbfb44547;hpb=a09c7dc8182d6238b8e635d0da96ed19b3ca87bd;p=jFCPlib.git diff --git a/src/test/java/net/pterodactylus/fcp/quelaton/DefaultFcpClientTest.java b/src/test/java/net/pterodactylus/fcp/quelaton/DefaultFcpClientTest.java index 428ee04..f95f9b2 100644 --- a/src/test/java/net/pterodactylus/fcp/quelaton/DefaultFcpClientTest.java +++ b/src/test/java/net/pterodactylus/fcp/quelaton/DefaultFcpClientTest.java @@ -115,67 +115,10 @@ public class DefaultFcpClientTest { .orElse(""); } - @Test - public void defaultFcpClientReusesConnection() throws InterruptedException, ExecutionException, IOException { - Future keyPair = fcpClient.generateKeypair().execute(); - connectNode(); - List lines = fcpServer.collectUntil(is("EndMessage")); - String identifier = extractIdentifier(lines); - fcpServer.writeLine( - "SSKKeypair", - "InsertURI=" + INSERT_URI + "", - "RequestURI=" + REQUEST_URI + "", - "Identifier=" + identifier, - "EndMessage" - ); - keyPair.get(); - keyPair = fcpClient.generateKeypair().execute(); - lines = fcpServer.collectUntil(is("EndMessage")); - identifier = extractIdentifier(lines); - fcpServer.writeLine( - "SSKKeypair", - "InsertURI=" + INSERT_URI + "", - "RequestURI=" + REQUEST_URI + "", - "Identifier=" + identifier, - "EndMessage" - ); - keyPair.get(); - } - - @Test - public void defaultFcpClientCanReconnectAfterConnectionHasBeenClosed() - throws InterruptedException, ExecutionException, IOException { - Future keyPair = fcpClient.generateKeypair().execute(); - connectNode(); - fcpServer.collectUntil(is("EndMessage")); - fcpServer.close(); - try { - keyPair.get(); - Assert.fail(); - } catch (ExecutionException e) { - } - keyPair = fcpClient.generateKeypair().execute(); - connectNode(); - List lines = fcpServer.collectUntil(is("EndMessage")); - String identifier = extractIdentifier(lines); - fcpServer.writeLine( - "SSKKeypair", - "InsertURI=" + INSERT_URI + "", - "RequestURI=" + REQUEST_URI + "", - "Identifier=" + identifier, - "EndMessage" - ); - keyPair.get(); - } - private Matcher> matchesFcpMessage(String name, String... requiredLines) { return matchesFcpMessageWithTerminator(name, "EndMessage", requiredLines); } - private Matcher> matchesDataMessage(String name, String... requiredLines) { - return matchesFcpMessageWithTerminator(name, "Data", requiredLines); - } - private Matcher> hasHead(String firstElement) { return new TypeSafeDiagnosingMatcher>() { @Override @@ -914,39 +857,74 @@ public class DefaultFcpClientTest { assertThat(lines, requestMatcher.get()); } - public class Connections { + public class ConnectionsAndKeyPairs { - @Test(expected = ExecutionException.class) - public void throwsExceptionOnFailure() throws IOException, ExecutionException, InterruptedException { - Future keyPairFuture = fcpClient.generateKeypair().execute(); - connectAndAssert(() -> matchesFcpMessage("GenerateSSK")); - fcpServer.writeLine( - "CloseConnectionDuplicateClientName", - "EndMessage" - ); - keyPairFuture.get(); - } + public class Connections { + + @Test(expected = ExecutionException.class) + public void throwsExceptionOnFailure() throws IOException, ExecutionException, InterruptedException { + Future keyPairFuture = fcpClient.generateKeypair().execute(); + connectAndAssert(() -> matchesFcpMessage("GenerateSSK")); + fcpServer.writeLine( + "CloseConnectionDuplicateClientName", + "EndMessage" + ); + keyPairFuture.get(); + } + + @Test(expected = ExecutionException.class) + public void throwsExceptionIfConnectionIsClosed() throws IOException, ExecutionException, InterruptedException { + Future keyPairFuture = fcpClient.generateKeypair().execute(); + connectAndAssert(() -> matchesFcpMessage("GenerateSSK")); + fcpServer.close(); + keyPairFuture.get(); + } + + @Test + public void connectionIsReused() throws InterruptedException, ExecutionException, IOException { + Future keyPair = fcpClient.generateKeypair().execute(); + connectAndAssert(() -> matchesFcpMessage("GenerateSSK")); + replyWithKeyPair(); + keyPair.get(); + keyPair = fcpClient.generateKeypair().execute(); + readMessage(() -> matchesFcpMessage("GenerateSSK")); + identifier = extractIdentifier(lines); + replyWithKeyPair(); + keyPair.get(); + } + + @Test + public void defaultFcpClientCanReconnectAfterConnectionHasBeenClosed() + throws InterruptedException, ExecutionException, IOException { + Future keyPair = fcpClient.generateKeypair().execute(); + connectAndAssert(() -> matchesFcpMessage("GenerateSSK")); + fcpServer.close(); + try { + keyPair.get(); + Assert.fail(); + } catch (ExecutionException e) { + } + keyPair = fcpClient.generateKeypair().execute(); + connectAndAssert(() -> matchesFcpMessage("GenerateSSK")); + replyWithKeyPair(); + keyPair.get(); + } - @Test(expected = ExecutionException.class) - public void throwsExceptionIfConnectionIsClosed() throws IOException, ExecutionException, InterruptedException { - Future keyPairFuture = fcpClient.generateKeypair().execute(); - connectAndAssert(() -> matchesFcpMessage("GenerateSSK")); - fcpServer.close(); - keyPairFuture.get(); } - } + public class GenerateKeyPair { - public class GenerateKeyPair { + @Test + public void defaultFcpClientCanGenerateKeypair() + throws ExecutionException, InterruptedException, IOException { + Future keyPairFuture = fcpClient.generateKeypair().execute(); + connectAndAssert(() -> matchesFcpMessage("GenerateSSK")); + replyWithKeyPair(); + FcpKeyPair keyPair = keyPairFuture.get(); + assertThat(keyPair.getPublicKey(), is(REQUEST_URI)); + assertThat(keyPair.getPrivateKey(), is(INSERT_URI)); + } - @Test - public void defaultFcpClientCanGenerateKeypair() throws ExecutionException, InterruptedException, IOException { - Future keyPairFuture = fcpClient.generateKeypair().execute(); - connectAndAssert(() -> matchesFcpMessage("GenerateSSK")); - replyWithKeyPair(); - FcpKeyPair keyPair = keyPairFuture.get(); - assertThat(keyPair.getPublicKey(), is(REQUEST_URI)); - assertThat(keyPair.getPrivateKey(), is(INSERT_URI)); } private void replyWithKeyPair() throws IOException {