diff options
author | jonmv <venstad@gmail.com> | 2022-11-07 12:44:46 +0100 |
---|---|---|
committer | jonmv <venstad@gmail.com> | 2022-11-07 12:44:46 +0100 |
commit | a50efd62aa586b836feb1f394b38c384ab260851 (patch) | |
tree | 9b4395e1a1235acb2c0b4bcf616dfcbf583f107b /controller-server/src/test/java/com | |
parent | a48b3b9e2cd688459ddf5143b303f9f929d667c2 (diff) |
Copy more state for separate streams ...
Diffstat (limited to 'controller-server/src/test/java/com')
-rw-r--r-- | controller-server/src/test/java/com/yahoo/vespa/hosted/controller/application/pkg/ApplicationPackageTest.java | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/application/pkg/ApplicationPackageTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/application/pkg/ApplicationPackageTest.java index 71ce291df36..ab8f696492a 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/application/pkg/ApplicationPackageTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/application/pkg/ApplicationPackageTest.java @@ -22,6 +22,7 @@ import java.nio.file.Path; import java.security.KeyPair; import java.security.cert.X509Certificate; import java.time.Instant; +import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.Optional; @@ -190,7 +191,7 @@ public class ApplicationPackageTest { assertEquals(List.of(), new ApplicationPackage(zip).trustedCertificates()); for (int i = 0; i < certificates.size(); i++) { InputStream in = new ByteArrayInputStream(zip); - zip = new ApplicationPackageStream(() -> in, __ -> false, addingCertificate(Optional.of(certificates.get(i)))).zipStream().readAllBytes(); + zip = new ApplicationPackageStream(() -> in, () -> __ -> false, addingCertificate(Optional.of(certificates.get(i)))).zipStream().readAllBytes(); assertEquals(certificates.subList(0, i + 1), new ApplicationPackage(zip).trustedCertificates()); } } @@ -232,8 +233,12 @@ public class ApplicationPackageTest { "unused1.xml", in -> null, "unused2.xml", __ -> new ByteArrayInputStream(jdiscXml.getBytes(UTF_8))); Predicate<String> truncation = name -> name.endsWith(".xml"); - ApplicationPackageStream modifier = new ApplicationPackageStream(() -> new ByteArrayInputStream(zip), truncation, replacements); + ApplicationPackageStream modifier = new ApplicationPackageStream(() -> new ByteArrayInputStream(Arrays.copyOf(zip, zip.length)), () -> truncation, replacements); out.reset(); + + InputStream partiallyRead = modifier.zipStream(); + assertEquals(15, partiallyRead.readNBytes(15).length); + modifier.zipStream().transferTo(out); assertEquals(Map.of("deployment.xml", deploymentXml + "\n\n", @@ -262,6 +267,19 @@ public class ApplicationPackageTest { "content/nodes.xml", nodesXml, "gurba", "gurba"))).metaDataZip()), unzip(modifier.truncatedPackage().metaDataZip())); + + assertArrayEquals(modifier.zipStream().readAllBytes(), + modifier.zipStream().readAllBytes()); + + ByteArrayOutputStream byteAtATime = new ByteArrayOutputStream(); + try (InputStream stream = modifier.zipStream()) { + for (int b; (b = stream.read()) != -1; ) byteAtATime.write(b); + assertArrayEquals(modifier.zipStream().readAllBytes(), + byteAtATime.toByteArray()); + } + + assertEquals(modifier.zipStream().readAllBytes().length, + 15 + partiallyRead.readAllBytes().length); } } |