public void MSOXWSCORE_S01_TC02_CopyItemSuccessfully()
{
#region Step 1: Create the item.
ItemType item = new ItemType();
ItemIdType[] createdItemIds = this.CreateItemWithMinimumElements(item);
#endregion
#region Step 2: Copy the item.
CopyItemType copyItemRequest = new CopyItemType();
CopyItemResponseType copyItemResponse = new CopyItemResponseType();
// Configure ItemIds.
copyItemRequest.ItemIds = createdItemIds;
// Configure copying item to draft folder.
DistinguishedFolderIdType distinguishedFolderIdForCopyItem = new DistinguishedFolderIdType();
distinguishedFolderIdForCopyItem.Id = DistinguishedFolderIdNameType.drafts;
copyItemRequest.ToFolderId = new TargetFolderIdType();
copyItemRequest.ToFolderId.Item = distinguishedFolderIdForCopyItem;
copyItemResponse = this.COREAdapter.CopyItem(copyItemRequest);
// Check the operation response.
Common.CheckOperationSuccess(copyItemResponse, 1, this.Site);
ItemIdType[] copiedItemIds = Common.GetItemIdsFromInfoResponse(copyItemResponse);
// One copied item should be returned.
Site.Assert.AreEqual<int>(
1,
copiedItemIds.GetLength(0),
"One copied item should be returned! Expected Item Count: {0}, Actual Item Count: {1}",
1,
copiedItemIds.GetLength(0));
Site.Assert.IsTrue(this.IsSchemaValidated, "The schema should be validated.");
// Add the debug information
this.Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXWSCORE_R253");
// Verify MS-OXWSCORE requirement: MS-OXWSCORE_R253
// The schema is validated and the response is not null, so this requirement can be captured.
this.Site.CaptureRequirementIfIsNotNull(
copyItemResponse,
253,
@"[In m:CopyItemResponseType Complex Type] The CopyItemResponseType complex type extends the BaseResponseMessageType complex type ([MS-OXWSCDATA] section 2.2.4.16).");
// Add the debug information
this.Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXWSCORE_R1601");
// Verify MS-OXWSCORE requirement: MS-OXWSCORE_R1601
// The schema is validated, so this requirement can be captured.
this.Site.CaptureRequirement(
1601,
@"[In m:BaseMoveCopyItemType Complex Type] [The element ""ItemIds""] Specifies an array of elements of type BaseItemIdType that specifies a set of items to be copied.");
ItemInfoResponseMessageType copyItemResponseMessage = copyItemResponse.ResponseMessages.Items[0] as ItemInfoResponseMessageType;
// Add the debug information
this.Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXWSCDATA_R1602");
// Verify MS-OXWSCORE requirement: MS-OXWSCDATA_R1602
// The schema is validated and the response is not null, so this requirement can be captured.
this.Site.CaptureRequirementIfIsNotNull(
copyItemResponseMessage,
"MS-OXWSCDATA",
1602,
@"[In m:ArrayOfResponseMessagesType Complex Type] The element ""CopyItemResponseMessage"" is ""m:ItemInfoResponseMessageType"" type.");
// Add the debug information
this.Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXWSCDATA_R1057");
// Verify MS-OXWSCORE requirement: MS-OXWSCDATA_R1057
// The schema is validated and the response is not null, so this requirement can be captured.
this.Site.CaptureRequirementIfIsNotNull(
copyItemResponseMessage,
"MS-OXWSCDATA",
1057,
@"[In m:ArrayOfResponseMessagesType Complex Type] The element ""CopyItemResponseMessage"" with type ""m:ItemInfoResponseMessageType"" specifies the response message for the CopyItem operation ([MS-OXWSCORE] section 3.1.4.1).");
#endregion
#region Step 3: Get the first created item success.
// Call the GetItem operation.
GetItemResponseType getItemResponse = this.CallGetItemOperation(createdItemIds);
// Check the operation response.
Common.CheckOperationSuccess(getItemResponse, 1, this.Site);
ItemIdType[] getItemIds = Common.GetItemIdsFromInfoResponse(getItemResponse);
// One item should be returned.
Site.Assert.AreEqual<int>(
1,
getItemIds.GetLength(0),
"One item should be returned! Expected Item Count: {0}, Actual Item Count: {1}",
1,
getItemIds.GetLength(0));
#endregion
#region Step 4: Get the second copied item success.
// The Item properties returned.
getItemResponse = this.CallGetItemOperation(copiedItemIds);
// Check the operation response.
Common.CheckOperationSuccess(getItemResponse, 1, this.Site);
getItemIds = Common.GetItemIdsFromInfoResponse(getItemResponse);
// One item should be returned.
Site.Assert.AreEqual<int>(
1,
getItemIds.GetLength(0),
"One item should be returned! Expected Item Count: {0}, Actual Item Count: {1}",
1,
getItemIds.GetLength(0));
// Add the debug information
this.Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXWSCORE_R1600");
// Verify MS-OXWSCORE requirement: MS-OXWSCORE_R1600
// If the copied item was got successfully, R1600 can be captured.
this.Site.CaptureRequirement(
1600,
@"[In m:BaseMoveCopyItemType Complex Type] [The element ""ToFolderId""] Specifies an instance of the TargetFolderIdType complex type that specifies the folder to which the items specified by the ItemIds property are to be copied.");
#endregion
}