public void MSASCMD_S05_TC04_FolderUpdate_Status5()
        {
            // Call method FolderCreate to create a new folder as a child folder of the specified parent folder.
            FolderCreateResponse folderCreateResponse = this.GetFolderCreateResponse(this.LastFolderSyncKey, (byte)FolderType.UserCreatedMail, Common.GenerateResourceName(Site, "FolderCreate"), "0");

            TestSuiteBase.RecordCaseRelativeFolders(this.User1Information, folderCreateResponse.ResponseData.ServerId);

            // Call method FolderUpdate to move the folder to a nonexistent parent folder.
            FolderUpdateRequest  folderUpdateRequest  = Common.CreateFolderUpdateRequest(folderCreateResponse.ResponseData.SyncKey, folderCreateResponse.ResponseData.ServerId, Common.GenerateResourceName(Site, "FolderUpdate"), "InvalidParentId");
            FolderUpdateResponse folderUpdateResponse = this.CMDAdapter.FolderUpdate(folderUpdateRequest);

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASCMD_R4108");

            // If calls method FolderUpdate to move the folder to a nonexistent parent folder, server will return status 5.
            // Verify MS-ASCMD requirement: MS-ASCMD_R4108
            Site.CaptureRequirementIfAreEqual <int>(
                5,
                int.Parse(folderUpdateResponse.ResponseData.Status),
                4108,
                @"[In Status(FolderUpdate)] [When the scope is] Item, [the meaning of the status value] 5 [is] The specified parent folder was not found.");

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASCMD_R4109");

            // If calls method FolderUpdate to move the folder to a nonexistent parent folder, server will return status 5.
            // Verify MS-ASCMD requirement: MS-ASCMD_R4109
            Site.CaptureRequirementIfAreEqual <int>(
                5,
                int.Parse(folderUpdateResponse.ResponseData.Status),
                4109,
                @"[In Status(FolderUpdate)] [When the scope is Item], [the cause of the status value 5 is] Client specified a nonexistent folder in a FolderUpdate command request.");
        }
        public void MSASCMD_S05_TC03_FolderUpdate_Status4()
        {
            // Call method FolderUpdate to rename a non existent folder.
            FolderUpdateRequest  folderUpdateRequest  = Common.CreateFolderUpdateRequest(this.LastFolderSyncKey, "InvalidServerId", Common.GenerateResourceName(Site, "FolderUpdate"), "0");
            FolderUpdateResponse folderUpdateResponse = this.CMDAdapter.FolderUpdate(folderUpdateRequest);

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASCMD_R4105");

            // If the specified folder is a non existent folder when call FolderUpdate command, server will return status 4.
            // Verify MS-ASCMD requirement: MS-ASCMD_R4105
            Site.CaptureRequirementIfAreEqual <int>(
                4,
                int.Parse(folderUpdateResponse.ResponseData.Status),
                4105,
                @"[In Status(FolderUpdate)] [When the scope is] Item, [the meaning of the status value] 4 [is] The specified folder does not exist.");

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASCMD_R4106");

            // If the specified folder is a non existent folder when call FolderUpdate command, server will return status 4.
            // Verify MS-ASCMD requirement: MS-ASCMD_R4106
            Site.CaptureRequirementIfAreEqual <int>(
                4,
                int.Parse(folderUpdateResponse.ResponseData.Status),
                4106,
                @"[In Status(FolderUpdate)] [When the scope is Item], [the cause of the status value 4 is] Client specified a nonexistent folder in a FolderUpdate command request.");
        }
        public void MSASCMD_S05_TC07_FolderUpdate_Moves()
        {
            #region Call method FolderCreate to create a new folder as a child folder of the mailbox Root folder.
            string folderName = Common.GenerateResourceName(Site, "FolderCreate");
            FolderCreateRequest  folderCreateRequest  = Common.CreateFolderCreateRequest(this.LastFolderSyncKey, (byte)FolderType.UserCreatedMail, folderName, "0");
            FolderCreateResponse folderCreateResponse = this.CMDAdapter.FolderCreate(folderCreateRequest);
            string folderServerId1 = folderCreateResponse.ResponseData.ServerId;
            TestSuiteBase.RecordCaseRelativeFolders(this.User1Information, folderCreateResponse.ResponseData.ServerId);
            #endregion

            #region Call method FolderUpdate to move the new created folder from the mailbox Root folder to SentItems folder on the server.
            FolderUpdateRequest  folderUpdateRequest  = Common.CreateFolderUpdateRequest(folderCreateResponse.ResponseData.SyncKey, folderServerId1, folderName, ((byte)FolderType.SentItems).ToString());
            FolderUpdateResponse folderUpdateResponse = this.CMDAdapter.FolderUpdate(folderUpdateRequest);
            Site.Assert.AreEqual <int>(1, int.Parse(folderUpdateResponse.ResponseData.Status), "Server should return status 1 to indicate FolderUpdate command success.");
            #endregion

            #region Call method FolderSync to synchronize the collection hierarchy.
            FolderSyncResponse folderSyncResponse = this.FolderSync();
            bool isFolderMoved = false;
            foreach (FolderSyncChangesAdd add in folderSyncResponse.ResponseData.Changes.Add)
            {
                if ((add.ServerId == folderServerId1) && (add.ParentId == ((byte)FolderType.SentItems).ToString()))
                {
                    isFolderMoved = true;
                    break;
                }
            }

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASCMD_R139");

            // Verify MS-ASCMD requirement: MS-ASCMD_R139
            Site.CaptureRequirementIfIsTrue(
                isFolderMoved,
                139,
                @"[In FolderUpdate] The FolderUpdate command moves a folder from one location to another on the server.");

            // Call method FolderCreate to create another new folder which its name is same with above step as a child folder of the mailbox Root folder.
            folderCreateRequest  = Common.CreateFolderCreateRequest(folderSyncResponse.ResponseData.SyncKey, (byte)FolderType.UserCreatedMail, folderName, "0");
            folderCreateResponse = this.CMDAdapter.FolderCreate(folderCreateRequest);
            TestSuiteBase.RecordCaseRelativeFolders(this.User1Information, folderCreateResponse.ResponseData.ServerId);

            // Call method FolderUpdate to move the newest created folder in mailbox Root folder from mailbox Root folder to SentItems folder on the server.
            folderUpdateRequest  = Common.CreateFolderUpdateRequest(folderCreateResponse.ResponseData.SyncKey, folderCreateResponse.ResponseData.ServerId, folderName, ((byte)FolderType.SentItems).ToString());
            folderUpdateResponse = this.CMDAdapter.FolderUpdate(folderUpdateRequest);

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASCMD_R5438");

            // Verify MS-ASCMD requirement: MS-ASCMD_R5438
            Site.CaptureRequirementIfAreEqual <int>(
                2,
                int.Parse(folderUpdateResponse.ResponseData.Status),
                5438,
                @"[In Status(FolderUpdate)] [When the scope is Item], [the cause of the status value 2 is] A folder with that name already exists [or the specified folder is a special folder, such as the Inbox, Outbox, Contacts, or Drafts folders. Special folders cannot be updated].");
            #endregion
        }
