@Override public InputStream getInputStream() throws IOException { synchronized(this) { if(freed) throw new IOException("Already freed"); } return bucket.getInputStream(); }
@Override public InputStream getInputStream() throws IOException { return new MyInputStream(underlying.getInputStream()); }
@Test public void templateIsRenderedCorrectlyForManifestElement() throws IOException { Map<String, Object> soneProperties = new HashMap<String, Object>(); soneProperties.put("id", "SoneId"); ManifestCreator manifestCreator = new ManifestCreator(core, soneProperties); long now = currentTimeMillis(); when(core.getStartupTime()).thenReturn(now); ManifestElement manifestElement = manifestCreator.createManifestElement("test.txt", "plain/text; charset=utf-8", "sone-inserter-manifest.txt"); assertThat(manifestElement.getName(), is("test.txt")); assertThat(manifestElement.getMimeTypeOverride(), is("plain/text; charset=utf-8")); String templateContent = new String(toByteArray(manifestElement.getData().getInputStream()), Charsets.UTF_8); assertThat(templateContent, containsString("Sone Version: " + SonePlugin.getPluginVersion() + "\n")); assertThat(templateContent, containsString("Core Startup: " + now + "\n")); assertThat(templateContent, containsString("Sone ID: " + "SoneId" + "\n")); }
public void testIrregularWrites() throws IOException { Random r = new Random(6032405); int length = 1024*64+1; byte[] data = new byte[length]; RandomAccessBucket bucket = (RandomAccessBucket) makeBucket(length); OutputStream os = bucket.getOutputStream(); r.nextBytes(data); for(int written=0;written<length;) { int toWrite = Math.min(length - written, 4095); os.write(data, written, toWrite); written += toWrite; } os.close(); InputStream is = bucket.getInputStream(); for(int moved=0;moved<length;) { int readBytes = Math.min(length - moved, 4095); byte[] buf = new byte[readBytes]; readBytes = is.read(buf); assertTrue(readBytes > 0); assertTrue(Arrays.equals(Arrays.copyOfRange(buf, 0, readBytes), Arrays.copyOfRange(data, moved, moved+readBytes))); moved += readBytes; } is.close(); bucket.free(); }
public void testIrregularWritesNotOverlapping() throws IOException { Random r = new Random(6032405); int length = 1024*64+1; byte[] data = new byte[length]; RandomAccessBucket bucket = (RandomAccessBucket) makeBucket(length); OutputStream os = bucket.getOutputStream(); r.nextBytes(data); for(int written=0;written<length;) { int toWrite = Math.min(length - written, 4095); os.write(data, written, toWrite); written += toWrite; } os.close(); InputStream is = bucket.getInputStream(); for(int moved=0;moved<length;) { int readBytes = Math.min(length - moved, 4093); // Co-prime with 4095 byte[] buf = new byte[readBytes]; readBytes = is.read(buf); assertTrue(readBytes > 0); assertTrue(Arrays.equals(Arrays.copyOfRange(buf, 0, readBytes), Arrays.copyOfRange(data, moved, moved+readBytes))); moved += readBytes; } is.close(); bucket.free(); }
@Test public void insertingAnImage() throws SoneException, InsertException, IOException { TemporaryImage temporaryImage = new TemporaryImage("image-id"); temporaryImage.setMimeType("image/png"); byte[] imageData = new byte[] { 1, 2, 3, 4 }; temporaryImage.setImageData(imageData); Image image = new ImageImpl("image-id"); InsertToken insertToken = freenetInterface.new InsertToken(image); InsertContext insertContext = mock(InsertContext.class); when(highLevelSimpleClient.getInsertContext(anyBoolean())).thenReturn(insertContext); ClientPutter clientPutter = mock(ClientPutter.class); ArgumentCaptor<InsertBlock> insertBlockCaptor = forClass(InsertBlock.class); when(highLevelSimpleClient.insert(insertBlockCaptor.capture(), eq((String) null), eq(false), eq(insertContext), eq(insertToken), anyShort())).thenReturn(clientPutter); freenetInterface.insertImage(temporaryImage, image, insertToken); assertThat(insertBlockCaptor.getValue().getData().getInputStream(), delivers(new byte[] { 1, 2, 3, 4 })); assertThat(TestUtil.<ClientPutter>getPrivateField(insertToken, "clientPutter"), is(clientPutter)); verify(eventBus).post(any(ImageInsertStartedEvent.class)); }
InputStream is = bucket.getInputStream(); for(int moved=0;moved<length;) { int readBytes = Math.min(length - moved, 4095);
is = data.getInputStream(); SHA256.hash(is, md); } catch (IOException e) {
MultiHashInputStream hasher = null; try { is = origData.getInputStream(); result = bucketFactory.makeBucket(-1); os = result.getOutputStream();