@Test
public void testPackageAdditionWithFailingItemDelivery() throws Exception {
SingleQueueDistributionStrategy singleQueueDistributionStrategy = new SingleQueueDistributionStrategy();
ReplicationPackage replicationPackage = mock(ReplicationPackage.class);
ReplicationQueueProvider queueProvider = mock(ReplicationQueueProvider.class);
ReplicationQueue queue = mock(ReplicationQueue.class);
ReplicationQueueItem queueItem = mock(ReplicationQueueItem.class);
when(queueProvider.getDefaultQueue("agentName")).thenReturn(queue);
when(queue.add(queueItem)).thenReturn(true);
ReplicationQueueItemState state = mock(ReplicationQueueItemState.class);
when(state.isSuccessful()).thenReturn(false);
when(queue.getStatus(queueItem)).thenReturn(state);
boolean returnedState = singleQueueDistributionStrategy.add("agentName", replicationPackage, queueProvider);
assertFalse(returnedState);
}