Ejemplo n.º 4
0
        /// <summary>
        /// Moves a folder from one location to another on the server or renames a folder.
        /// </summary>
        /// <param name="request">A FolderUpdateRequest object that contains the request information.</param>
        /// <returns>FolderUpdate command response</returns>
        public FolderUpdateResponse FolderUpdate(FolderUpdateRequest request)
        {
            FolderUpdateResponse response = this.activeSyncClient.FolderUpdate(request);

            this.VerifyTransportRequirements();
            this.VerifyWBXMLCapture(CommandName.FolderUpdate, response);
            this.VerifyFolderUpdateCommand(response);
            return(response);
        }
        public void MSASCMD_S05_TC01_FolderUpdate_Success()
        {
            #region Call method FolderCreate command to create a new folder as a child folder of the specified parent folder.
            FolderCreateResponse folderCreateResponse = this.GetFolderCreateResponse(this.LastFolderSyncKey, (byte)FolderType.UserCreatedMail, Common.GenerateResourceName(Site, "FolderCreate"), "0");
            Site.Assert.AreEqual <int>(1, int.Parse(folderCreateResponse.ResponseData.Status), "The server should return a status code 1 in the FolderCreate command response to indicate success.");
            TestSuiteBase.RecordCaseRelativeFolders(this.User1Information, folderCreateResponse.ResponseData.ServerId);
            #endregion

            #region Call method FolderUpdate to rename a folder.
            string updateFolderName = Common.GenerateResourceName(Site, "FolderUpdate");
            FolderUpdateRequest  folderUpdateRequest  = Common.CreateFolderUpdateRequest(folderCreateResponse.ResponseData.SyncKey, folderCreateResponse.ResponseData.ServerId, updateFolderName, "0");
            FolderUpdateResponse folderUpdateResponse = this.CMDAdapter.FolderUpdate(folderUpdateRequest);
            #endregion

            #region Call method FolderSync to synchronize the collection hierarchy.
            FolderSyncResponse folderSyncResponse = this.FolderSync();
            bool isFolderRenamed = false;
            foreach (FolderSyncChangesAdd add in folderSyncResponse.ResponseData.Changes.Add)
            {
                if ((add.DisplayName == updateFolderName) && (add.ServerId == folderCreateResponse.ResponseData.ServerId))
                {
                    isFolderRenamed = true;
                    break;
                }
            }

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASCMD_R140");

            // Verify MS-ASCMD requirement: MS-ASCMD_R140
            Site.CaptureRequirementIfIsTrue(
                isFolderRenamed,
                140,
                @"[In FolderUpdate] The [FolderUpdate] command is also used to rename a folder.");

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASCMD_R4100");

            // Verify MS-ASCMD requirement: MS-ASCMD_R4100
            Site.CaptureRequirementIfAreEqual <string>(
                "1",
                folderUpdateResponse.ResponseData.Status,
                4100,
                @"[In Status(FolderUpdate)] [When the scope is Global], [the cause of the status value 1 is] Server successfully completed command.");

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASCMD_ R5784");

            // IF folder has been updated successfully, the server must send a synchronization key to the client in a response.
            Site.CaptureRequirementIfIsNotNull(
                folderUpdateResponse.ResponseData.SyncKey,
                5784,
                @"[In SyncKey(FolderCreate, FolderDelete, and FolderUpdate)] After a successful [FolderCreate command (section 2.2.2.2), FolderDelete command (section 2.2.2.3), or] FolderUpdate command (section 2.2.2.5), the server MUST send a synchronization key to the client in a response.");
            #endregion
        }
        public void MSASCMD_S05_TC02_FolderUpdate_Status2()
        {
            // Call method FolderUpdate to rename the Calendar folder.
            FolderUpdateRequest  folderUpdateRequest  = Common.CreateFolderUpdateRequest(this.LastFolderSyncKey, this.User1Information.CalendarCollectionId, "Notes", "0");
            FolderUpdateResponse folderUpdateResponse = this.CMDAdapter.FolderUpdate(folderUpdateRequest);

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASCMD_R4101");

            // When the special folder, such as the Inbox, Outbox, Contacts, or Drafts folders, be updated, server will return status 2.
            // Verify MS-ASCMD requirement: MS-ASCMD_R4101
            Site.CaptureRequirementIfAreEqual <int>(
                2,
                int.Parse(folderUpdateResponse.ResponseData.Status),
                4101,
                @"[In Status(FolderUpdate)] [When the scope is] Item, [the meaning of the status value] 2 [is] A folder with that name already exists or the specified folder is a special folder.");

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASCMD_R4102");

            // When the special folder, such as the Inbox, Outbox, Contacts, or Drafts folders, be updated, server will return status 2.
            // Verify MS-ASCMD requirement: MS-ASCMD_R4102
            Site.CaptureRequirementIfAreEqual <int>(
                2,
                int.Parse(folderUpdateResponse.ResponseData.Status),
                4102,
                @"[In Status(FolderUpdate)] [When the scope is Item], [the cause of the status value 2 is] [A folder with that name already exists or] the specified folder is a special folder, such as the Inbox, Outbox, Contacts, or Drafts folders. Special folders cannot be updated.");

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASCMD_R4096");

            // When the special folder, such as the Inbox, Outbox, Contacts, or Drafts folders, be updated, server will return status 2.
            // Verify MS-ASCMD requirement: MS-ASCMD_R4096
            Site.CaptureRequirementIfAreEqual <int>(
                2,
                int.Parse(folderUpdateResponse.ResponseData.Status),
                4096,
                @"[In Status(FolderUpdate)] If the command fails, the Status element contains a code that indicates the type of failure.");

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASCMD_ R5786");

            // If the FolderUpdate command is not successful, the server must not return a SyncKey element.
            Site.CaptureRequirementIfIsNull(
                folderUpdateResponse.ResponseData.SyncKey,
                5786,
                @"[In SyncKey(FolderCreate, FolderDelete, and FolderUpdate)] If the [FolderCreate command, FolderDelete command, or] FolderUpdate command is not successful, the server MUST NOT return a SyncKey element.");
        }
        public void MSASCMD_S05_TC08_FolderUpdate_Status3()
        {
            Site.Assume.AreNotEqual <string>("12.1", Common.GetConfigurationPropertyValue("ActiveSyncProtocolVersion", this.Site), "The recipient information cache is not supported when the MS-ASProtocolVersion header is set to 12.1. MS-ASProtocolVersion header value is determined using Common PTFConfig property named ActiveSyncProtocolVersion.");

            // Call method FolderUpdate attempting to update a recipient information cache
            FolderUpdateRequest  folderUpdateRequest  = Common.CreateFolderUpdateRequest(this.LastFolderSyncKey, "RI", Common.GenerateResourceName(Site, "FolderUpdate"), User1Information.RecipientInformationCacheCollectionId);
            FolderUpdateResponse folderUpdateResponse = this.CMDAdapter.FolderUpdate(folderUpdateRequest);

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "MS-ASCMD_R143");

            // Verify MS-ASCMD requirement: MS-ASCMD_R143
            Site.CaptureRequirementIfAreEqual <int>(
                3,
                int.Parse(folderUpdateResponse.ResponseData.Status),
                143,
                @"[In FolderUpdate] Attempting to update a recipient information cache using this [FolderUpdate] command results in a Status element (section 2.2.3.162.5) value of 3.");

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "MS-ASCMD_R4103");

            // Verify MS-ASCMD requirement: MS-ASCMD_R4103
            Site.CaptureRequirementIfAreEqual <int>(
                3,
                int.Parse(folderUpdateResponse.ResponseData.Status),
                4103,
                @"[In Status(FolderUpdate)] [When the scope is] Item, [the meaning of the status value] 3 [is] The specified folder is the Recipient information folder, which cannot be updated by the client.");

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "MS-ASCMD_R4104");

            // Verify MS-ASCMD requirement: MS-ASCMD_R4104
            Site.CaptureRequirementIfAreEqual <int>(
                3,
                int.Parse(folderUpdateResponse.ResponseData.Status),
                4104,
                @"[In Status(FolderUpdate)] [When the scope is Item], [the cause of the status value 3 is] The client specified the Recipient information folder, which is a special folder. Special folders cannot be updated.");

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "MS-ASCMD_R141");

            // Since server return status 3, the FolderUpdate command cannot be used to update a recipient information cache.
            // Verify MS-ASCMD requirement: MS-ASCMD_R141
            Site.CaptureRequirement(
                141,
                @"[In FolderUpdate] The FolderUpdate command cannot be used to update a recipient information cache.");
        }
        public void MSASCMD_S05_TC06_FolderUpdate_Status10()
        {
            #region Call method FolderCreate to create a new folder as a child folder of the specified parent folder.
            FolderCreateResponse folderCreateResponse = this.GetFolderCreateResponse(this.LastFolderSyncKey, (byte)FolderType.UserCreatedMail, Common.GenerateResourceName(Site, "FolderCreate"), "0");
            Site.Assert.AreEqual <int>(1, int.Parse(folderCreateResponse.ResponseData.Status), "The server should return a status code 1 in the FolderCreate command response to indicate success.");
            TestSuiteBase.RecordCaseRelativeFolders(this.User1Information, folderCreateResponse.ResponseData.ServerId);
            #endregion

            #region Call method FolderUpdate to rename the created folder without SyncKey element.
            FolderUpdateRequest  folderUpdateRequest  = Common.CreateFolderUpdateRequest(null, folderCreateResponse.ResponseData.ServerId, Common.GenerateResourceName(Site, "FolderUpdate"), "0");
            FolderUpdateResponse folderUpdateResponse = this.CMDAdapter.FolderUpdate(folderUpdateRequest);

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASCMD_R3102");

            // The server should return a status code 10 in the FolderUpdate command response to indicate the client sent FolderUpdate request contains a semantic error.
            // Verify MS-ASCMD requirement: MS-ASCMD_R3102
            Site.CaptureRequirementIfAreEqual <int>(
                10,
                int.Parse(folderUpdateResponse.ResponseData.Status),
                3102,
                @"[In FolderUpdate] Including the Status element in a FolderUpdate request results in a Status element value of 10 being returned in the response.");

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASCMD_R4123");

            // The server should return a status code 10 in the FolderUpdate command response to indicate the client sent FolderUpdate request contains a semantic error.
            // Verify MS-ASCMD requirement: MS-ASCMD_R4123
            Site.CaptureRequirementIfAreEqual <int>(
                10,
                int.Parse(folderUpdateResponse.ResponseData.Status),
                4123,
                @"[In Status(FolderUpdate)] [When the scope is Global], [the cause of the status value 10 is] The client sent a FolderUpdate command request that contains a semantic error.");

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASCMD_R4568");

            // The server should return a status code 10 in the FolderUpdate command response to indicate the client sent FolderUpdate request does not contain SyncKey element.
            // Verify MS-ASCMD requirement: MS-ASCMD_R4568
            Site.CaptureRequirementIfAreEqual <int>(
                10,
                int.Parse(folderUpdateResponse.ResponseData.Status),
                4568,
                @"[In SyncKey(FolderCreate, FolderDelete, and FolderUpdate)] The server returns a Status element (section 2.2.3.162.5) value of 10 if the SyncKey element is not included in a FolderUpdate command request.");
            #endregion
        }
        public void MSASCMD_S05_TC05_FolderUpdate_Status9()
        {
            #region Call method FolderCreate to create a new folder as a child folder of the specified parent folder.
            FolderCreateResponse folderCreateResponse = this.GetFolderCreateResponse(this.LastFolderSyncKey, (byte)FolderType.UserCreatedMail, Common.GenerateResourceName(Site, "FolderCreate"), "0");
            Site.Assert.AreEqual <int>(1, int.Parse(folderCreateResponse.ResponseData.Status), "The server should return a status code 1 in the FolderCreate command response to indicate success.");
            TestSuiteBase.RecordCaseRelativeFolders(this.User1Information, folderCreateResponse.ResponseData.ServerId);
            #endregion

            #region Call method FolderUpdate to rename a folder with invalid synchronization key.
            FolderUpdateRequest  folderUpdateRequest  = Common.CreateFolderUpdateRequest("InvalidSyncKey", folderCreateResponse.ResponseData.ServerId, Common.GenerateResourceName(Site, "FolderUpdate"), "0");
            FolderUpdateResponse folderUpdateResponse = this.CMDAdapter.FolderUpdate(folderUpdateRequest);

            // Add the debug information
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASCMD_R4120");

            // Verify MS-ASCMD requirement: MS-ASCMD_R4120
            Site.CaptureRequirementIfAreEqual <int>(
                9,
                int.Parse(folderUpdateResponse.ResponseData.Status),
                4120,
                @"[In Status(FolderUpdate)] [When the scope is Global], [the cause of the status value 9 is] The client sent a malformed or mismatched synchronization key, or the synchronization state is corrupted on the server.");
            #endregion
        }
