Microsoft.Protocols.TestSuites.MS_ASCNTC.TestSuiteBase.VerifyContactClassElements C# (CSharp) Method

VerifyContactClassElements() protected method

This method is used to verify the Contact class elements that returned from Sync, ItemOperations or Search command response.
protected VerifyContactClassElements ( object>.Dictionary contactProperties, Microsoft.Protocols.TestSuites.Common.DataStructures contact ) : void
contactProperties object>.Dictionary The contact properties.
contact Microsoft.Protocols.TestSuites.Common.DataStructures The contact item returned from server.
return void
        protected void VerifyContactClassElements(Dictionary<Request.ItemsChoiceType8, object> contactProperties, DataStructures.Contact contact)
        {
            // Add the debug information
            this.Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASCNTC_R97");

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R97
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.AccountName].ToString(),
                contact.AccountName,
                97,
                @"[In AccountName] The contacts2:AccountName element specifies the account name and/or number for the contact.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R107
            this.Site.CaptureRequirementIfAreEqual<DateTime?>(
                DateTime.Parse(contactProperties[Request.ItemsChoiceType8.Anniversary].ToString()),
                contact.Anniversary,
                107,
                @"[In Anniversary] The Anniversary element specifies the wedding anniversary date for the contact.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R112
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.AssistantName].ToString(),
                contact.AssistantName,
                112,
                @"[In AssistantName] The AssistantName element specifies the name of the contact's assistant.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R117
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.AssistantPhoneNumber].ToString(),
                contact.AssistantPhoneNumber,
                117,
                @"[In AssistantPhoneNumber] The AssistantPhoneNumber element specifies the phone number of the contact's assistant.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R122
            this.Site.CaptureRequirementIfAreEqual<DateTime?>(
                DateTime.Parse(contactProperties[Request.ItemsChoiceType8.Birthday].ToString()),
                contact.Birthday,
                122,
                @"[In Birthday] The Birthday element specifies the birth date of the contact.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R1120
            this.Site.CaptureRequirementIfAreEqual<string>(
                ((Request.Body)contactProperties[Request.ItemsChoiceType8.Body]).Data,
                contact.Body.Data,
                1120,
                @"[In Body (AirSyncBase Namespace)] The airsyncbase:Body element [is a container ([MS-ASDTYPE] section 2.2) element that] specifies the notes for the contact.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R130
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.BusinessAddressCity].ToString(),
                contact.BusinessAddressCity,
                130,
                @"[In BusinessAddressCity] The BusinessAddressCity element specifies the business city of the contact.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R135
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.BusinessAddressCountry].ToString(),
                contact.BusinessAddressCountry,
                135,
                @"[In BusinessAddressCountry] The BusinessAddressCountry element specifies the business country/region of the contact.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R140
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.BusinessAddressPostalCode].ToString(),
                contact.BusinessAddressPostalCode,
                140,
                @"[In BusinessAddressPostalCode] The BusinessAddressPostalCode element specifies the business postal code for the contact.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R143
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.BusinessAddressState].ToString(),
                contact.BusinessAddressState,
                143,
                @"[In BusinessAddressState] The BusinessAddressState element specifies the business state for the contact.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R148
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.BusinessAddressStreet].ToString(),
                contact.BusinessAddressStreet,
                148,
                @"[In BusinessAddressStreet] The BusinessAddressStreet element specifies the business street address for the contact.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R153
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.BusinessFaxNumber].ToString(),
                contact.BusinessFaxNumber,
                153,
                @"[In BusinessFaxNumber] The BusinessFaxNumber element specifies the business fax number for the contact.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R158
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.BusinessPhoneNumber].ToString(),
                contact.BusinessPhoneNumber,
                158,
                @"[In BusinessPhoneNumber] The BusinessPhoneNumber element specifies the primary business phone number for the contact.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R163
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.Business2PhoneNumber].ToString(),
                contact.Business2PhoneNumber,
                163,
                @"[In Business2PhoneNumber] The Business2PhoneNumber element specifies the secondary business telephone number for the contact.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R168
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.CarPhoneNumber].ToString(),
                contact.CarPhoneNumber,
                168,
                @"[In CarPhoneNumber] The CarPhoneNumber element specifies the car telephone number for the contact.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R1030
            this.Site.CaptureRequirementIfIsNotNull(
                contact.Categories,
                1030,
                @"[In Categories] The Categories element [is a container ([MS-ASDTYPE] section 2.2) element that] specifies a collection of user labels assigned to the contact.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R10040
            this.Site.CaptureRequirementIfIsNotNull(
                contact.Children,
                10040,
                @"[In Children] The Children element [is a container ([MS-ASDTYPE] section 2.2) element that] specifies a collection of the contact's children.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R190
            this.Site.CaptureRequirementIfAreEqual<string>(
                ((Request.Children)contactProperties[Request.ItemsChoiceType8.Children]).Child[0],
                contact.Children.Child[0],
                190,
                @"[In Child] The Child element is an optional child element of the Children element that specifies a child of the contact.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R195
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.CompanyMainPhone].ToString(),
                contact.CompanyMainPhone,
                195,
                @"[In CompanyMainPhone] The contacts2:CompanyMainPhone element specifies the main telephone number for the contact's company.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R200
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.CompanyName].ToString(),
                contact.CompanyName,
                200,
                @"[In CompanyName] The CompanyName element specifies the company name for the contact.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R205
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.CustomerId].ToString(),
                contact.CustomerId,
                205,
                @"[In CustomerId] The contacts2:CustomerId element specifies the customer identifier (ID) for the contact.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R209
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.Department].ToString(),
                contact.Department,
                209,
                @"[In Department] The Department element specifies the department name for the contact.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R214
            this.Site.CaptureRequirementIfIsTrue(
                contact.Email1Address.Contains(contactProperties[Request.ItemsChoiceType8.Email1Address].ToString()),
                214,
                @"[In Email1Address] The Email1Address element specifies the first e-mail address for the contact.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R221
            this.Site.CaptureRequirementIfIsTrue(
                contact.Email2Address.Contains(contactProperties[Request.ItemsChoiceType8.Email2Address].ToString()),
                221,
                @"[In Email2Address] The Email2Address element specifies the second e-mail address for the contact.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R226
            this.Site.CaptureRequirementIfIsTrue(
                contact.Email3Address.Contains(contactProperties[Request.ItemsChoiceType8.Email3Address].ToString()),
                226,
                @"[In Email3Address] The Email3Address element specifies the third e-mail address for the contact.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R231
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.FileAs].ToString(),
                contact.FileAs,
                231,
                @"[In FileAs] The FileAs element specifies how a contact is filed in the Contacts folder or the recipient information cache folder. ");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R238
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.FirstName].ToString(),
                contact.FirstName,
                238,
                @"[In FirstName] The FirstName element specifies the first name of the contact.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R243
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.GovernmentId].ToString(),
                contact.GovernmentId,
                243,
                @"[In GovernmentId] The contacts2:GovernmentId element specifies the government-assigned identifier (ID) for the contact.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R248
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.HomeAddressCity].ToString(),
                contact.HomeAddressCity,
                248,
                @"[In HomeAddressCity] The HomeAddressCity element specifies the home city for the contact.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R253
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.HomeAddressCountry].ToString(),
                contact.HomeAddressCountry,
                253,
                @"[In HomeAddressCountry] The HomeAddressCountry element specifies the home country/region for the contact.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R258
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.HomeAddressPostalCode].ToString(),
                contact.HomeAddressPostalCode,
                258,
                @"[In HomeAddressPostalCode] The HomeAddressPostalCode element specifies the home postal code for the contact.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R263
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.HomeAddressState].ToString(),
                contact.HomeAddressState,
                263,
                @"[In HomeAddressState] The HomeAddressState element specifies the home state for the contact.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R268
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.HomeAddressStreet].ToString(),
                contact.HomeAddressStreet,
                268,
                @"[In HomeAddressStreet] The HomeAddressStreet element specifies the home street address for the contact.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R273
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.HomeFaxNumber].ToString(),
                contact.HomeFaxNumber,
                273,
                @"[In HomeFaxNumber] The HomeFaxNumber element specifies the home fax number for the contact.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R278
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.HomePhoneNumber].ToString(),
                contact.HomePhoneNumber,
                278,
                @"[In HomePhoneNumber] The HomePhoneNumber element specifies the home phone number for the contact.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R283
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.Home2PhoneNumber].ToString(),
                contact.Home2PhoneNumber,
                283,
                @"[In Home2PhoneNumber] The Home2PhoneNumber element specifies the alternative home phone number for the contact.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R288
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.IMAddress].ToString(),
                contact.IMAddress,
                288,
                @"[In IMAddress] The contacts2:IMAddress element specifies the instant messaging address for the contact.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R293
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.IMAddress2].ToString(),
                contact.IMAddress2,
                293,
                @"[In IMAddress2] The contacts2:IMAddress2 element specifies the alternative instant messaging address for the contact.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R298
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.IMAddress3].ToString(),
                contact.IMAddress3,
                298,
                @"[In IMAddress3] The contacts2:IMAddress3 element specifies the tertiary instant messaging address for the contact.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R303
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.JobTitle].ToString(),
                contact.JobTitle,
                303,
                @"[In JobTitle] The JobTitle element specifies the contact's job title.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R308
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.LastName].ToString(),
                contact.LastName,
                308,
                @"[In LastName] The LastName element specifies the contact's last name.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R313
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.ManagerName].ToString(),
                contact.ManagerName,
                313,
                @"[In ManagerName] The contacts2:ManagerName element specifies the distinguished name (DN) (1) of the contact's manager.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R318
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.MiddleName].ToString(),
                contact.MiddleName,
                318,
                @"[In MiddleName] The MiddleName element specifies the middle name of the contact.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R323
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.MMS].ToString(),
                contact.MMS,
                323,
                @"[In MMS] The contacts2:MMS element specifies the Multimedia Messaging Service (MMS) address for the contact.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R328
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.MobilePhoneNumber].ToString(),
                contact.MobilePhoneNumber,
                328,
                @"[In MobilePhoneNumber] The MobilePhoneNumber element specifies the mobile phone number for the contact.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R333
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.NickName].ToString(),
                contact.NickName,
                333,
                @"[In NickName] The contacts2:NickName element specifies the nickname for the contact.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R338
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.OfficeLocation].ToString(),
                contact.OfficeLocation,
                338,
                @"[In OfficeLocation] The OfficeLocation element specifies the office location for the contact.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R343
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.OtherAddressCity].ToString(),
                contact.OtherAddressCity,
                343,
                @"[In OtherAddressCity] The OtherAddressCity element specifies the city for the contact's alternate address.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R348
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.OtherAddressCountry].ToString(),
                contact.OtherAddressCountry,
                348,
                @"[In OtherAddressCountry] The OtherAddressCountry element specifies the country/region of the contact's alternate address.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R353
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.OtherAddressPostalCode].ToString(),
                contact.OtherAddressPostalCode,
                353,
                @"[In OtherAddressPostalCode] The OtherAddressPostalCode element specifies the postal code of the contact's alternate address.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R358
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.OtherAddressState].ToString(),
                contact.OtherAddressState,
                358,
                @"[In OtherAddressState] The OtherAddressState element specifies the state of the contact's alternate address.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R363
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.OtherAddressStreet].ToString(),
                contact.OtherAddressStreet,
                363,
                @"[In OtherAddressStreet] The OtherAddressStreet element specifies the street address of the contact's alternate address.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R368
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.PagerNumber].ToString(),
                contact.PagerNumber,
                368,
                @"[In PagerNumber] The PagerNumber element specifies the pager number for the contact.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R373
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.Picture].ToString(),
                contact.Picture,
                373,
                @"[In Picture] The Picture element specifies the file that contains the picture of the contact.");

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

            // If the contact with picture is successfully added to the server and the picture returned from server is not null, it means the picture satisfies the specified image size.
            // Verify MS-ASCNTC requirement: MS-ASCNTC_R1021
            this.Site.CaptureRequirement(
                1021,
                @"[In Picture] The value of the Picture element MUST be limited to an image size of 36 KB.");

            try
            {
                byte[] pictureByte = Convert.FromBase64String(contact.Picture);

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

                // Verify MS-ASCNTC requirement: MS-ASCNTC_R381
                this.Site.CaptureRequirementIfIsTrue(
                    pictureByte.Length <= 48 * 1024,
                    381,
                    @"[In Picture] The value of the Picture element MUST be limited to 48 KB of binary content that is encoded with base64 encoding");
            }
            catch (FormatException)
            {
                this.Site.Assert.Fail("The Picture element should be encoded with base64 encoding.");
            }

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R385
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.RadioPhoneNumber].ToString(),
                contact.RadioPhoneNumber,
                385,
                @"[In RadioPhoneNumber] The RadioPhoneNumber element specifies the radio phone number for the contact.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R390
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.Spouse].ToString(),
                contact.Spouse,
                390,
                @"[In Spouse] The Spouse element specifies the name of the contact's spouse/partner.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R395
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.Suffix].ToString(),
                contact.Suffix,
                395,
                @"[In Suffix] The Suffix element specifies the suffix for the contact's name.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R400
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.Title].ToString(),
                contact.Title,
                400,
                @"[In Title] The Title element specifies the contact's business title.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R405
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.WebPage].ToString(),
                contact.WebPage,
                405,
                @"[In WebPage] The WebPage element specifies the Web site or personal Web page for the contact.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R417
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.YomiCompanyName].ToString(),
                contact.YomiCompanyName,
                417,
                @"[In YomiCompanyName] The YomiCompanyName element specifies the Japanese phonetic rendering of the company name for the contact.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R422
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.YomiFirstName].ToString(),
                contact.YomiFirstName,
                422,
                @"[In YomiFirstName] The YomiFirstName element specifies the Japanese phonetic rendering of the first name of the contact.");

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

            // Verify MS-ASCNTC requirement: MS-ASCNTC_R427
            this.Site.CaptureRequirementIfAreEqual<string>(
                contactProperties[Request.ItemsChoiceType8.YomiLastName].ToString(),
                contact.YomiLastName,
                427,
                @"[In YomiLastName] The YomiLastName element specifies the Japanese phonetic rendering of the last name of the contact.");
        }
        #endregion