Exemplo n.º 1
0
        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");
        }
Exemplo n.º 2
0
        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");
        }
Exemplo n.º 3
0
        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");
        }
Exemplo n.º 4
0
        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"".");
        }
Exemplo n.º 5
0
        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");
        }
Exemplo n.º 6
0
        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");
        }
Exemplo n.º 7
0
        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");
        }
Exemplo n.º 8
0
        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");
        }
Exemplo n.º 9
0
        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");
        }
Exemplo n.º 10
0
        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");
        }
Exemplo n.º 11
0
        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");
        }
Exemplo n.º 12
0
        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");
        }
Exemplo n.º 13
0
        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");
        }
Exemplo n.º 14
0
        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");
        }
Exemplo n.º 15
0
        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");
        }
Exemplo n.º 16
0
        public void TestCaseInitialize()
        {
            this.meetsAdapter = this.Site.GetAdapter <IMS_MEETSAdapter>();
            Common.CheckCommonProperties(this.Site, true);

            this.meetsAdapter.Url = Common.GetConfigurationPropertyValue("TargetServiceUrl", this.Site);

            this.sutControlAdapter = Site.GetAdapter <IMS_MEETSSUTControlAdapter>();

            // Make sure the test environment is clean before test case run.
            bool isClean = this.sutControlAdapter.PrepareTestEnvironment(this.meetsAdapter.Url);

            this.Site.Assert.IsTrue(isClean, "The specified site should not have meeting workspaces.");

            // Initialize the TestSuiteBase
            TestSuiteBase.Initialize(this.Site);
        }
Exemplo n.º 17
0
        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");
        }
Exemplo n.º 18
0
        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.");
        }
Exemplo n.º 19
0
        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");
        }
Exemplo n.º 20
0
        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");
            }
        }
Exemplo n.º 21
0
        /// <summary>
        /// Generate an iCalendar with specified UID and attendees.
        /// </summary>
        /// <param name="uid">The unique id</param>
        /// <param name="isRecurring">Specifies whether the calendar is a recurring calendar</param>
        /// <param name="attendees">The collection of attendees</param>
        /// <returns>A string contains the iCalendar</returns>
        public static string GetICalendar(string uid, bool isRecurring, params string[] attendees)
        {
            // iCalendar Tag  DTSTAMP specifies the date/time that the instance of the iCalendar object was created.
            // iCalendar Tag  DESCRIPTION specifies the description of the meeting.
            // iCalendar Tag  LOCATION defines the intended venue for the meeting.
            // iCalendar Tag  SUMMARY defines a short summary or subject for the meeting.
            // iCalendar Tag  DTSTART specifies when the meeting begins.
            string meetingTitle    = TestSuiteBase.GetUniqueMeetingTitle();
            string meetingLocation = TestSuiteBase.GetUniqueMeetingLocation();
            string icalTemplate    = "BEGIN:VCALENDAR\n"
                                     + "BEGIN:VEVENT\n"
                                     + "{0}"
                                     + "DTSTAMP:20090314T143000Z\n"
                                     + "DESCRIPTION:" + meetingTitle + "\n"
                                     + "SUMMARY:" + meetingTitle + "\n"
                                     + "DTSTART;TZID=US-Eastern:19970902T090000\n"
                                     + "LOCATION:" + meetingLocation + "\n"
                                     + "END:VEVENT\n"
                                     + "END:VCALENDAR\n";

            StringBuilder stringBuilder = new StringBuilder();

            // iCalendar Tag  UID specifies an unique UID for the meeting.
            stringBuilder.AppendLine(string.Format("UID:{0}", uid));
            foreach (string attendee in attendees)
            {
                // iCalendar Tag  ATTENDEE specifies attendees of the meeting.
                stringBuilder.AppendLine(string.Format("ATTENDEE:MAILTO:{0}", attendee));
            }

            if (isRecurring)
            {
                // iCalendar Tag  RRULE specifies the recurring rule of this meeting.
                stringBuilder.AppendLine("RRULE:FREQ=DAILY;COUNT=5");
            }

            string icalendar = string.Format(icalTemplate, stringBuilder.ToString());

            return(icalendar);
        }
Exemplo n.º 22
0
        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");
        }
Exemplo n.º 23
0
        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");
        }
Exemplo n.º 24
0
        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");
        }