private static void checkProperties(TransferEvent event) { assertNotNull("resource is null for type: " + event.getType(), event.getResource()); assertNotNull("request type is null for type: " + event.getType(), event.getRequestType()); assertNotNull("type is null for type: " + event.getType(), event.getType()); if (PROGRESSED.equals(event.getType())) { assertNotNull("data buffer is null for type: " + event.getType(), event.getDataBuffer()); assertTrue("transferred byte is not set/not positive for type: " + event.getType(), event.getTransferredBytes() > -1); } else if (SUCCEEDED.equals(event.getType())) { assertTrue("transferred byte is not set/not positive for type: " + event.getType(), event.getTransferredBytes() > -1); } }
@Override public String toString() { return getRequestType() + " " + getType() + " " + getResource(); }
@Override public String toString() { return getRequestType() + " " + getType() + " " + getResource(); }
private static void checkEvents(Queue<TransferEvent> events, long expectedBytes) { TransferEvent currentEvent; while ((currentEvent = events.poll()) != null) { EventType currentType = currentEvent.getType(); if (TransferEvent.EventType.SUCCEEDED.equals(currentType)) { assertEquals("Should only have received " + expectedBytes + " bytes", expectedBytes, currentEvent.getTransferredBytes()); } } }
private static void checkFailedEvents(Queue<TransferEvent> events, Class<? extends Throwable> expectedError) { if (expectedError == null) { expectedError = Throwable.class; } TransferEvent currentEvent = events.poll(); String msg = "initiate event is missing"; assertNotNull(msg, currentEvent); assertEquals(msg, INITIATED, currentEvent.getType()); checkProperties(currentEvent); currentEvent = events.poll(); msg = "fail event is missing"; assertNotNull(msg, currentEvent); assertEquals(msg, TransferEvent.EventType.FAILED, currentEvent.getType()); checkProperties(currentEvent); assertNotNull("exception is missing for fail event", currentEvent.getException()); Exception exception = currentEvent.getException(); assertTrue("exception is of wrong type, should be instance of " + expectedError + " but was " + exception.getClass(), expectedError.isAssignableFrom(exception.getClass())); // all events consumed assertEquals("too many events left: " + events.toString(), 0, events.size()); }
String msg = "initiate event is missing"; assertNotNull(msg, currentEvent); assertEquals(msg, INITIATED, currentEvent.getType()); checkProperties(currentEvent); msg = "start event is missing"; assertNotNull(msg, currentEvent); assertEquals(msg, TransferEvent.EventType.STARTED, currentEvent.getType()); assertEquals("bad content length", expectedBytes, currentEvent.getResource().getContentLength()); checkProperties(currentEvent); long transferredBytes = 0; while ((currentEvent = events.poll()) != null) { EventType currentType = currentEvent.getType();
@Test public void testDownloadCorrupted() throws Exception { RecordingTransferListener transferListener = new RecordingTransferListener(); session.setTransferListener(transferListener); addDelivery("gid/aid/version/aid-version-classifier.extension", "artifact"); addDelivery("gid/aid/version/aid-version-classifier.extension.sha1", "foo"); addDelivery("gid/aid/version/aid-version-classifier.extension.md5", "bar"); File f = TestFileUtils.createTempFile(""); Artifact a = artifact("bla"); ArtifactDownload down = new ArtifactDownload(a, null, f, RepositoryPolicy.CHECKSUM_POLICY_WARN); Collection<? extends ArtifactDownload> downs = Arrays.asList(down); connector().get(downs, null); TransferEvent corruptedEvent = null; for (TransferEvent e : transferListener.getEvents()) { if (TransferEvent.EventType.CORRUPTED.equals(e.getType())) { corruptedEvent = e; break; } } assertNotNull(corruptedEvent); }