Ejemplo n.º 10
0
        /// <summary>
        /// This method is used to verify the FolderUpdate response related requirements.
        /// </summary>
        /// <param name="folderUpdateResponse">FolderUpdate command response.</param>
        private void VerifyFolderUpdateCommand(FolderUpdateResponse folderUpdateResponse)
        {
            Site.Assert.IsTrue(this.activeSyncClient.ValidationResult, "The schema validation result should be true.");
            Site.Assert.IsNotNull(folderUpdateResponse.ResponseData, "The FolderUpdate element should not be null.");

            // Add the debug information.
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASCMD_R3099");

            // If the schema validation result is true and FolderUpdate is not null, this requirement can be verified.
            Site.CaptureRequirement(
                3099,
                @"[In FolderUpdate] The FolderUpdate element is a required element in FolderUpdate command requests and FolderUpdate command responses that identifies the body of the HTTP POST as containing a FolderUpdate command (section 2.2.2.5).");

            // Add the debug information.
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASCMD_R1723");

            // If the schema validation result is true and FolderUpdate is not null, this requirement can be verified.
            Site.CaptureRequirement(
                1723,
                @"[In FolderUpdate] None [Element FolderUpdate in FolderUpdate command response has no parent element.]");

            // Add the debug information.
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASCMD_R1724");

            // If the schema validation result is true and FolderUpdate is not null, this requirement can be verified.
            Site.CaptureRequirement(
                1724,
                @"[In FolderUpdate] Element FolderUpdate in FolderUpdate command response, the child elements are SyncKey, Status (section 2.2.3.162.5).");

            // Add the debug information.
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASCMD_R1725");

            // If the schema validation result is true and FolderUpdate is not null, this requirement can be verified.
            Site.CaptureRequirement(
                1725,
                @"[In FolderUpdate] Element FolderUpdate in FolderUpdate command response, the data type is container.");

            // Add the debug information.
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASCMD_R1726");

            // If the schema validation result is true and FolderUpdate is not null, this requirement can be verified.
            Site.CaptureRequirement(
                1726,
                @"[In FolderUpdate] Element FolderUpdate in FolderUpdate command response, the number allowed is 1…1 (required).");

            this.VerifyContainerDataType();

            #region Capture code for SyncKey(FolderUpdate)
            if (folderUpdateResponse.ResponseData.SyncKey != null)
            {
                // Add the debug information.
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASCMD_R2819");

                // If the schema validation result is true and SyncKey(FolderUpdate) is not null, this requirement can be verified.
                Site.CaptureRequirement(
                    2819,
                    @"[In SyncKey(FolderUpdate)] Element SyncKey in FolderUpdate command response, the parent element is FolderUpdate.");

                // Add the debug information.
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASCMD_R2820");

                // If the schema validation result is true and SyncKey(FolderUpdate) is not null, this requirement can be verified.
                Site.CaptureRequirement(
                    2820,
                    @"[In SyncKey(FolderUpdate)] None [Element SyncKey in FolderUpdate command response has no child element.]");

                // Add the debug information.
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASCMD_R2821");

                // If the schema validation result is true and SyncKey(FolderUpdate) is not null, this requirement can be verified.
                Site.CaptureRequirement(
                    2821,
                    @"[In SyncKey(FolderUpdate)] Element SyncKey in FolderUpdate command response, the data type is string.");

                // Add the debug information.
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASCMD_R2822");

                // If the schema validation result is true and SyncKey(FolderUpdate) is not null, this requirement can be verified.
                Site.CaptureRequirement(
                    2822,
                    @"[In SyncKey(FolderUpdate)] Element SyncKey in FolderUpdate command response, the number allowed is 0…1 (optional).");

                this.VerifyStringDataType();
            }
            #endregion

            #region Capture code for Status(FolderUpdate)

            // Add the debug information.
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASCMD_R2707");

            // If the schema validation result is true, this requirement can be verified.
            Site.CaptureRequirement(
                2707,
                @"[In Status(FolderUpdate)] Element Status in FolderUpdate command response,the parent element is FolderUpdate (section 2.2.3.72).");

            // Add the debug information.
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASCMD_R2708");

            // If the schema validation result is true, this requirement can be verified.
            Site.CaptureRequirement(
                2708,
                @"[In Status(FolderUpdate)] None [Element Status in FolderUpdate command response has no child element.]");

            // Add the debug information.
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASCMD_R2710");

            // If the schema validation result is true, this requirement can be verified.
            Site.CaptureRequirement(
                2710,
                @"[In Status(FolderUpdate)] Element Status in FolderUpdate command response, the number allowed is 1…1 (required).");

            Common.VerifyActualValues("Status(FolderUpdate)", AdapterHelper.ValidStatus(new string[] { "1", "2", "3", "4", "5", "6", "9", "10", "11" }), folderUpdateResponse.ResponseData.Status.ToString(), this.Site);

            // Add the debug information.
            Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASCMD_R4097");

            // Verify MS-ASCMD requirement: MS-ASCMD_R4097
            // If above Common.VerifyActualValues method is not failed, this requirement can be verified.
            Site.CaptureRequirement(
                4097,
                @"[In Status(FolderUpdate)] The following table lists the status codes [1,2,3,4,5,6,9,10,11] for the FolderUpdate command (section 2.2.2.5). For information about the scope of the status value and for status values common to all ActiveSync commands, see section 2.2.4.");

            this.VerifyIntegerDataType();

            #endregion
        }