public void MSASCMD_S20_TC01_ValidateCert_Success() { #region Switch to User9 mail account, the inbox had received a S/MIME mail. this.SwitchUser(this.User9Information); #endregion #region Call method Sync to synchronize changes of Inbox folder in User9's mailbox between the client and the server, and get the body content of the email item. string emailSubject = Common.GetConfigurationPropertyValue("MIMEMailSubject", this.Site); Request.BodyPreference bodyPreference = new Request.BodyPreference { AllOrNone = false, AllOrNoneSpecified = true, TruncationSize = 4294967295, TruncationSizeSpecified = true, Type = 4 }; Request.Options option = new Request.Options { Items = new object[] { (byte)2, bodyPreference, (byte)8 }, ItemsElementName = new Request.ItemsChoiceType1[] { Request.ItemsChoiceType1.MIMESupport, Request.ItemsChoiceType1.BodyPreference, Request.ItemsChoiceType1.MIMETruncation } }; SyncResponse syncResponse = this.CheckEmail(this.User9Information.InboxCollectionId, emailSubject, new Request.Options[] { option }); Response.Body mailBody = null; Response.SyncCollectionsCollectionCommandsAddApplicationData applicationData = TestSuiteBase.GetAddApplicationData(syncResponse, Response.ItemsChoiceType8.Subject1, emailSubject); for (int i = 0; i < applicationData.ItemsElementName.Length; i++) { if (applicationData.ItemsElementName[i] == Response.ItemsChoiceType8.Body) { mailBody = applicationData.Items[i] as Response.Body; break; } } Site.Assert.IsNotNull(mailBody, "The body of the received email should not be null."); string specifiedString = "MIME-Version: 1.0"; string body = mailBody.Data.Substring( mailBody.Data.IndexOf(specifiedString, StringComparison.CurrentCultureIgnoreCase) + specifiedString.Length); body = body.Replace("\r", string.Empty); body = body.Replace("\n", string.Empty); Request.ValidateCert validateCert = new Request.ValidateCert { CheckCrl = "1", Certificates = new byte[][] { System.Text.Encoding.Default.GetBytes(body) } }; ValidateCertRequest validateRequest = new ValidateCertRequest { RequestData = validateCert }; ValidateCertResponse validateResponse = this.CMDAdapter.ValidateCert(validateRequest); XmlNodeList status = this.GetValidateCertStatusCode(validateResponse); // Add the debug information Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASCMD_R4474"); // Verify MS-ASCMD requirement: MS-ASCMD_R4474 Site.CaptureRequirementIfAreEqual <string>( "1", status[0].InnerText, 4474, @"[In Status(ValidateCert)] [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_R5387"); // Verify MS-ASCMD requirement: MS-ASCMD_R5387 Site.CaptureRequirementIfAreEqual <string>( "1", status[0].InnerText, 5387, @"[In Status(ValidateCert)] A value of 1 indicates success."); #endregion }