Send generated URIs on ClientPutDiskDir to registered consumers
[jFCPlib.git] / src / test / java / net / pterodactylus / fcp / quelaton / DefaultFcpClientTest.java
index 77573c0..0a39451 100644 (file)
@@ -1706,6 +1706,18 @@ public class DefaultFcpClientTest {
                                ));
                        }
 
+                       @Test
+                       public void generatedUriIsSentToConsumerCorrectly() throws InterruptedException, ExecutionException, IOException {
+                               List<String> generatedKeys = new ArrayList<>();
+                               Future<Optional<Key>> key = fcpClient.clientPutDiskDir().onKeyGenerated(generatedKeys::add)
+                                       .fromDirectory(new File("")).uri("CHK@").execute();
+                               connectAndAssert(this::matchesClientPutDiskDir);
+                               replyWithGeneratedUri();
+                               replyWithPutSuccessful(identifier);
+                               assertThat(key.get().get().getKey(), is("KSK@foo.txt"));
+                               assertThat(generatedKeys, contains("KSK@foo.txt"));
+                       }
+
                        private Matcher<List<String>> matchesClientPutDiskDir(String... additionalLines) {
                                List<String> lines = new ArrayList<>(Arrays.asList("Identifier=" + identifier, "URI=CHK@", "Filename=" + new File("").getPath()));
                                Arrays.asList(additionalLines).forEach(lines::add);