diff --git a/source/java/org/alfresco/repo/transfer/TransferServiceCallbackTest.java b/source/java/org/alfresco/repo/transfer/TransferServiceCallbackTest.java
index c7bbaa29c5..5bf34eebb5 100644
--- a/source/java/org/alfresco/repo/transfer/TransferServiceCallbackTest.java
+++ b/source/java/org/alfresco/repo/transfer/TransferServiceCallbackTest.java
@@ -1,3 +1,21 @@
+/*
+ * Copyright (C) 2009-2010 Alfresco Software Limited.
+ *
+ * This file is part of Alfresco
+ *
+ * Alfresco is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Alfresco is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with Alfresco. If not, see .
+ */
package org.alfresco.repo.transfer;
import static org.mockito.Matchers.*;
@@ -269,6 +287,141 @@ public class TransferServiceCallbackTest extends TestCase
verifyCallback(expectedEvents);
}
+ public void xtestErrorDuringCommit()
+ {
+ Exception error = new TransferException("Commit failed");
+
+ TransferProgress status0 = new TransferProgress();
+ status0.setStatus(Status.COMMIT_REQUESTED);
+ status0.setCurrentPosition(0);
+ status0.setEndPosition(0);
+
+ TransferProgress status1 = new TransferProgress();
+ status1.setStatus(Status.COMMITTING);
+ status1.setCurrentPosition(0);
+ status1.setEndPosition(4);
+
+ TransferProgress status2 = new TransferProgress();
+ status2.setStatus(Status.COMMITTING);
+ status2.setCurrentPosition(3);
+ status2.setEndPosition(4);
+
+ TransferProgress status3 = new TransferProgress();
+ status3.setStatus(Status.COMMITTING);
+ status3.setCurrentPosition(5);
+ status3.setEndPosition(8);
+
+ TransferProgress status4 = new TransferProgress();
+ status4.setStatus(Status.ERROR);
+ status4.setCurrentPosition(8);
+ status4.setEndPosition(8);
+ status4.setError(error);
+
+ TransferProgress[] statuses = new TransferProgress[] {status0, status1, status2, status3, status4};
+ configureBasicMockTransmitter(statuses);
+ when(mockedTransferTransmitter.begin(target)).thenReturn(transfer);
+
+ TransferDefinition transferDef = new TransferDefinition();
+ transferDef.setNodes(folder1, file1, file2, file3);
+ transferService.transfer(TRANSFER_TARGET_NAME, transferDef, mockedCallback);
+
+ List expectedEvents = new ArrayList();
+ TransferEventImpl event;
+
+ event = new TransferEventEnterState();
+ event.setTransferState(TransferState.START);
+ expectedEvents.add(event);
+
+ event = new TransferEventBegin();
+ event.setTransferState(TransferState.START);
+ expectedEvents.add(event);
+
+ event = new TransferEventEndState();
+ event.setTransferState(TransferState.START);
+ expectedEvents.add(event);
+
+ event = new TransferEventEnterState();
+ event.setTransferState(TransferState.SENDING_SNAPSHOT);
+ expectedEvents.add(event);
+
+ event = new TransferEventSendingSnapshot();
+ event.setTransferState(TransferState.SENDING_SNAPSHOT);
+ expectedEvents.add(event);
+
+ event = new TransferEventEndState();
+ event.setTransferState(TransferState.SENDING_SNAPSHOT);
+ expectedEvents.add(event);
+
+ event = new TransferEventEnterState();
+ event.setTransferState(TransferState.SENDING_CONTENT);
+ expectedEvents.add(event);
+
+ event = new TransferEventSendingContent();
+ event.setTransferState(TransferState.SENDING_CONTENT);
+ expectedEvents.add(event);
+
+ event = new TransferEventSendingContent();
+ event.setTransferState(TransferState.SENDING_CONTENT);
+ expectedEvents.add(event);
+
+ event = new TransferEventSendingContent();
+ event.setTransferState(TransferState.SENDING_CONTENT);
+ expectedEvents.add(event);
+
+ event = new TransferEventEndState();
+ event.setTransferState(TransferState.SENDING_CONTENT);
+ expectedEvents.add(event);
+
+ event = new TransferEventEnterState();
+ event.setTransferState(TransferState.PREPARING);
+ expectedEvents.add(event);
+
+ event = new TransferEventEndState();
+ event.setTransferState(TransferState.PREPARING);
+ expectedEvents.add(event);
+
+ event = new TransferEventEnterState();
+ event.setTransferState(TransferState.COMMITTING);
+ expectedEvents.add(event);
+
+ event = new TransferEventCommittingStatus();
+ event.setTransferState(TransferState.COMMITTING);
+ expectedEvents.add(event);
+
+ event = new TransferEventCommittingStatus();
+ event.setTransferState(TransferState.COMMITTING);
+ expectedEvents.add(event);
+
+ event = new TransferEventCommittingStatus();
+ event.setTransferState(TransferState.COMMITTING);
+ expectedEvents.add(event);
+
+ event = new TransferEventCommittingStatus();
+ event.setTransferState(TransferState.COMMITTING);
+ expectedEvents.add(event);
+
+ event = new TransferEventEndState();
+ event.setTransferState(TransferState.COMMITTING);
+ expectedEvents.add(event);
+
+ event = new TransferEventEnterState();
+ event.setTransferState(TransferState.ERROR);
+ expectedEvents.add(event);
+
+ event = new TransferEventError();
+ event.setTransferState(TransferState.ERROR);
+ ((TransferEventError)event).setException(error);
+ expectedEvents.add(event);
+
+ event = new TransferEventReport();
+ expectedEvents.add(event);
+
+ event = new TransferEventReport();
+ expectedEvents.add(event);
+
+ verifyCallback(expectedEvents);
+ }
+
public void testTargetAlreadyLocked()
{
configureBasicMockTransmitter(null);