public void MSOXWSCORE_S05_TC20_CreateMeetingItemWithInvalidItemClass()
{
#region Step 1: Create the Meeting item with ItemClass set to IPM.DistList.
CreateItemType createItemRequest = new CreateItemType();
createItemRequest.Items = new NonEmptyArrayOfAllItemsType();
CalendarItemType item = new CalendarItemType();
createItemRequest.Items.Items = new ItemType[] { item };
createItemRequest.Items.Items[0].Subject = Common.GenerateResourceName(this.Site, TestSuiteHelper.SubjectForCreateItem, 1);
createItemRequest.Items.Items[0].ItemClass = "IPM.DistList";
DistinguishedFolderIdType folderIdForCreateItems = new DistinguishedFolderIdType();
folderIdForCreateItems.Id = DistinguishedFolderIdNameType.calendar;
createItemRequest.SavedItemFolderId = new TargetFolderIdType();
createItemRequest.SavedItemFolderId.Item = folderIdForCreateItems;
createItemRequest.SendMeetingInvitations = CalendarItemCreateOrDeleteOperationType.SendToAllAndSaveCopy;
createItemRequest.SendMeetingInvitationsSpecified = true;
CreateItemResponseType createItemResponse = this.COREAdapter.CreateItem(createItemRequest);
Site.Assert.AreEqual<ResponseCodeType>(
ResponseCodeType.ErrorObjectTypeChanged,
createItemResponse.ResponseMessages.Items[0].ResponseCode,
"ErrorObjectTypeChanged should be returned if create a Meeting item with ItemClass IPM.DistList.");
#endregion
#region Step 2: Create the Meeting item with ItemClass set to IPM.Post.
createItemRequest.Items.Items[0].Subject = Common.GenerateResourceName(this.Site, TestSuiteHelper.SubjectForCreateItem, 2);
createItemRequest.Items.Items[0].ItemClass = "IPM.Post";
createItemResponse = this.COREAdapter.CreateItem(createItemRequest);
Site.Assert.AreEqual<ResponseCodeType>(
ResponseCodeType.ErrorObjectTypeChanged,
createItemResponse.ResponseMessages.Items[0].ResponseCode,
"ErrorObjectTypeChanged should be returned if create a Meeting item with ItemClass IPM.Post.");
#endregion
#region Step 3: Create the Meeting item with ItemClass set to IPM.Task.
createItemRequest.Items.Items[0].Subject = Common.GenerateResourceName(this.Site, TestSuiteHelper.SubjectForCreateItem, 3);
createItemRequest.Items.Items[0].ItemClass = "IPM.Task";
createItemResponse = this.COREAdapter.CreateItem(createItemRequest);
Site.Assert.AreEqual<ResponseCodeType>(
ResponseCodeType.ErrorObjectTypeChanged,
createItemResponse.ResponseMessages.Items[0].ResponseCode,
"ErrorObjectTypeChanged should be returned if create a Meeting item with ItemClass IPM.Task.");
#endregion
#region Step 4: Create the Meeting item with ItemClass set to IPM.Contact.
createItemRequest.Items.Items[0].Subject = Common.GenerateResourceName(this.Site, TestSuiteHelper.SubjectForCreateItem, 4);
createItemRequest.Items.Items[0].ItemClass = "IPM.Contact";
createItemResponse = this.COREAdapter.CreateItem(createItemRequest);
Site.Assert.AreEqual<ResponseCodeType>(
ResponseCodeType.ErrorObjectTypeChanged,
createItemResponse.ResponseMessages.Items[0].ResponseCode,
"ErrorObjectTypeChanged should be returned if create a Meeting item with ItemClass IPM.Contact.");
#endregion
#region Step 5: Create the Meeting item with ItemClass set to random string.
createItemRequest.Items.Items[0].Subject = Common.GenerateResourceName(this.Site, TestSuiteHelper.SubjectForCreateItem, 5);
createItemRequest.Items.Items[0].ItemClass = Common.GenerateResourceName(this.Site, "ItemClass");
createItemResponse = this.COREAdapter.CreateItem(createItemRequest);
Site.Assert.AreEqual<ResponseCodeType>(
ResponseCodeType.ErrorObjectTypeChanged,
createItemResponse.ResponseMessages.Items[0].ResponseCode,
"ErrorObjectTypeChanged should be returned if create a Meeting item with ItemClass is set to a random string.");
#endregion
// Add the debug information
this.Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXWSCORE_R2023");
// Verify MS-OXWSCORE requirement: MS-OXWSCORE_R2023
this.Site.CaptureRequirement(
2023,
@"[In t:ItemType Complex Type] If invalid values are set for these items in the CreateItem request, an ErrorObjectTypeChanged ([MS-OXWSCDATA] section 2.2.5.24) response code will be returned in the CreateItem response.");
}