public void MSMEETS_S03_TC14_UpdateMeetingFromICalWhenICalTextNotPresent() { string uid = Guid.NewGuid().ToString(); // Create a workspace on the server. string workspaceTitle = TestSuiteBase.GetUniqueWorkspaceTitle(); SoapResult <CreateWorkspaceResponseCreateWorkspaceResult> createWorkspaceResult = this.meetsAdapter.CreateWorkspace(workspaceTitle, null, null, null); Site.Assert.IsNull(createWorkspaceResult.Exception, "Create workspace should succeed"); // Add meeting from ICalendar. this.meetsAdapter.Url = createWorkspaceResult.Result.CreateWorkspace.Url + Common.GetConfigurationPropertyValue("EntryUrl", this.Site); string attendeeEmail = Common.GetConfigurationPropertyValue("AttendeeEmail", this.Site); string icalendar = TestSuiteBase.GetICalendar(uid, false, attendeeEmail); string organizerEmail = Common.GetConfigurationPropertyValue("OrganizerEmail", this.Site); SoapResult <AddMeetingFromICalResponseAddMeetingFromICalResult> addMeetingFromICalResult = this.meetsAdapter.AddMeetingFromICal(organizerEmail, icalendar); Site.Assert.IsNull(addMeetingFromICalResult.Exception, "AddMeetingFromICal should succeed"); // Update the meeting when icalText is not present. SoapResult <UpdateMeetingFromICalResponseUpdateMeetingFromICalResult> updateMeetingFromICalResult = this.meetsAdapter.UpdateMeetingFromICal(null, false); // If server returns an exception, that is to say, when the icalText is not present, the UpdateMeetingFromICal operation will failed with an exception. Then MS-MEETS_R41111 can be verified. Site.CaptureRequirementIfIsNotNull( updateMeetingFromICalResult.Exception, 41111, @"[In UpdateMeetingFromICal]If icalText is not present, the UpdateMeetingFromICal operation will failed with an exception."); // Clean up the SUT. this.meetsAdapter.Url = createWorkspaceResult.Result.CreateWorkspace.Url + Common.GetConfigurationPropertyValue("EntryUrl", this.Site); SoapResult <Null> deleteResult = this.meetsAdapter.DeleteWorkspace(); Site.Assert.IsNull(deleteResult.Exception, "DeleteWorkspace should succeed"); }
public void MSMEETS_S03_TC10_SetAttendeeResponseWithAllParametersSpecified() { string uid = Guid.NewGuid().ToString(); // Create a workspace on the server. string workspaceTitle = TestSuiteBase.GetUniqueWorkspaceTitle(); SoapResult <CreateWorkspaceResponseCreateWorkspaceResult> createWorkspaceResult = this.meetsAdapter.CreateWorkspace(workspaceTitle, null, null, null); Site.Assert.IsNull(createWorkspaceResult.Exception, "Create workspace should succeed"); // Add meeting from ICalendar. this.meetsAdapter.Url = createWorkspaceResult.Result.CreateWorkspace.Url + Common.GetConfigurationPropertyValue("EntryUrl", this.Site); string attendeeEmail = Common.GetConfigurationPropertyValue("AttendeeEmail", this.Site); string icalendar = TestSuiteBase.GetICalendar(uid, false, attendeeEmail); string organizerEmail = Common.GetConfigurationPropertyValue("OrganizerEmail", this.Site); SoapResult <AddMeetingFromICalResponseAddMeetingFromICalResult> addMeetingFromICalResult = this.meetsAdapter.AddMeetingFromICal(organizerEmail, icalendar); Site.Assert.IsNull(addMeetingFromICalResult.Exception, "AddMeetingFromICal should succeed"); // Set attendee response with all parameters specified. SoapResult <Null> setAttendeeResponsResult = this.meetsAdapter.SetAttendeeResponse(attendeeEmail, 0, uid, 0, DateTime.Now.AddHours(2), DateTime.Now.AddHours(2), AttendeeResponse.responseAccepted); Site.Assert.IsNull(setAttendeeResponsResult.Exception, "SetAttendeeResponse should succeed"); // Clean up the SUT. this.meetsAdapter.Url = createWorkspaceResult.Result.CreateWorkspace.Url + Common.GetConfigurationPropertyValue("EntryUrl", this.Site); SoapResult <Null> deleteResult = this.meetsAdapter.DeleteWorkspace(); Site.Assert.IsNull(deleteResult.Exception, "DeleteWorkspace should succeed"); }
public void MSMEETS_S02_TC02_RestoreMeetingError() { string uid = Guid.NewGuid().ToString(); // Create a new workspace. string workspaceTitle = TestSuiteBase.GetUniqueWorkspaceTitle(); SoapResult <CreateWorkspaceResponseCreateWorkspaceResult> createWorkspaceResult = this.meetsAdapter.CreateWorkspace(workspaceTitle, null, null, null); Site.Assert.IsNull(createWorkspaceResult.Exception, "Create workspace should succeed"); // Restore a meeting which does not exist. this.meetsAdapter.Url = createWorkspaceResult.Result.CreateWorkspace.Url + Common.GetConfigurationPropertyValue("EntryUrl", this.Site); SoapResult <Null> restoreMeetingResult = this.meetsAdapter.RestoreMeeting(uid); // If Restore a un-existed meeting failed with returned "0x8102003e" error code, MS-MEETS_R2937 can be verified. Site.CaptureRequirementIfAreEqual <string>( "0x8102003e", restoreMeetingResult.GetErrorCode(), 2937, @"[In RestoreMeetingResponse]If the meeting specified by the uid parameter in the RestoreMeeting operation does not exist in the meeting workspace, a SOAP fault response is returned with SOAP fault code 0x8102003e."); // Clean up the SUT this.meetsAdapter.Url = createWorkspaceResult.Result.CreateWorkspace.Url + Common.GetConfigurationPropertyValue("EntryUrl", this.Site); SoapResult <Null> deleteResult = this.meetsAdapter.DeleteWorkspace(); Site.Assert.IsNull(deleteResult.Exception, "DeleteWorkspace should succeed"); }
public void MSMEETS_S03_TC07_UpdateMeetingFromICalWithEmptyicalText() { Site.Assume.IsTrue(Common.IsRequirementEnabled(4114, this.Site), "This case runs only when the requirement 4114 is enabled."); string uid = Guid.NewGuid().ToString(); // Create a workspace on the server. string workspaceTitle = TestSuiteBase.GetUniqueWorkspaceTitle(); SoapResult <CreateWorkspaceResponseCreateWorkspaceResult> createWorkspaceResult = this.meetsAdapter.CreateWorkspace(workspaceTitle, null, null, null); Site.Assert.IsNull(createWorkspaceResult.Exception, "Create workspace should succeed"); // Add meeting from ICalendar. this.meetsAdapter.Url = createWorkspaceResult.Result.CreateWorkspace.Url + Common.GetConfigurationPropertyValue("EntryUrl", this.Site); string icalendar = TestSuiteBase.GetICalendar(uid, false); string organizerEmail = Common.GetConfigurationPropertyValue("OrganizerEmail", this.Site); SoapResult <AddMeetingFromICalResponseAddMeetingFromICalResult> addMeetingFromICalResult = this.meetsAdapter.AddMeetingFromICal(organizerEmail, icalendar); Site.Assert.IsNull(addMeetingFromICalResult.Exception, "AddMeetingFromICal should succeed"); // Update meeting from ICalendar when the parameter icalText is empty. SoapResult <UpdateMeetingFromICalResponseUpdateMeetingFromICalResult> updateMeetingFromICalResult = this.meetsAdapter.UpdateMeetingFromICal(null, false); // Set the "icalTest" to empty and execute the UpdateMeetingFromICal operation, if the returned exception is not null, it means the server returns a SOAP fault, so MS-MEETS_R4114 can be verified. Site.CaptureRequirementIfIsNotNull( updateMeetingFromICalResult.Exception, 4114, @"[In Appendix B: Product Behavior]Implementation does return a SOAP fault. (The 2007 Microsoft® Office system/Windows® SharePoint® Services 3.0 and above follow this behavior.)"); // Clean up the SUT. this.meetsAdapter.Url = createWorkspaceResult.Result.CreateWorkspace.Url + Common.GetConfigurationPropertyValue("EntryUrl", this.Site); SoapResult <Null> deleteResult = this.meetsAdapter.DeleteWorkspace(); Site.Assert.IsNull(deleteResult.Exception, "DeleteWorkspace should succeed"); }
public void MSMEETS_S02_TC03_MeetingInvalidUrlError() { string uid = Guid.NewGuid().ToString(); // Set the Url to the default site, which is not workspace. this.meetsAdapter.Url = Common.GetConfigurationPropertyValue("TargetServiceUrl", this.Site); string organizerEmail = Common.GetConfigurationPropertyValue("OrganizerEmail", this.Site); string meetingTitle = TestSuiteBase.GetUniqueMeetingTitle(); string meetingLocation = TestSuiteBase.GetUniqueMeetingLocation(); SoapResult <AddMeetingResponseAddMeetingResult> addMeetingResult = this.meetsAdapter.AddMeeting(organizerEmail, uid, null, DateTime.Now, meetingTitle, meetingLocation, DateTime.Now, DateTime.Now.AddHours(1), false); // If error code "0x00000006" is returned, MS-MEETS_R66 can be verified. Site.CaptureRequirementIfAreEqual <string>( "0x00000006", addMeetingResult.GetErrorCode(), 66, @"[In AddMeetingResponse]If this operation [AddMeeting]is sent to a Web site (2) that is not a meeting workspace, the response [AddMeetingResponse]MUST be a SOAP fault with SOAP Fault code ""0x00000006""."); string updatedMeetingTitle = TestSuiteBase.GetUniqueMeetingTitle(); string updatedLocation = TestSuiteBase.GetUniqueMeetingLocation(); SoapResult <Null> updateMeetingResult = this.meetsAdapter.UpdateMeeting(uid, null, null, updatedMeetingTitle, updatedLocation, DateTime.Now, DateTime.Now.AddHours(1), null); // If error code "0x00000006" is returned, MS-MEETS_R350 can be verified. Site.CaptureRequirementIfAreEqual <string>( "0x00000006", updateMeetingResult.GetErrorCode(), 350, @"[In UpdateMeetingResponse]If this operation [UpdateMeeting] is sent to a Web site (2) that is not a meeting workspace, the response MUST be a SOAP fault with SOAP fault code ""0x00000006""."); }
public void MSMEETS_S03_TC04_AddMeetingFromICalWithInvalidAttendees() { string uid = Guid.NewGuid().ToString(); // Create a workspace on the server. string workspaceTitle = TestSuiteBase.GetUniqueWorkspaceTitle(); SoapResult <CreateWorkspaceResponseCreateWorkspaceResult> createWorkspaceResult = this.meetsAdapter.CreateWorkspace(workspaceTitle, null, null, null); Site.Assert.IsNull(createWorkspaceResult.Exception, "Create workspace should succeed"); // Add meeting from ICalendar when the parameter icalText contains more than 254 attendees elements. this.meetsAdapter.Url = createWorkspaceResult.Result.CreateWorkspace.Url + Common.GetConfigurationPropertyValue("EntryUrl", this.Site); string icalendar = TestSuiteBase.GetICalendar(uid, false, TestSuiteBase.GenerateAttendees(255)); string organizerEmail = Common.GetConfigurationPropertyValue("OrganizerEmail", this.Site); SoapResult <AddMeetingFromICalResponseAddMeetingFromICalResult> addMeetingFromICalResult = this.meetsAdapter.AddMeetingFromICal(organizerEmail, icalendar); Site.Assert.IsNotNull(addMeetingFromICalResult.Exception, "AddMeetingFromICal should succeed"); // If icalText contains more than 254 attendees and server returned error code "0x0000000d", MS-MEETS_R4004 can be verified. Site.CaptureRequirementIfAreEqual <string>( "0x0000000d", addMeetingFromICalResult.GetErrorCode(), 4004, @"[In AddMeetingFromICal]If this parameter[icalText] contains more than 254 attendee elements, the response MUST be a SOAP fault with SOAP fault code ""0x0000000d""."); // Clean up the SUT. this.meetsAdapter.Url = createWorkspaceResult.Result.CreateWorkspace.Url + Common.GetConfigurationPropertyValue("EntryUrl", this.Site); SoapResult <Null> deleteResult = this.meetsAdapter.DeleteWorkspace(); Site.Assert.IsNull(deleteResult.Exception, "DeleteWorkspace should succeed"); }
public void MSMEETS_S02_TC07_UpdateMeetingWithAllParametersSpecified() { string uid = Guid.NewGuid().ToString(); // Create a new workspace. string workspaceTitle = TestSuiteBase.GetUniqueWorkspaceTitle(); SoapResult <CreateWorkspaceResponseCreateWorkspaceResult> createWorkspaceResult = this.meetsAdapter.CreateWorkspace(workspaceTitle, null, null, null); Site.Assert.IsNull(createWorkspaceResult.Exception, "Create workspace should succeed"); // Add a meeting in the workspace. this.meetsAdapter.Url = createWorkspaceResult.Result.CreateWorkspace.Url + Common.GetConfigurationPropertyValue("EntryUrl", this.Site); SoapResult <AddMeetingResponseAddMeetingResult> addMeetingResult = this.meetsAdapter.AddMeeting(null, uid, null, null, null, null, DateTime.Now, DateTime.Now.AddHours(1), null); Site.Assert.IsNull(addMeetingResult.Exception, "AddMeeting should succeed"); // Update the meeting with all parameters specified. string updatedMeetingTitle = TestSuiteBase.GetUniqueMeetingTitle(); string updatedLocation = TestSuiteBase.GetUniqueMeetingLocation(); SoapResult <Null> updateMeetingResult = this.meetsAdapter.UpdateMeeting(uid, 1, DateTime.Now, updatedMeetingTitle, updatedLocation, DateTime.Now.AddHours(1), DateTime.Now.AddHours(2), false); Site.Assert.IsNull(updateMeetingResult.Exception, "UpdateMeeting should succeed"); // Clean up the SUT. this.meetsAdapter.Url = createWorkspaceResult.Result.CreateWorkspace.Url + Common.GetConfigurationPropertyValue("EntryUrl", this.Site); SoapResult <Null> deleteResult = this.meetsAdapter.DeleteWorkspace(); Site.Assert.IsNull(deleteResult.Exception, "DeleteWorkspace should succeed"); }
public void MSMEETS_S02_TC10_RemoveMeetingWithoutOptionalParameters() { string uid = Guid.NewGuid().ToString(); // Create a new workspace. string workspaceTitle = TestSuiteBase.GetUniqueWorkspaceTitle(); SoapResult <CreateWorkspaceResponseCreateWorkspaceResult> createWorkspaceResult = this.meetsAdapter.CreateWorkspace(workspaceTitle, null, null, null); Site.Assert.IsNull(createWorkspaceResult.Exception, "Create workspace should succeed"); // Add a meeting in the workspace. this.meetsAdapter.Url = createWorkspaceResult.Result.CreateWorkspace.Url + Common.GetConfigurationPropertyValue("EntryUrl", this.Site); SoapResult <AddMeetingResponseAddMeetingResult> addMeetingResult = this.meetsAdapter.AddMeeting(Common.GetConfigurationPropertyValue("OrganizerEmail", this.Site), uid, null, null, TestSuiteBase.GetUniqueMeetingTitle(), TestSuiteBase.GetUniqueMeetingLocation(), DateTime.Now, DateTime.Now.AddHours(1), null); Site.Assert.IsNull(addMeetingResult.Exception, "AddMeeting should succeed"); // Remove the meeting with all parameters specified. SoapResult <Null> removeMeetingResult = this.meetsAdapter.RemoveMeeting(null, uid, null, null, null); Site.Assert.IsNull(removeMeetingResult.Exception, "RemoveMeeting should succeed"); // Clean up the SUT. this.meetsAdapter.Url = createWorkspaceResult.Result.CreateWorkspace.Url + Common.GetConfigurationPropertyValue("EntryUrl", this.Site); SoapResult <Null> deleteResult = this.meetsAdapter.DeleteWorkspace(); Site.Assert.IsNull(deleteResult.Exception, "DeleteWorkspace should succeed"); }
public void MSMEETS_S02_TC11_AddMeetingWithInvalidOrganizerEmail() { string uid = Guid.NewGuid().ToString(); // Create a new workspace. string workspaceTitle = TestSuiteBase.GetUniqueWorkspaceTitle(); SoapResult <CreateWorkspaceResponseCreateWorkspaceResult> createWorkspaceResult = this.meetsAdapter.CreateWorkspace(workspaceTitle, null, null, null); Site.Assert.IsNull(createWorkspaceResult.Exception, "Create workspace should succeed"); // Add a meeting in the workspace. this.meetsAdapter.Url = createWorkspaceResult.Result.CreateWorkspace.Url + Common.GetConfigurationPropertyValue("EntryUrl", this.Site); string organizerEmail = Common.GenerateResourceName(this.Site, "InvalidOrganizerEmail"); string meetingTitle = TestSuiteBase.GetUniqueMeetingTitle(); string meetingLocation = TestSuiteBase.GetUniqueMeetingLocation(); SoapResult <AddMeetingResponseAddMeetingResult> addMeetingResult = this.meetsAdapter.AddMeeting(organizerEmail, uid, null, DateTime.Now, meetingTitle, meetingLocation, DateTime.Now, DateTime.Now.AddHours(1), false); string errorCode = Common.ExtractErrorCodeFromSoapFault(addMeetingResult.Exception); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-MEETS_R521"); // Verify MS-VERSS requirement: MS-MEETS_R521 Site.CaptureRequirementIfAreEqual <string>( "0x0000000a", errorCode, 521, @"[In AddMeeting]If this parameter [organizerEmail] is an invalid e-mail address, the response MUST be a SOAP fault with SOAP fault code ""0x0000000a""."); // Clean up the SUT this.meetsAdapter.Url = createWorkspaceResult.Result.CreateWorkspace.Url + Common.GetConfigurationPropertyValue("EntryUrl", this.Site); SoapResult <Null> deleteResult = this.meetsAdapter.DeleteWorkspace(); Site.Assert.IsNull(deleteResult.Exception, "DeleteWorkspace should succeed"); }
public void MSMEETS_S03_TC13_UpdateMeetingFromICalWithoutOptionalParameters() { string uid = Guid.NewGuid().ToString(); // Create a workspace on the server. string workspaceTitle = TestSuiteBase.GetUniqueWorkspaceTitle(); SoapResult <CreateWorkspaceResponseCreateWorkspaceResult> createWorkspaceResult = this.meetsAdapter.CreateWorkspace(workspaceTitle, null, null, null); Site.Assert.IsNull(createWorkspaceResult.Exception, "Create workspace should succeed"); // Add meeting from ICalendar. this.meetsAdapter.Url = createWorkspaceResult.Result.CreateWorkspace.Url + Common.GetConfigurationPropertyValue("EntryUrl", this.Site); string attendeeEmail = Common.GetConfigurationPropertyValue("AttendeeEmail", this.Site); string icalendar = TestSuiteBase.GetICalendar(uid, false, attendeeEmail); string organizerEmail = Common.GetConfigurationPropertyValue("OrganizerEmail", this.Site); SoapResult <AddMeetingFromICalResponseAddMeetingFromICalResult> addMeetingFromICalResult = this.meetsAdapter.AddMeetingFromICal(organizerEmail, icalendar); Site.Assert.IsNull(addMeetingFromICalResult.Exception, "AddMeetingFromICal should succeed"); // Update the meeting without optional parameters. string updateICal = TestSuiteBase.GetICalendar(uid, false, TestSuiteBase.GetUniqueMeetingTitle(), TestSuiteBase.GetUniqueMeetingLocation(), attendeeEmail); SoapResult <UpdateMeetingFromICalResponseUpdateMeetingFromICalResult> updateMeetingFromICalResult = this.meetsAdapter.UpdateMeetingFromICal(updateICal, null); Site.Assert.IsNull(updateMeetingFromICalResult.Exception, "UpdateMeetingFromICal should succeed"); // Clean up the SUT. this.meetsAdapter.Url = createWorkspaceResult.Result.CreateWorkspace.Url + Common.GetConfigurationPropertyValue("EntryUrl", this.Site); SoapResult <Null> deleteResult = this.meetsAdapter.DeleteWorkspace(); Site.Assert.IsNull(deleteResult.Exception, "DeleteWorkspace should succeed"); }
public void MSMEETS_S03_TC01_MeetingFromICalOperations() { string uid = Guid.NewGuid().ToString(); // Create a workspace on the server string workspaceTitle = TestSuiteBase.GetUniqueWorkspaceTitle(); SoapResult <CreateWorkspaceResponseCreateWorkspaceResult> createWorkspaceResult = this.meetsAdapter.CreateWorkspace(workspaceTitle, null, null, null); Site.Assert.IsNull(createWorkspaceResult.Exception, "Create workspace should succeed"); // Add meeting from ICalendar. this.meetsAdapter.Url = createWorkspaceResult.Result.CreateWorkspace.Url + Common.GetConfigurationPropertyValue("EntryUrl", this.Site); string meetingTitle = TestSuiteBase.GetUniqueMeetingTitle(); string meetingLocation = TestSuiteBase.GetUniqueMeetingLocation(); string icalendar = TestSuiteBase.GetICalendar(uid, false, meetingTitle, meetingLocation); string organizerEmail = Common.GetConfigurationPropertyValue("OrganizerEmail", this.Site); SoapResult <AddMeetingFromICalResponseAddMeetingFromICalResult> addMeetingFromICalResult = this.meetsAdapter.AddMeetingFromICal(organizerEmail, icalendar); Site.Assert.IsNull(addMeetingFromICalResult.Exception, "AddMeetingFromICal should succeed"); // Update the meeting. string attendeeEmail = Common.GetConfigurationPropertyValue("AttendeeEmail", this.Site); string icalRecurring = TestSuiteBase.GetICalendar(uid, true, meetingTitle, meetingLocation, attendeeEmail); SoapResult <UpdateMeetingFromICalResponseUpdateMeetingFromICalResult> updateMeetingFromICalResult = this.meetsAdapter.UpdateMeetingFromICal(icalRecurring, false); Site.Assert.IsNull(updateMeetingFromICalResult.Exception, "UpdateMeetingFromICal should succeed"); // If the returned status code equals to 0, MS-MEETS_R32 can be verified. Site.CaptureRequirementIfAreEqual <int>( 0, updateMeetingFromICalResult.Result.UpdateMeetingFromICal.AttendeeUpdateStatus.Code, 32, @"[In AttendeeUpdateStatus]This number [Code]is set to zero, if there was no error."); // If UpdateMeetingFromICal executed succeed and there is no error, the returned Detail value is empty, MS-MEETS_R34 can be verified. Site.CaptureRequirementIfAreEqual <string>( string.Empty, updateMeetingFromICalResult.Result.UpdateMeetingFromICal.AttendeeUpdateStatus.Detail, 34, @"[In AttendeeUpdateStatus]This string [Detail]is empty, if there was no error."); // If the returned status code equals to 0 and the returned Detail value is empty, MS-MEETS_R41110 can be verified. Site.CaptureRequirement( 41110, @"[In UpdateMeetingFromICal]If icalText is present, the UpdateMeetingFromICal operation will succeed."); // update attendee response. SoapResult <Null> setAttendeeResponsResult = this.meetsAdapter.SetAttendeeResponse(attendeeEmail, 0, uid, 0, DateTime.Now.AddHours(1), DateTime.Now.AddHours(2), AttendeeResponse.responseAccepted); Site.Assert.IsNull(setAttendeeResponsResult.Exception, "SetAttendeeResponse should succeed"); // Clean up the SUT. this.meetsAdapter.Url = createWorkspaceResult.Result.CreateWorkspace.Url + Common.GetConfigurationPropertyValue("EntryUrl", this.Site); SoapResult <Null> deleteResult = this.meetsAdapter.DeleteWorkspace(); Site.Assert.IsNull(deleteResult.Exception, "DeleteWorkspace should succeed"); }
public void MSMEETS_S02_TC04_VerifyMeetingCountInWorkspace() { // Create a workspace on site. string workspaceTitle = TestSuiteBase.GetUniqueWorkspaceTitle(); SoapResult <CreateWorkspaceResponseCreateWorkspaceResult> createWorkspaceResult = this.meetsAdapter.CreateWorkspace(workspaceTitle, null, null, null); Site.Assert.IsNull(createWorkspaceResult.Exception, "Create workspace should succeed"); // Add a meeting in workspace. this.meetsAdapter.Url = createWorkspaceResult.Result.CreateWorkspace.Url + Common.GetConfigurationPropertyValue("EntryUrl", this.Site); string organizerEmail = Common.GetConfigurationPropertyValue("OrganizerEmail", this.Site); string meetingTitleFst = TestSuiteBase.GetUniqueMeetingTitle(); string meetingLocationFst = TestSuiteBase.GetUniqueMeetingLocation(); SoapResult <AddMeetingResponseAddMeetingResult> addMeetingResultFst = this.meetsAdapter.AddMeeting(organizerEmail, Guid.NewGuid().ToString(), null, DateTime.Now, meetingTitleFst, meetingLocationFst, DateTime.Now, DateTime.Now.AddHours(1), null); Site.Assert.IsNull(addMeetingResultFst.Exception, "Add meeting should succeed"); // According to MS-ADMINS_R3017, the site will have a default title of "Team Site". Site.CaptureRequirementIfAreEqual <string>( "Team Site", addMeetingResultFst.Result.AddMeeting.HostTitle, 25, @"[In AddMeeting]HostTitle: The title of the site in which the meeting workspace is located."); // Get workspace status, make sure there is only one meeting in workspace. SoapResult <GetMeetingsInformationResponseGetMeetingsInformationResult> getWorkspaceInfoResultFst = this.meetsAdapter.GetMeetingsInformation(MeetingInfoTypes.QueryOthers, null); Site.Assert.IsNull(getWorkspaceInfoResultFst.Exception, "Get meeting information should succeed"); Site.Assert.AreEqual <string>("1", getWorkspaceInfoResultFst.Result.MeetingsInformation.WorkspaceStatus.MeetingCount, "There is only one meeting in workspace"); // Add another meeting in workspace. this.meetsAdapter.Url = createWorkspaceResult.Result.CreateWorkspace.Url + Common.GetConfigurationPropertyValue("EntryUrl", this.Site); string meetingTitleSnd = TestSuiteBase.GetUniqueMeetingTitle(); string meetingLocationSnd = TestSuiteBase.GetUniqueMeetingLocation(); SoapResult <AddMeetingResponseAddMeetingResult> addMeetingResultSnd = this.meetsAdapter.AddMeeting(organizerEmail, Guid.NewGuid().ToString(), null, DateTime.Now, meetingTitleSnd, meetingLocationSnd, DateTime.Now, DateTime.Now.AddHours(2), null); Site.Assert.IsNull(addMeetingResultSnd.Exception, "Add meeting should succeed"); // Get workspace status, make sure there are two meetings in workspace. SoapResult <GetMeetingsInformationResponseGetMeetingsInformationResult> getWorkspaceInfoResultSnd = this.meetsAdapter.GetMeetingsInformation(MeetingInfoTypes.QueryOthers, null); Site.Assert.IsNull(getWorkspaceInfoResultSnd.Exception, "Get meeting information should succeed"); string actualMeetingCount = getWorkspaceInfoResultSnd.Result.MeetingsInformation.WorkspaceStatus.MeetingCount; // If the returned meeting count equals to 2, MS-MEETS_R27 can be verified. Site.CaptureRequirementIfAreEqual <string>( "2", actualMeetingCount, 27, @"[In AddMeeting]MeetingCount: The number of meeting instances in the workspace, including the one just added."); // Clean up the SUT. this.meetsAdapter.Url = createWorkspaceResult.Result.CreateWorkspace.Url + Common.GetConfigurationPropertyValue("EntryUrl", this.Site); SoapResult <Null> deleteResult = this.meetsAdapter.DeleteWorkspace(); Site.Assert.IsNull(deleteResult.Exception, "DeleteWorkspace should succeed"); }
public void MSMEETS_S02_TC01_MeetingOperations() { string uid = Guid.NewGuid().ToString(); // Create a new workspace. string workspaceTitle = TestSuiteBase.GetUniqueWorkspaceTitle(); SoapResult <CreateWorkspaceResponseCreateWorkspaceResult> createWorkspaceResult = this.meetsAdapter.CreateWorkspace(workspaceTitle, null, null, null); Site.Assert.IsNull(createWorkspaceResult.Exception, "Create workspace should succeed"); // Add a meeting in the workspace. this.meetsAdapter.Url = createWorkspaceResult.Result.CreateWorkspace.Url + Common.GetConfigurationPropertyValue("EntryUrl", this.Site); string organizerEmail = Common.GetConfigurationPropertyValue("OrganizerEmail", this.Site); string meetingTitle = TestSuiteBase.GetUniqueMeetingTitle(); string meetingLocation = TestSuiteBase.GetUniqueMeetingLocation(); SoapResult <AddMeetingResponseAddMeetingResult> addMeetingResult = this.meetsAdapter.AddMeeting(organizerEmail, uid, null, DateTime.Now, meetingTitle, meetingLocation, DateTime.Now, DateTime.Now.AddHours(1), false); Site.Assert.IsNull(addMeetingResult.Exception, "AddMeeting should succeed"); // If the Url returned by AddMeeting is a well formatted Uri string, MS-MEETS_R24 can be verified. Site.CaptureRequirementIfIsTrue( Uri.IsWellFormedUriString("addMeetingResult.Result.AddMeeting.Url", UriKind.RelativeOrAbsolute), 24, @"[In AddMeeting]Url: The absolute URL of the meeting instance in the workspace, with an indicator of the instance in the absolute URL query section."); string updatedMeetingTitle = TestSuiteBase.GetUniqueMeetingTitle(); string updatedLocation = TestSuiteBase.GetUniqueMeetingLocation(); SoapResult <Null> updateMeetingResult = this.meetsAdapter.UpdateMeeting(uid, 1, null, updatedMeetingTitle, updatedLocation, DateTime.Now.AddHours(1), DateTime.Now.AddHours(2), null); Site.Assert.IsNull(updateMeetingResult.Exception, "UpdateMeeting should succeed"); // Remove the meeting. SoapResult <Null> removeMeetingResult = this.meetsAdapter.RemoveMeeting(null, uid, 1, null, null); Site.Assert.IsNull(removeMeetingResult.Exception, "RemoveMeeting should succeed"); // Get workspace status to query the meeting information. SoapResult <GetMeetingsInformationResponseGetMeetingsInformationResult> getMeetingsInformationResult = this.meetsAdapter.GetMeetingsInformation(MeetingInfoTypes.QueryOthers, null); Site.Assert.IsNull(getMeetingsInformationResult.Exception, "GetMeetingsInformation should succeed"); // Restore the removed meeting. SoapResult <Null> restoreMeetingResult = this.meetsAdapter.RestoreMeeting(uid); Site.Assert.IsNull(restoreMeetingResult.Exception, "RestoreMeeting should succeed"); // Get workspace status again to query the meeting information. SoapResult <GetMeetingsInformationResponseGetMeetingsInformationResult> getMeetingsInformationAgainResult = this.meetsAdapter.GetMeetingsInformation(MeetingInfoTypes.QueryOthers, null); Site.Assert.IsNull(getMeetingsInformationAgainResult.Exception, "GetMeetingsInformation should succeed"); // Clean up the SUT this.meetsAdapter.Url = createWorkspaceResult.Result.CreateWorkspace.Url + Common.GetConfigurationPropertyValue("EntryUrl", this.Site); SoapResult <Null> deleteResult = this.meetsAdapter.DeleteWorkspace(); Site.Assert.IsNull(deleteResult.Exception, "DeleteWorkspace should succeed"); }
public void MSMEETS_S02_TC12_AddMeetingWithExistingUID() { string uid = Guid.NewGuid().ToString(); // Create a new workspace. string workspaceTitle = TestSuiteBase.GetUniqueWorkspaceTitle(); SoapResult <CreateWorkspaceResponseCreateWorkspaceResult> createWorkspaceResult = this.meetsAdapter.CreateWorkspace(workspaceTitle, null, null, null); Site.Assert.IsNull(createWorkspaceResult.Exception, "Create workspace should succeed"); // Add a meeting in the workspace. this.meetsAdapter.Url = createWorkspaceResult.Result.CreateWorkspace.Url + Common.GetConfigurationPropertyValue("EntryUrl", this.Site); string organizerEmail = Common.GetConfigurationPropertyValue("OrganizerEmail", this.Site); string meetingTitle = TestSuiteBase.GetUniqueMeetingTitle(); string meetingLocation = TestSuiteBase.GetUniqueMeetingLocation(); SoapResult <AddMeetingResponseAddMeetingResult> addMeetingResult = this.meetsAdapter.AddMeeting(organizerEmail, uid, null, DateTime.Now, meetingTitle, meetingLocation, DateTime.Now, DateTime.Now.AddHours(1), false); Site.Assert.IsNull(addMeetingResult.Exception, "AddMeeting should succeed"); SoapResult <GetMeetingsInformationResponseGetMeetingsInformationResult> getMeetingsInformationResult = this.meetsAdapter.GetMeetingsInformation(MeetingInfoTypes.QueryOthers, null); Site.Assert.IsNull(getMeetingsInformationResult.Exception, "GetMeetingsInformation should succeed"); string orginalMeetingCount = getMeetingsInformationResult.Result.MeetingsInformation.WorkspaceStatus.MeetingCount; string updatedMeetingTitle = TestSuiteBase.GetUniqueMeetingTitle(); string updatedLocation = TestSuiteBase.GetUniqueMeetingLocation(); addMeetingResult = this.meetsAdapter.AddMeeting(organizerEmail, uid, null, DateTime.Now, updatedMeetingTitle, updatedLocation, DateTime.Now, DateTime.Now.AddHours(1), false); Site.Assert.IsNull(addMeetingResult.Exception, "AddMeeting should succeed"); // Get workspace status to query the meeting information. getMeetingsInformationResult = this.meetsAdapter.GetMeetingsInformation(MeetingInfoTypes.QueryOthers, null); Site.Assert.IsNull(getMeetingsInformationResult.Exception, "GetMeetingsInformation should succeed"); string meetingCount = getMeetingsInformationResult.Result.MeetingsInformation.WorkspaceStatus.MeetingCount; // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-MEETS_R531"); // Verify MS-VERSS requirement: MS-MEETS_R531 // Call AddMeeting for twice and using the same UID, if the meeting count is not changed this requirement can be captured directly. Site.CaptureRequirementIfAreEqual <string>( orginalMeetingCount, meetingCount, 531, @"[In AddMeeting]If one meeting with this UID exists, the operation will update the content of this meeting just as UpdateMeeting operation (section 3.1.4.11) does."); // Clean up the SUT this.meetsAdapter.Url = createWorkspaceResult.Result.CreateWorkspace.Url + Common.GetConfigurationPropertyValue("EntryUrl", this.Site); SoapResult <Null> deleteResult = this.meetsAdapter.DeleteWorkspace(); Site.Assert.IsNull(deleteResult.Exception, "DeleteWorkspace should succeed"); }
public void MSMEETS_S02_TC10_RemoveMeetingWithoutOptionalParameters() { string uid = Guid.NewGuid().ToString(); // Create a new workspace. string workspaceTitle = TestSuiteBase.GetUniqueWorkspaceTitle(); SoapResult <CreateWorkspaceResponseCreateWorkspaceResult> createWorkspaceResult = this.meetsAdapter.CreateWorkspace(workspaceTitle, null, null, null); Site.Assert.IsNull(createWorkspaceResult.Exception, "Create workspace should succeed"); // Add a meeting in the workspace. this.meetsAdapter.Url = createWorkspaceResult.Result.CreateWorkspace.Url + Common.GetConfigurationPropertyValue("EntryUrl", this.Site); SoapResult <AddMeetingResponseAddMeetingResult> addMeetingResult = this.meetsAdapter.AddMeeting(Common.GetConfigurationPropertyValue("OrganizerEmail", this.Site), uid, null, null, TestSuiteBase.GetUniqueMeetingTitle(), TestSuiteBase.GetUniqueMeetingLocation(), DateTime.Now, DateTime.Now.AddHours(1), null); Site.Assert.IsNull(addMeetingResult.Exception, "AddMeeting should succeed"); // Remove the meeting with all parameters specified. SoapResult <Null> removeMeetingResult = this.meetsAdapter.RemoveMeeting(null, uid, null, null, null); Site.Assert.IsNull(removeMeetingResult.Exception, "RemoveMeeting should succeed"); // Restore a meeting in the workspace. SoapResult <Null> restoreMeetingResult = this.meetsAdapter.RestoreMeeting(uid); Site.Assert.IsNull(removeMeetingResult.Exception, "Restore should succeed"); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-MEETS_R259"); // Verify MS-VERSS requirement: MS-MEETS_R259 Site.CaptureRequirement( 259, @"[In RestoreMeeting]The RestoreMeeting operation restores a previously deleted meeting to a workspace."); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-MEETS_R263"); // Verify MS-VERSS requirement: MS-MEETS_R263 Site.CaptureRequirement( 263, @"[In RestoreMeeting]This operation [RestoreMeeting]undoes a previous action [previously deleted meeting]."); // Clean up the SUT. this.meetsAdapter.Url = createWorkspaceResult.Result.CreateWorkspace.Url + Common.GetConfigurationPropertyValue("EntryUrl", this.Site); SoapResult <Null> deleteResult = this.meetsAdapter.DeleteWorkspace(); Site.Assert.IsNull(deleteResult.Exception, "DeleteWorkspace should succeed"); }
public void MSMEETS_S02_TC06_AddMeetingWithoutOptionalParameters() { // Create a new workspace. string workspaceTitle = TestSuiteBase.GetUniqueWorkspaceTitle(); SoapResult <CreateWorkspaceResponseCreateWorkspaceResult> createWorkspaceResult = this.meetsAdapter.CreateWorkspace(workspaceTitle, null, null, null); Site.Assert.IsNull(createWorkspaceResult.Exception, "Create workspace should succeed"); // Add a meeting without optional parameters. this.meetsAdapter.Url = createWorkspaceResult.Result.CreateWorkspace.Url + Common.GetConfigurationPropertyValue("EntryUrl", this.Site); SoapResult <AddMeetingResponseAddMeetingResult> addMeetingResult = this.meetsAdapter.AddMeeting(null, Guid.NewGuid().ToString(), null, null, null, null, DateTime.Now, DateTime.Now.AddHours(1), null); Site.Assert.IsNull(addMeetingResult.Exception, "AddMeeting should succeed"); // Clean up the SUT. this.meetsAdapter.Url = createWorkspaceResult.Result.CreateWorkspace.Url + Common.GetConfigurationPropertyValue("EntryUrl", this.Site); SoapResult <Null> deleteResult = this.meetsAdapter.DeleteWorkspace(); Site.Assert.IsNull(deleteResult.Exception, "DeleteWorkspace should succeed"); }
public void MSMEETS_S03_TC02_MeetingFromICalInvalidUrlError() { // Set the Url to the default site, which is not workspace. this.meetsAdapter.Url = Common.GetConfigurationPropertyValue("TargetServiceUrl", this.Site); string icalendar = TestSuiteBase.GetICalendar(Guid.NewGuid().ToString(), false); // Send AddMeetingFromICal to a web site that is not a workspace. string organizerEmail = Common.GetConfigurationPropertyValue("OrganizerEmail", this.Site); SoapResult <AddMeetingFromICalResponseAddMeetingFromICalResult> addMeetingFromICalResult = this.meetsAdapter.AddMeetingFromICal(organizerEmail, icalendar); Site.Assert.IsNotNull(addMeetingFromICalResult.Exception, "AddMeetingFromICal operation failed."); // If the returned SOAP fault contains the error code "0x00000006", MS-MEETS_R88 can be verified. Site.CaptureRequirementIfAreEqual <string>( "0x00000006", addMeetingFromICalResult.GetErrorCode(), 88, @"[In AddMeetingFromICalResponse]If this operation [AddMeetingFromICal] is sent to a Web site that is not a meeting workspace, the response MUST be a SOAP fault with SOAP fault code ""0x00000006""."); SoapResult <UpdateMeetingFromICalResponseUpdateMeetingFromICalResult> updateMeetingFromICalResult = this.meetsAdapter.UpdateMeetingFromICal(icalendar, null); Site.Assert.IsNotNull(updateMeetingFromICalResult.Exception, "UpdateMeetingFromICal should fail."); // If the returned SOAP fault contains the error code "0x00000006", MS-MEETS_R380 can be verified. Site.CaptureRequirementIfAreEqual <string>( "0x00000006", updateMeetingFromICalResult.GetErrorCode(), 380, @"[In UpdateMeetingFromICalResponse]If this operation [UpdateMeetingFromICal] is sent to a web site that is not a meeting workspace, the response MUST be a SOAP fault with SOAP fault code ""0x00000006""."); // Send SetAttendeeResponseSoapIn to a website that is not a workspace. SoapResult <Null> setAttendeeResponseResult = this.meetsAdapter.SetAttendeeResponse(organizerEmail, null, Guid.NewGuid().ToString(), null, null, null, null); Site.Assert.IsNotNull(setAttendeeResponseResult.Exception, "SetAttendeeResponse operation failed."); // If server returns a SOAP fault, MS-MEETS_R297 can be verified. Site.CaptureRequirementIfIsNotNull( setAttendeeResponseResult.Exception, 297, @"[In SetAttendeeResponseResponse]The SetAttendeeResponseResponse element contains nothing other than standard SOAP faults if an error occurs."); }
public void MSMEETS_S03_TC03_UpdateMeetingFromICalError() { string workspaceTitle = TestSuiteBase.GetUniqueWorkspaceTitle(); SoapResult <CreateWorkspaceResponseCreateWorkspaceResult> createWorkspaceResult = this.meetsAdapter.CreateWorkspace(workspaceTitle, null, null, null); Site.Assert.IsNull(createWorkspaceResult.Exception, "Create workspace should succeed"); // Add a meeting to the workspace. this.meetsAdapter.Url = createWorkspaceResult.Result.CreateWorkspace.Url + Common.GetConfigurationPropertyValue("EntryUrl", this.Site); string organizerEmail = Common.GetConfigurationPropertyValue("OrganizerEmail", this.Site); SoapResult <AddMeetingFromICalResponseAddMeetingFromICalResult> addMeetingFromICalResult = this.meetsAdapter.AddMeetingFromICal(organizerEmail, TestSuiteBase.GetICalendar(Guid.NewGuid().ToString(), false)); Site.Assert.IsNull(addMeetingFromICalResult.Exception, "AddMeetingFromICal should succeed"); // Send UpdateMeetingFromICal to the workspace with icalText parameter set to empty. SoapResult <UpdateMeetingFromICalResponseUpdateMeetingFromICalResult> emptyICalResult = this.meetsAdapter.UpdateMeetingFromICal(string.Empty, null); // If the returned SOAP fault contains error code "0x00000005", MS-MEETS_R367, MS-MEETS_R378 can be verified. Site.CaptureRequirementIfAreEqual <string>( "0x00000005", emptyICalResult.GetErrorCode(), 367, @"[In UpdateMeetingFromICal]If this parameter [icalText] is an empty string, the response MUST be a SOAP fault with SOAP fault code ""0x00000005""."); Site.CaptureRequirementIfAreEqual <string>( "0x00000005", emptyICalResult.GetErrorCode(), 378, @"[In UpdateMeetingFromICalResponse]If the icalText value is empty, the protocol server returns a SOAP fault with SOAP fault code ""0x00000005""."); // Since UpdateMeetingFromICal operation failed in above steps and with SOAP fault code "0x00000005" returned, so MS-MEETS_R377 can be captured directly. Site.CaptureRequirement( 377, @"[In UpdateMeetingFromICalResponse]If the operation [UpdateMeetingFromICal]is not successful, this [UpdateMeetingFromICalResponse]represents a SOAP fault."); // Clean up the SUT. this.meetsAdapter.Url = createWorkspaceResult.Result.CreateWorkspace.Url + Common.GetConfigurationPropertyValue("EntryUrl", this.Site); SoapResult <Null> deleteResult = this.meetsAdapter.DeleteWorkspace(); Site.Assert.IsNull(deleteResult.Exception, "DeleteWorkspace should succeed"); }
public void MSMEETS_S03_TC05_SetAttendeeResponseForIgnoreUtcDateTimeOrganizerCriticalChange() { // Verify the production is Windows Share Point 3.0. if (Common.IsRequirementEnabled(4100, this.Site)) { string uid = Guid.NewGuid().ToString(); // Create a workspace on the server. string workspaceTitle = TestSuiteBase.GetUniqueWorkspaceTitle(); SoapResult <CreateWorkspaceResponseCreateWorkspaceResult> createWorkspaceResult = this.meetsAdapter.CreateWorkspace(workspaceTitle, null, null, null); Site.Assert.IsNull(createWorkspaceResult.Exception, "Create workspace should succeed"); // Add meeting from ICalendar. this.meetsAdapter.Url = createWorkspaceResult.Result.CreateWorkspace.Url + Common.GetConfigurationPropertyValue("EntryUrl", this.Site); string attendeeEmail = Common.GetConfigurationPropertyValue("AttendeeEmail", this.Site); string icalendar = TestSuiteBase.GetICalendar(uid, false, attendeeEmail); string organizerEmail = Common.GetConfigurationPropertyValue("OrganizerEmail", this.Site); SoapResult <AddMeetingFromICalResponseAddMeetingFromICalResult> addMeetingFromICalResult = this.meetsAdapter.AddMeetingFromICal(organizerEmail, icalendar); Site.Assert.IsNull(addMeetingFromICalResult.Exception, "AddMeetingFromICal should succeed"); // Update attendee response with different utcDateTimeOrganizerCriticalChange element. SoapResult <Null> setAttendeeResponsResult = this.meetsAdapter.SetAttendeeResponse(attendeeEmail, 0, uid, 0, DateTime.Now.AddHours(1), DateTime.Now.AddHours(2), AttendeeResponse.responseAccepted); Site.Assert.IsNull(setAttendeeResponsResult.Exception, "SetAttendeeResponse should succeed"); SoapResult <Null> setAttendeeResponsResultAgain = this.meetsAdapter.SetAttendeeResponse(attendeeEmail, 0, uid, 0, DateTime.Now.AddHours(2), DateTime.Now.AddHours(2), AttendeeResponse.responseAccepted); Site.Assert.IsNull(setAttendeeResponsResult.Exception, "SetAttendeeResponse should succeed"); // If input two different utcDateTimeOrganizerCriticalChange values, the returned responses are the same, MS-MEETS_R4100 can be verified. Site.CaptureRequirementIfAreEqual <Null>( setAttendeeResponsResult.Result, setAttendeeResponsResultAgain.Result, 4100, @"[In Appendix B: Product Behavior]For two different utcDateTimeOrganizerCriticalChange values, the implementation of the protocol server response will be same.(Windows SharePoint Service 3.0 follows this behavior)"); // Clean up the SUT. this.meetsAdapter.Url = createWorkspaceResult.Result.CreateWorkspace.Url + Common.GetConfigurationPropertyValue("EntryUrl", this.Site); SoapResult <Null> deleteResult = this.meetsAdapter.DeleteWorkspace(); Site.Assert.IsNull(deleteResult.Exception, "DeleteWorkspace should succeed"); } }
public void MSMEETS_S03_TC09_AddMeetingFromICalWithoutOptionalParameters() { string uid = Guid.NewGuid().ToString(); // Create a new workspace. string workspaceTitle = TestSuiteBase.GetUniqueWorkspaceTitle(); SoapResult <CreateWorkspaceResponseCreateWorkspaceResult> createWorkspaceResult = this.meetsAdapter.CreateWorkspace(workspaceTitle, null, null, null); Site.Assert.IsNull(createWorkspaceResult.Exception, "Create workspace should succeed"); // Add meeting from ICalendar without optional parameters. this.meetsAdapter.Url = createWorkspaceResult.Result.CreateWorkspace.Url + Common.GetConfigurationPropertyValue("EntryUrl", this.Site); string icalendar = TestSuiteBase.GetICalendar(uid, false); SoapResult <AddMeetingFromICalResponseAddMeetingFromICalResult> addMeetingFromICalResult = this.meetsAdapter.AddMeetingFromICal(null, icalendar); Site.Assert.IsNull(addMeetingFromICalResult.Exception, "AddMeetingFromICal should succeed"); // Clean up the SUT. this.meetsAdapter.Url = createWorkspaceResult.Result.CreateWorkspace.Url + Common.GetConfigurationPropertyValue("EntryUrl", this.Site); SoapResult <Null> deleteResult = this.meetsAdapter.DeleteWorkspace(); Site.Assert.IsNull(deleteResult.Exception, "DeleteWorkspace should succeed"); }
public void MSMEETS_S04_TC02_RecurringMeetingError() { // Create a workspace. string workspaceTitle = TestSuiteBase.GetUniqueWorkspaceTitle(); SoapResult <CreateWorkspaceResponseCreateWorkspaceResult> createWorkspaceResult = this.meetsAdapter.CreateWorkspace(workspaceTitle, null, null, null); Site.Assert.IsNull(createWorkspaceResult.Exception, "Create workspace should succeed"); // Add a single instance meeting in the workspace. this.meetsAdapter.Url = createWorkspaceResult.Result.CreateWorkspace.Url + Common.GetConfigurationPropertyValue("EntryUrl", this.Site); string organizerEmail = Common.GetConfigurationPropertyValue("OrganizerEmail", this.Site); string meetingTitle = TestSuiteBase.GetUniqueMeetingTitle(); string meetingLocation = TestSuiteBase.GetUniqueMeetingLocation(); SoapResult <AddMeetingResponseAddMeetingResult> addMeetingResult = this.meetsAdapter.AddMeeting(organizerEmail, Guid.NewGuid().ToString(), null, DateTime.Now, meetingTitle, meetingLocation, DateTime.Now, DateTime.Now.AddHours(1), false); Site.Assert.IsNull(addMeetingResult.Exception, "AddMeeting should succeed"); // Add a recurring meeting in the same workspace. string icalendar = TestSuiteBase.GetICalendar(Guid.NewGuid().ToString(), true); SoapResult <AddMeetingFromICalResponseAddMeetingFromICalResult> addMeetingFromICalResult = this.meetsAdapter.AddMeetingFromICal(organizerEmail, icalendar); // Add the log information. Site.Log.Add(Microsoft.Protocols.TestTools.LogEntryKind.Comment, "Verify MS-MEETS_R89: The response when a client tries to add a recurring meeting to a workspace is: {0}", addMeetingFromICalResult.Exception.Detail.InnerText); // If a SOAP fault with SOAP fault code "0x00000003" is returned, MS-MEETS_R89 is captured. Site.CaptureRequirementIfAreEqual <string>( "0x00000003", addMeetingFromICalResult.GetErrorCode(), 89, @"[In AddMeetingFromICalResponse]If the protocol client tries to add a recurring meeting to a workspace that already contains a meeting, the response MUST be a SOAP fault with SOAP fault code ""0x00000003""."); // Clean up the SUT. this.meetsAdapter.Url = createWorkspaceResult.Result.CreateWorkspace.Url + Common.GetConfigurationPropertyValue("EntryUrl", this.Site); SoapResult <Null> deleteResult = this.meetsAdapter.DeleteWorkspace(); Site.Assert.IsNull(deleteResult.Exception, "DeleteWorkspace should succeed"); }
public void MSMEETS_S04_TC01_RecurringMeetingOperations() { // Create 3 workspaces. string emptyWorkspaceTitle = TestSuiteBase.GetUniqueWorkspaceTitle(); SoapResult <CreateWorkspaceResponseCreateWorkspaceResult> createWorkspaceResult = this.meetsAdapter.CreateWorkspace(emptyWorkspaceTitle, null, null, null); Site.Assert.IsNull(createWorkspaceResult.Exception, "Create workspace should succeed"); string emptyWorkspaceUrl = createWorkspaceResult.Result.CreateWorkspace.Url; string singleWorkspaceTitle = TestSuiteBase.GetUniqueWorkspaceTitle(); createWorkspaceResult = this.meetsAdapter.CreateWorkspace(singleWorkspaceTitle, null, null, null); Site.Assert.IsNull(createWorkspaceResult.Exception, "Create workspace should succeed"); string singleMeetingWorkspaceUrl = createWorkspaceResult.Result.CreateWorkspace.Url; string recurringWorkspaceTitle = TestSuiteBase.GetUniqueWorkspaceTitle(); createWorkspaceResult = this.meetsAdapter.CreateWorkspace(recurringWorkspaceTitle, null, null, null); Site.Assert.IsNull(createWorkspaceResult.Exception, "Create workspace should succeed"); string recurringMeetingWorkspaceUrl = createWorkspaceResult.Result.CreateWorkspace.Url; // Add a single instance meeting in the single meeting workspace. this.meetsAdapter.Url = singleMeetingWorkspaceUrl + Common.GetConfigurationPropertyValue("EntryUrl", this.Site); string organizerEmail = Common.GetConfigurationPropertyValue("OrganizerEmail", this.Site); string meetingTitle = TestSuiteBase.GetUniqueMeetingTitle(); string meetingLocation = TestSuiteBase.GetUniqueMeetingLocation(); SoapResult <AddMeetingResponseAddMeetingResult> addMeeting = this.meetsAdapter.AddMeeting(organizerEmail, Guid.NewGuid().ToString(), null, DateTime.Now, meetingTitle, meetingLocation, DateTime.Now, DateTime.Now.AddHours(1), null); Site.Assert.IsNull(addMeeting.Exception, "AddMeeting should succeed"); // Add a recurring meeting in the recurring meeting workspace. this.meetsAdapter.Url = recurringMeetingWorkspaceUrl + Common.GetConfigurationPropertyValue("EntryUrl", this.Site); string icalendar = TestSuiteBase.GetICalendar(Guid.NewGuid().ToString(), true); SoapResult <AddMeetingFromICalResponseAddMeetingFromICalResult> addMeetingFromICalResult = this.meetsAdapter.AddMeetingFromICal(organizerEmail, icalendar); Site.Assert.IsNull(addMeetingFromICalResult.Exception, "AddMeetingFromICal should succeed"); // Send GetMeetingsInformation to the empty workspace. this.meetsAdapter.Url = emptyWorkspaceUrl + Common.GetConfigurationPropertyValue("EntryUrl", this.Site); SoapResult <GetMeetingsInformationResponseGetMeetingsInformationResult> emptyInfoResult = this.meetsAdapter.GetMeetingsInformation(MeetingInfoTypes.QueryOthers, null); Site.Assert.IsNull(emptyInfoResult.Exception, "GetMeetingsInformation should succeed"); Site.Assert.AreEqual <string>("0", emptyInfoResult.Result.MeetingsInformation.WorkspaceStatus.MeetingCount, "Workspace should not contain meeting instance."); // Send GetMeetingsInformation to the single meeting workspace. this.meetsAdapter.Url = singleMeetingWorkspaceUrl + Common.GetConfigurationPropertyValue("EntryUrl", this.Site); SoapResult <GetMeetingsInformationResponseGetMeetingsInformationResult> singleInfoResult = this.meetsAdapter.GetMeetingsInformation(MeetingInfoTypes.QueryOthers, null); Site.Assert.IsNull(singleInfoResult.Exception, "GetMeetingsInformation should succeed"); Site.Assert.AreEqual <string>("1", singleInfoResult.Result.MeetingsInformation.WorkspaceStatus.MeetingCount, "Workspace should contain only 1 meeting instance."); // Send GetMeetingsInformation to the recurring meeting workspace. this.meetsAdapter.Url = recurringMeetingWorkspaceUrl + Common.GetConfigurationPropertyValue("EntryUrl", this.Site); SoapResult <GetMeetingsInformationResponseGetMeetingsInformationResult> recurringInfoResult = this.meetsAdapter.GetMeetingsInformation(MeetingInfoTypes.QueryOthers, null); Site.Assert.IsNull(recurringInfoResult.Exception, "GetMeetingsInformation should succeed"); // If the MeetingCount that server returns is -1, MS-MEETS_R215 is verified. Site.CaptureRequirementIfAreEqual <string>( "-1", recurringInfoResult.Result.MeetingsInformation.WorkspaceStatus.MeetingCount, 215, @"[In GetMeetingsInformationResponse]This [MeetingCount]MUST be set to -1 if the meeting workspace subsite has a recurring meeting."); // Send GetMeetingWorkspaces to the parent web site. this.meetsAdapter.Url = Common.GetConfigurationPropertyValue("TargetServiceUrl", this.Site); // Get available workspace for non-recurring meeting, server should return the first and second workspaces. SoapResult <GetMeetingWorkspacesResponseGetMeetingWorkspacesResult> getMeetingWorkspacesResult = this.meetsAdapter.GetMeetingWorkspaces(false); Site.Assert.IsNull(getMeetingWorkspacesResult.Exception, "GetMeetingWorkspaces should succeed"); // If only empty workspaces and single instance workspaces are returned, MS-MEETS_R230 is verified. Site.CaptureRequirementIfAreEqual <int>( 2, getMeetingWorkspacesResult.Result.MeetingWorkspaces.Length, 230, @"[In GetMeetingWorkspaces][If the value [of recurring]is false], empty workspaces and single instance workspaces are returned."); // If only workspaces to which the protocol client can add meetings are returned, MS-MEETS_R224 is verified. Site.CaptureRequirementIfAreEqual <int>( 2, getMeetingWorkspacesResult.Result.MeetingWorkspaces.Length, 224, @"[In GetMeetingWorkspacesSoapOut]The protocol server MUST return only workspaces to which the protocol client can add meetings."); getMeetingWorkspacesResult = this.meetsAdapter.GetMeetingWorkspaces(null); Site.Assert.IsNull(getMeetingWorkspacesResult.Exception, "GetMeetingWorkspaces should succeed"); // If only empty workspaces and single instance workspaces are returned, MS-MEETS_R2311 is verified. Site.CaptureRequirementIfAreEqual <int>( 2, getMeetingWorkspacesResult.Result.MeetingWorkspaces.Length, 2311, @"[In GetMeetingWorkspaces]If [the value of recurring is] not specified, the server will treat it as false."); // Get available workspace for recurring meeting, server should only return the first workspace getMeetingWorkspacesResult = this.meetsAdapter.GetMeetingWorkspaces(true); Site.Assert.IsNull(getMeetingWorkspacesResult.Exception, "GetMeetingWorkspaces should succeed"); // If only empty workspaces are returned, MS-MEETS_R231 is verified. Site.CaptureRequirementIfAreEqual <int>( 1, getMeetingWorkspacesResult.Result.MeetingWorkspaces.Length, 231, @"[In GetMeetingWorkspaces]If [the value of recurring is]true, only empty workspaces are returned."); // Clean up the SUT. this.meetsAdapter.Url = emptyWorkspaceUrl + Common.GetConfigurationPropertyValue("EntryUrl", this.Site); SoapResult <Null> deleteResult = this.meetsAdapter.DeleteWorkspace(); Site.Assert.IsNull(deleteResult.Exception, "DeleteWorkspace should succeed"); this.meetsAdapter.Url = singleMeetingWorkspaceUrl + Common.GetConfigurationPropertyValue("EntryUrl", this.Site); deleteResult = this.meetsAdapter.DeleteWorkspace(); Site.Assert.IsNull(deleteResult.Exception, "DeleteWorkspace should succeed"); this.meetsAdapter.Url = recurringMeetingWorkspaceUrl + Common.GetConfigurationPropertyValue("EntryUrl", this.Site); deleteResult = this.meetsAdapter.DeleteWorkspace(); Site.Assert.IsNull(deleteResult.Exception, "DeleteWorkspace should succeed"); }