Microsoft.Protocols.TestSuites.MS_ASPROV.MS_ASPROVAdapter.VerifyEASProvisionDocElement C# (CSharp) Method

VerifyEASProvisionDocElement() private method

Verify child elements of EASProvisionDoc element.
private VerifyEASProvisionDocElement ( ProvisionResponse provisionResponse ) : void
provisionResponse ProvisionResponse Provision response
return void
        private void VerifyEASProvisionDocElement(ProvisionResponse provisionResponse)
        {
            // Get policy setting of provision command response.
            Dictionary<string, string> policiesSetting = AdapterHelper.GetPoliciesFromProvisionResponse(provisionResponse);

            if (policiesSetting.ContainsKey("AllowBluetooth"))
            {
                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R70");

                // Verify MS-ASPROV requirement: MS-ASPROV_R70
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    70,
                    @"[In AllowBluetooth] The AllowBluetooth element is an optional child element of type unsignedByte ([MS-ASDTYPE] section 2.7) of the EASProvisionDoc element (section 2.2.2.27).");

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

                // Verify MS-ASPROV requirement: MS-ASPROV_R71
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    71,
                    @"[In AllowBluetooth] The AllowBluetooth element cannot have child elements.");

                this.VerifyUnsignedByteStructure(provisionResponse.ResponseData.Policies.Policy.Data.EASProvisionDoc.AllowBluetooth);
            }

            if (policiesSetting.ContainsKey("AllowBrowser"))
            {
                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R80");

                // Verify MS-ASPROV requirement: MS-ASPROV_R80
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    80,
                    @"[In AllowBrowser] The AllowBrowser element is an optional child element of type boolean ([MS-ASDTYPE] section 2.1) of the EASProvisionDoc element (section 2.2.2.27).");

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

                // Verify MS-ASPROV requirement: MS-ASPROV_R81
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    81,
                    @"[In AllowBrowser] The AllowBrowser element cannot have child elements.");

                this.VerifyBooleanStructure();
            }

            if (policiesSetting.ContainsKey("AllowCamera"))
            {
                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R85");

                // Verify MS-ASPROV requirement: MS-ASPROV_R85
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    85,
                    @"[In AllowCamera] The AllowCamera element is an optional child element of type boolean ([MS-ASDTYPE] section 2.1) of the EASProvisionDoc element (section 2.2.2.27).");

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

                // Verify MS-ASPROV requirement: MS-ASPROV_R86
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    86,
                    @"[In AllowCamera] The AllowCamera element cannot have child elements.");

                this.VerifyBooleanStructure();
            }

            if (policiesSetting.ContainsKey("AllowConsumerEmail"))
            {
                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R92");

                // Verify MS-ASPROV requirement: MS-ASPROV_R92
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    92,
                    @"[In AllowConsumerEmail] The AllowConsumerEmail element is an optional child element of type boolean ([MS-ASDTYPE] section 2.1) of the EASProvisionDoc element (section 2.2.2.27).");

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

                // Verify MS-ASPROV requirement: MS-ASPROV_R93
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    93,
                    @"[In AllowConsumerEmail] The AllowConsumerEmail element cannot have child elements.");

                this.VerifyBooleanStructure();
            }

            if (policiesSetting.ContainsKey("AllowDesktopSync"))
            {
                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R97");

                // Verify MS-ASPROV requirement: MS-ASPROV_R97
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    97,
                    @"[In AllowDesktopSync] The AllowDesktopSync element is an optional child element of type boolean ([MS-ASDTYPE] section 2.1) of the EASProvisionDoc element (section 2.2.2.27).");

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

                // Verify MS-ASPROV requirement: MS-ASPROV_R98
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    98,
                    @"[In AllowDesktopSync] The AllowDesktopSync element cannot have child elements.");

                this.VerifyBooleanStructure();
            }

            if (policiesSetting.ContainsKey("AllowHTMLEmail"))
            {
                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R104");

                // Verify MS-ASPROV requirement: MS-ASPROV_R104
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    104,
                    @"[In AllowHTMLEmail] The AllowHTMLEmail element is an optional child element of type boolean ([MS-ASDTYPE] section 2.1) of the EASProvisionDoc element (section 2.2.2.27).");

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

                // Verify MS-ASPROV requirement: MS-ASPROV_R105
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    105,
                    @"[In AllowHTMLEmail] The AllowHTMLEmail element cannot have child elements.");

                this.VerifyBooleanStructure();

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

                // Verify MS-ASPROV requirement: MS-ASPROV_R106
                // Since MS-ASDTYPE_R5 has been verified in VerifyBooleanStructure, so this requirement can be captured.
                Site.CaptureRequirement(
                    106,
                    @"[In AllowHTMLEmail] Valid values [0,1] for AllowHTMLEmail are listed in the following table.");
            }

            if (policiesSetting.ContainsKey("AllowInternetSharing"))
            {
                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R109");

                // Verify MS-ASPROV requirement: MS-ASPROV_R109
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    109,
                    @"[In AllowInternetSharing] The AllowInternetSharing element is an optional child element of type boolean ([MS-ASDTYPE] section 2.1) of the EASProvisionDoc element (section 2.2.2.27).");

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

                // Verify MS-ASPROV requirement: MS-ASPROV_R110
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    110,
                    @"[In AllowInternetSharing] The AllowInternetSharing element cannot have child elements.");

                this.VerifyBooleanStructure();
            }

            if (policiesSetting.ContainsKey("AllowIrDA"))
            {
                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R116");

                // Verify MS-ASPROV requirement: MS-ASPROV_R116
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    116,
                    @"[In AllowIrDA] The AllowIrDA element is an optional child element of type boolean ([MS-ASDTYPE] section 2.1) of the EASProvisionDoc element (section 2.2.2.27).");

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

                // Verify MS-ASPROV requirement: MS-ASPROV_R117
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    117,
                    @"[In AllowIrDA] The AllowIrDA element cannot have child elements.");

                this.VerifyBooleanStructure();
            }

            if (policiesSetting.ContainsKey("AllowPOPIMAPEmail"))
            {
                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R123");

                // Verify MS-ASPROV requirement: MS-ASPROV_R123
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    123,
                    @"[In AllowPOPIMAPEmail] The AllowPOPIMAPEmail element is an optional child element of type boolean ([MS-ASDTYPE] section 2.1) of the EASProvisionDoc element (section 2.2.2.27).");

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

                // Verify MS-ASPROV requirement: MS-ASPROV_R124
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    124,
                    @"[In AllowPOPIMAPEmail] The AllowPOPIMAPEmail element cannot have child elements.");

                this.VerifyBooleanStructure();
            }

            if (policiesSetting.ContainsKey("AllowRemoteDesktop"))
            {
                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R128");

                // Verify MS-ASPROV requirement: MS-ASPROV_R128
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    128,
                    @"[In AllowRemoteDesktop] The AllowRemoteDesktop element is an optional child element of type boolean ([MS-ASDTYPE] section 2.1) of the EASProvisionDoc element (section 2.2.2.27).");

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

                // Verify MS-ASPROV requirement: MS-ASPROV_R129
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    129,
                    @"[In AllowRemoteDesktop] The AllowRemoteDesktop element cannot have child elements.");

                this.VerifyBooleanStructure();
            }

            if (policiesSetting.ContainsKey("AllowSimpleDevicePassword"))
            {
                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R135");

                // Verify MS-ASPROV requirement: MS-ASPROV_R135
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    135,
                    @"[In AllowSimpleDevicePassword] The AllowSimpleDevicePassword element is an optional child element of type boolean ([MS-ASDTYPE] section 2.1) of the EASProvisionDoc element (section 2.2.2.27).");

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

                // Verify MS-ASPROV requirement: MS-ASPROV_R137
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    137,
                    @"[In AllowSimpleDevicePassword] The AllowSimpleDevicePassword element cannot have child elements.");

                this.VerifyBooleanStructure();
            }

            if (policiesSetting.ContainsKey("AllowSMIMEEncryptionAlgorithmNegotiation"))
            {
                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R143");

                // Verify MS-ASPROV requirement: MS-ASPROV_R143
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    143,
                    @"[In AllowSMIMEEncryptionAlgorithmNegotiation] The AllowSMIMEEncryptionAlgorithmNegotation element is an optional child element of type integer ([MS-ASDTYPE] section 2.5) of the EASProvisionDoc element (section 2.2.2.12).");

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

                // Verify MS-ASPROV requirement: MS-ASPROV_R144
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    144,
                    @"[In AllowSMIMEEncryptionAlgorithmNegotiation] The AllowSMIMEEncryptionAlgorithmNegotation element cannot have child elements.");

                this.VerifyIntegerStructure();
            }

            if (policiesSetting.ContainsKey("AllowSMIMESoftCerts"))
            {
                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R149");

                // Verify MS-ASPROV requirement: MS-ASPROV_R149
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    149,
                    @"[In AllowSMIMESoftCerts] The AllowSMIMESoftCerts element is an optional child element of type boolean ([MS-ASDTYPE] section 2.1) of the EASProvisionDoc element (section 2.2.2.27).");

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

                // Verify MS-ASPROV requirement: MS-ASPROV_R150
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    150,
                    @"[In AllowSMIMESoftCerts] The AllowSMIMESoftCerts element cannot have child elements.");

                this.VerifyBooleanStructure();
            }

            if (policiesSetting.ContainsKey("AllowStorageCard"))
            {
                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R154");

                // Verify MS-ASPROV requirement: MS-ASPROV_R154
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    154,
                    @"[In AllowStorageCard] The AllowStorageCard element is an optional child element of type boolean ([MS-ASDTYPE] section 2.1) of the EASProvisionDoc element (section 2.2.2.27).");

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

                // Verify MS-ASPROV requirement: MS-ASPROV_R155
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    155,
                    @"[In AllowStorageCard] The AllowStorageCard element cannot have child elements.");

                this.VerifyBooleanStructure();
            }

            if (policiesSetting.ContainsKey("AllowTextMessaging"))
            {
                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R160");

                // Verify MS-ASPROV requirement: MS-ASPROV_R160
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    160,
                    @"[In AllowTextMessaging] The AllowTextMessaging element is an optional child element of type boolean ([MS-ASDTYPE] section 2.1) of the EASProvisionDoc element (section 2.2.2.27).");

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

                // Verify MS-ASPROV requirement: MS-ASPROV_R161
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    161,
                    @"[In AllowTextMessaging] The AllowTextMessaging element cannot have child elements.");

                this.VerifyBooleanStructure();
            }

            if (policiesSetting.ContainsKey("AllowUnsignedApplications"))
            {
                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R166");

                // Verify MS-ASPROV requirement: MS-ASPROV_R166
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    166,
                    @"[In AllowUnsignedApplications] The AllowUnsignedApplications element is an optional child element of type boolean ([MS-ASDTYPE] section 2.1) of the EASProvisionDoc element (section 2.2.2.27).");

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

                // Verify MS-ASPROV requirement: MS-ASPROV_R167
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    167,
                    @"[In AllowUnsignedApplications] The AllowUnsignedApplications element cannot have child elements.");

                this.VerifyBooleanStructure();
            }

            if (policiesSetting.ContainsKey("AllowUnsignedInstallationPackages"))
            {
                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R171");

                // Verify MS-ASPROV requirement: MS-ASPROV_R171
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    171,
                    @"[In AllowUnsignedInstallationPackages] The AllowUnsignedInstallationPackages element is an optional child element of type boolean ([MS-ASDTYPE] section 2.1) of the EASProvisionDoc element (section 2.2.2.27).");

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

                // Verify MS-ASPROV requirement: MS-ASPROV_R172
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    172,
                    @"[In AllowUnsignedInstallationPackages] The AllowUnsignedInstallationPackages element cannot have child elements.");

                this.VerifyBooleanStructure();
            }

            if (policiesSetting.ContainsKey("AllowWiFi"))
            {
                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R176");

                // Verify MS-ASPROV requirement: MS-ASPROV_R176
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    176,
                    @"[In AllowWifi] The AllowWifi element is an optional child element of type boolean ([MS-ASDTYPE] section 2.1) of the EASProvisionDoc element (section 2.2.2.27).");

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

                // Verify MS-ASPROV requirement: MS-ASPROV_R177
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    177,
                    @"[In AllowWifi] The AllowWifi element cannot have child elements.");

                this.VerifyBooleanStructure();
            }

            if (policiesSetting.ContainsKey("AlphanumericDevicePasswordRequired"))
            {
                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R182");

                // Verify MS-ASPROV requirement: MS-ASPROV_R182
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    182,
                    @"[In AlphanumericDevicePasswordRequired] The AlphanumericDevicePasswordRequired element is an optional child element of type boolean ([MS-ASDTYPE] section 2.1) of the EASProvisionDoc element (section 2.2.2.27).");

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

                // Verify MS-ASPROV requirement: MS-ASPROV_R183
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    183,
                    @"[In AlphanumericDevicePasswordRequired] The AlphanumericDevicePasswordRequired element cannot have child elements.");

                this.VerifyBooleanStructure();
            }

            if (policiesSetting.ContainsKey("ApprovedApplicationList"))
            {
                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R194");

                // Verify MS-ASPROV requirement: MS-ASPROV_R194
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    194,
                    @"[In ApprovedApplicationList] The ApprovedApplicationList element is an optional container ([MS-ASDTYPE] section 2.2) element.");

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

                // Verify MS-ASPROV requirement: MS-ASPROV_R195
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    195,
                    @"[In ApprovedApplicationList] It [ApprovedApplicationList element element] is a child of the EASProvisionDoc element (section 2.2.2.27).");

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

                // Verify MS-ASPROV requirement: MS-ASPROV_R199
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    199,
                    @"[In ApprovedApplicationList] A command response has a maximum of one ApprovedApplicationList element per EASProvisionDoc element.");

                this.VerifyContainerStructure();

                if (provisionResponse.ResponseData.Policies.Policy.Data.EASProvisionDoc.ApprovedApplicationList.Length != 0)
                {
                    // Add the debug information
                    Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R202");

                    // Verify MS-ASPROV requirement: MS-ASPROV_R202
                    // The schema has been validated, so this requirement can be captured.
                    Site.CaptureRequirement(
                        202,
                        @"[In ApprovedApplicationList] The ApprovedApplicationList element has only the following child element: Hash (section 2.2.2.28): This element is optional.");

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

                    // Verify MS-ASPROV requirement: MS-ASPROV_R236
                    // The schema has been validated, so this requirement can be captured.
                    Site.CaptureRequirement(
                        236,
                        @"[In Hash] The Hash element is an optional child element of type string ([MS-ASDTYPE] section 2.6) of the ApprovedApplicationList element (section 2.2.2.21).");
                }
            }

            if (policiesSetting.ContainsKey("AttachmentsEnabled"))
            {
                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R203");

                // Verify MS-ASPROV requirement: MS-ASPROV_R203
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    203,
                    @"[In AttachmentsEnabled] The AttachmentsEnabled element is an optional child element of type boolean ([MS-ASDTYPE] section 2.1) of the EASProvisionDoc element (section 2.2.2.27).");

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

                // Verify MS-ASPROV requirement: MS-ASPROV_R204
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    204,
                    @"[In AttachmentsEnabled] The AttachmentsEnabled element cannot have child elements.");

                this.VerifyBooleanStructure();

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

                // Verify MS-ASPROV requirement: MS-ASPROV_R205
                // Since MS-ASDTYPE_R5 has been verified in VerifyBooleanStructure, so this requirement can be captured.
                Site.CaptureRequirement(
                    205,
                    @"[In AttachmentsEnabled] Valid values [0,1] for AttachmentsEnabled are listed in the following table.");
            }

            if (policiesSetting.ContainsKey("DevicePasswordEnabled"))
            {
                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R211");

                // Verify MS-ASPROV requirement: MS-ASPROV_R211
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    211,
                    @"[In DevicePasswordEnabled] The DevicePasswordEnabled element is an optional child element of type boolean ([MS-ASDTYPE] section 2.1) of the EASProvisionDoc element (section 2.2.2.27).");

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

                // Verify MS-ASPROV requirement: MS-ASPROV_R212
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    212,
                    @"[In DevicePasswordEnabled] The DevicePasswordEnabled element cannot have child elements.");

                this.VerifyBooleanStructure();
            }

            if (policiesSetting.ContainsKey("DevicePasswordExpiration"))
            {
                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R216");

                // Verify MS-ASPROV requirement: MS-ASPROV_R216
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    216,
                    @"[In DevicePasswordExpiration] The DevicePasswordExpiration element is an optional child element of type unsignedIntOrEmpty (section 2.2.3.3) of the EASProvisionDoc element, as specified in section 2.2.2.27.");

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

                // Verify MS-ASPROV requirement: MS-ASPROV_R218
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    218,
                    @"[In DevicePasswordExpiration] The DevicePasswordExpiration element cannot have child elements.");

                if (string.IsNullOrEmpty(provisionResponse.ResponseData.Policies.Policy.Data.EASProvisionDoc.DevicePasswordExpiration))
                {
                    // Add the debug information
                    Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R674");

                    // Verify MS-ASPROV requirement: MS-ASPROV_R674
                    // The schema has been validated, so this requirement can be captured.
                    Site.CaptureRequirement(
                        674,
                        @"[In unsignedIntOrEmpty Simple Type] The unsignedIntOrEmpty simple type represents a value that can either be [an xs:unsignedInt type, as specified in [XMLSCHEMA2/2] section 3.3.22, or] an empty value.
<xs:simpleType name=""unsignedIntOrEmpty"">
  <xs:union memberTypes=""xs:unsignedInt EmptyVal""/>
</xs:simpleType>");
                }
                else
                {
                    // Add the debug information
                    Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R677");

                    // Verify MS-ASPROV requirement: MS-ASPROV_R677
                    // The schema has been validated, so this requirement can be captured.
                    Site.CaptureRequirement(
                        677,
                        @"[In unsignedIntOrEmpty Simple Type] The unsignedIntOrEmpty simple type represents a value that can either be an xs:unsignedInt type, as specified in [XMLSCHEMA2/2] section 3.3.22, [or an empty value].
<xs:simpleType name=""unsignedIntOrEmpty"">
  <xs:union memberTypes=""xs:unsignedInt EmptyVal""/>
</xs:simpleType>");
                }
            }

            if (policiesSetting.ContainsKey("DevicePasswordHistory"))
            {
                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R224");

                // Verify MS-ASPROV requirement: MS-ASPROV_R224
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    224,
                    @"[In DevicePasswordHistory] The DevicePasswordHistory element is an optional child element of type unsignedInt of the EASProvisionDoc element (section 2.2.2.27).");

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

                // Verify MS-ASPROV requirement: MS-ASPROV_R225
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    225,
                    @"[In DevicePasswordHistory] The DevicePasswordHistory element cannot have child elements.");
            }

            if (policiesSetting.ContainsKey("MaxAttachmentSize"))
            {
                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R240");

                // Verify MS-ASPROV requirement: MS-ASPROV_R240
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    240,
                    @"[In MaxAttachmentSize] The MaxAttachmentSize element is an optional child element of type unsignedIntOrEmpty (section 2.2.3.3) of the EASProvisionDoc element, as specified in section 2.2.2.27.");

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

                // Verify MS-ASPROV requirement: MS-ASPROV_R241
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    241,
                    @"[In MaxAttachmentSize] The EASProvisionDoc element has at most one instance of the MaxAttachmentSize element.");

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

                // Verify MS-ASPROV requirement: MS-ASPROV_R242
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    242,
                    @"[In MaxAttachmentSize] The MaxAttachmentSize element cannot have child elements.");
            }

            if (policiesSetting.ContainsKey("MaxCalendarAgeFilter"))
            {
                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R243");

                // Verify MS-ASPROV requirement: MS-ASPROV_R243
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    243,
                    @"[In MaxCalendarAgeFilter] The MaxCalendarAgeFilter element is an optional child element of type unsignedInt of the EASProvisionDoc element (section 2.2.2.27).");

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

                // Verify MS-ASPROV requirement: MS-ASPROV_R244
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    244,
                    @"[In MaxCalendarAgeFilter] The MaxCalendarAgeFilter element cannot have child elements.");

                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R245");
                Common.VerifyActualValues("MaxCalendarAgeFilter", new string[] { "0", "4", "5", "6", "7" }, provisionResponse.ResponseData.Policies.Policy.Data.EASProvisionDoc.MaxCalendarAgeFilter.ToString(), Site);

                // Verify MS-ASPROV requirement: MS-ASPROV_R245
                // The value of MaxCalendarAgeFilter element is one of the valid values, so this requirement can be captured.
                Site.CaptureRequirement(
                    245,
                    @"[In MaxCalendarAgeFilter] Valid values [0,4,5,6,7] for MaxCalendarAgeFilter are listed in the following table.");
            }

            if (policiesSetting.ContainsKey("MaxDevicePasswordFailedAttempts"))
            {
                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R251");

                // Verify MS-ASPROV requirement: MS-ASPROV_R251
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    251,
                    @"[In MaxDevicePasswordFailedAttempts] The MaxDevicePasswordFailedAttempts element is an optional child element of type unsignedByteOrEmpty (section 2.2.3.2) of the EASProvisionDoc element, as specified in section 2.2.2.27.");

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

                // Verify MS-ASPROV requirement: MS-ASPROV_R252
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    252,
                    @"[In MaxDevicePasswordFailedAttempts] The MaxDevicePasswordFailedAttempts element cannot have child elements.");

                if (string.IsNullOrEmpty(provisionResponse.ResponseData.Policies.Policy.Data.EASProvisionDoc.MaxDevicePasswordFailedAttempts))
                {
                    // Add the debug information
                    Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R673");

                    // Verify MS-ASPROV requirement: MS-ASPROV_R673
                    // The schema has been validated, so this requirement can be captured.
                    Site.CaptureRequirement(
                        673,
                        @"[In unsignedByteOrEmpty Simple Type] The unsignedByteOrEmpty simple type represents a value that can either be an [xs:unsignedByte type, as specified in [XMLSCHEMA2/2] section 3.3.24, or] an empty value.
<xs:simpleType name=""unsignedByteOrEmpty"">
  <xs:union memberTypes=""xs:unsignedByte EmptyVal""/>
</xs:simpleType>");

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

                    // Verify MS-ASPROV requirement: MS-ASPROV_R672
                    // The schema has been validated, so this requirement can be captured.
                    Site.CaptureRequirement(
                        672,
                        @"[In EmptyVal Simple Type] The EmptyVal simple type represents an empty value.
<xs:simpleType name=""EmptyVal"">
  <xs:restriction base=""xs:string"">
    <xs:maxLength value=""0""/>
  </xs:restriction>
</xs:simpleType>");
                }
                else
                {
                    // Add the debug information
                    Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R676");

                    // Verify MS-ASPROV requirement: MS-ASPROV_R676
                    // The schema has been validated, so this requirement can be captured.
                    Site.CaptureRequirement(
                        676,
                        @"[In unsignedByteOrEmpty Simple Type] The unsignedByteOrEmpty simple type represents a value that can either be an xs:unsignedByte type, as specified in [XMLSCHEMA2/2] section 3.3.24, [or an empty value].
<xs:simpleType name=""unsignedByteOrEmpty"">
  <xs:union memberTypes=""xs:unsignedByte EmptyVal""/>
</xs:simpleType>");
                }
            }

            if (policiesSetting.ContainsKey("MaxEmailAgeFilter"))
            {
                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R255");

                // Verify MS-ASPROV requirement: MS-ASPROV_R255
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    255,
                    @"[In MaxEmailAgeFilter] The MaxEmailAgeFilter element is an optional child element of type unsignedInt of the EASProvisionDoc element (section 2.2.2.27).");

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

                // Verify MS-ASPROV requirement: MS-ASPROV_R256
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    256,
                    @"[In MaxEmailAgeFilter] The MaxEmailAgeFilter element cannot have child elements.");

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

                Common.VerifyActualValues("MaxEmailAgeFilter", new string[] { "0", "1", "2", "3", "4", "5" }, provisionResponse.ResponseData.Policies.Policy.Data.EASProvisionDoc.MaxEmailAgeFilter.ToString(), Site);

                // Verify MS-ASPROV requirement: MS-ASPROV_R257
                // The value of MaxEmailAgeFilter element is one of the valid values, so this requirement can be captured.
                Site.CaptureRequirement(
                    257,
                    @"[In MaxEmailAgeFilter] Valid values [0,1,2,3,4,5] are listed in the following table and represent the maximum allowable number of days to sync email.");
            }

            if (policiesSetting.ContainsKey("MaxEmailBodyTruncationSize"))
            {
                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R265");

                // Verify MS-ASPROV requirement: MS-ASPROV_R265
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    265,
                    @"[In MaxEmailBodyTruncationSize] The MaxEmailBodyTruncationSize element cannot have child elements.");

                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R266, the value of MaxEmailBodyTruncationSize element is {0}.", provisionResponse.ResponseData.Policies.Policy.Data.EASProvisionDoc.MaxEmailBodyTruncationSize);

                // Verify MS-ASPROV requirement: MS-ASPROV_R266
                bool isVerifiedR266 = Convert.ToInt32(provisionResponse.ResponseData.Policies.Policy.Data.EASProvisionDoc.MaxEmailBodyTruncationSize) >= -1;

                Site.CaptureRequirementIfIsTrue(
                    isVerifiedR266,
                    266,
                    @"[In MaxEmailBodyTruncationSize] Valid values [-1, 0, >0] for the MaxEmailBodyTruncationSize element are an integer ([MS-ASDTYPE] section 2.5) of one of the values or ranges listed in the following table.");

                this.VerifyIntegerStructure();
            }

            if (policiesSetting.ContainsKey("MaxEmailHTMLBodyTruncationSize"))
            {
                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R271");

                // Verify MS-ASPROV requirement: MS-ASPROV_R271
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    271,
                    @"[In MaxEmailHTMLBodyTruncationSize] The MaxEmailHTMLBodyTruncationSize element cannot have child elements.");

                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R272, the value of MaxEmailHTMLBodyTruncationSize element is {0}.", provisionResponse.ResponseData.Policies.Policy.Data.EASProvisionDoc.MaxEmailHTMLBodyTruncationSize);

                // Verify MS-ASPROV requirement: MS-ASPROV_R272
                bool isVerifiedR272 = Convert.ToInt32(provisionResponse.ResponseData.Policies.Policy.Data.EASProvisionDoc.MaxEmailHTMLBodyTruncationSize) >= -1;

                Site.CaptureRequirementIfIsTrue(
                    isVerifiedR272,
                    272,
                    @"[In MaxEmailHTMLBodyTruncationSize] Valid values [-1, 0, >0] for the MaxEmailHTMLBodyTruncationSize element are an integer ([MS-ASDTYPE] section 2.5) of one of the values or ranges listed in the following table.");

                this.VerifyIntegerStructure();
            }

            if (policiesSetting.ContainsKey("MaxInactivityTimeDeviceLock"))
            {
                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R276");

                // Verify MS-ASPROV requirement: MS-ASPROV_R276
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    276,
                    @"[In MaxInactivityTimeDeviceLock] The MaxInactivityTimeDeviceLock element is an optional child element of type unsignedIntOrEmpty (section 2.2.3.3) of the EASProvisionDoc element, as specified in section 2.2.2.27.");

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

                // Verify MS-ASPROV requirement: MS-ASPROV_R277
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    277,
                    @"[In MaxInactivityTimeDeviceLock] The MaxInactivityTimeDeviceLock element cannot have child elements.");
            }

            if (policiesSetting.ContainsKey("MinDevicePasswordComplexCharacters"))
            {
                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R280");

                // Verify MS-ASPROV requirement: MS-ASPROV_R280
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    280,
                    @"[In MinDevicePasswordComplexCharacters] The MinDevicePasswordComplexCharacters element is an optional child element of type unsignedByte ([MS-ASDTYPE] section 2.7) of the EASProvisionDoc element (section 2.2.2.27).");

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

                // Verify MS-ASPROV requirement: MS-ASPROV_R281
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    281,
                    @"[In MinDevicePasswordComplexCharacters] The MinDevicePasswordComplexCharacters element cannot have child elements.");

                this.VerifyUnsignedByteStructure(provisionResponse.ResponseData.Policies.Policy.Data.EASProvisionDoc.MinDevicePasswordComplexCharacters);
            }

            if (policiesSetting.ContainsKey("MinDevicePasswordLength"))
            {
                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R286");

                // Verify MS-ASPROV requirement: MS-ASPROV_R286
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    286,
                    @"[In MinDevicePasswordLength] The MinDevicePasswordLength element is an optional child element of type unsignedByteOrEmpty (section 2.2.3.2) of the EASProvisionDoc element, as specified in section 2.2.2.27.");

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

                // Verify MS-ASPROV requirement: MS-ASPROV_R287
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    287,
                    @"[In MinDevicePasswordLength] The MinDevicePasswordLength element cannot have child elements.");
            }

            if (policiesSetting.ContainsKey("PasswordRecoveryEnabled"))
            {
                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R291");

                // Verify MS-ASPROV requirement: MS-ASPROV_R291
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    291,
                    @"[In PasswordRecoveryEnabled] The PasswordRecoveryEnabled element is an optional child element of type boolean ([MS-ASDTYPE] section 2.1) of the EASProvisionDoc element (section 2.2.2.27).");

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

                // Verify MS-ASPROV requirement: MS-ASPROV_R292
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    292,
                    @"[In PasswordRecoveryEnabled] The PasswordRecoveryEnabled element cannot have child elements.");

                this.VerifyBooleanStructure();
            }

            if (policiesSetting.ContainsKey("RequireDeviceEncryption"))
            {
                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R326");

                // Verify MS-ASPROV requirement: MS-ASPROV_R326
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    326,
                    @"[In RequireDeviceEncryption] The RequireDeviceEncryption element is an optional child element of type boolean ([MS-ASDTYPE] section 2.1) of the EASProvisionDoc element (section 2.2.2.27).");

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

                // Verify MS-ASPROV requirement: MS-ASPROV_R327
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    327,
                    @"[In RequireDeviceEncryption] The RequireDeviceEncryption element cannot have child elements.");

                this.VerifyBooleanStructure();
            }

            if (policiesSetting.ContainsKey("RequireEncryptedSMIMEMessages"))
            {
                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R331");

                // Verify MS-ASPROV requirement: MS-ASPROV_R331
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    331,
                    @"[In RequireEncryptedSMIMEMessages] The RequireEncryptedSMIMEMessages element is an optional child element of type boolean ([MS-ASDTYPE] section 2.1) of the EASProvisionDoc element (section 2.2.2.27).");

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

                // Verify MS-ASPROV requirement: MS-ASPROV_R327
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    332,
                    @"[In RequireEncryptedSMIMEMessages] The RequireEncryptedSMIMEMessages element cannot have child elements.");

                this.VerifyBooleanStructure();

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

                // Verify MS-ASPROV requirement: MS-ASPROV_R333
                // Since MS-ASDTYPE_R5 has been verified in VerifyBooleanStructure, so this requirement can be captured.
                Site.CaptureRequirement(
                    333,
                    @"[In RequireEncryptedSMIMEMessages] Valid values [0,1] for RequireEncryptedSMIMEMessages are listed in the following table.");
            }

            if (policiesSetting.ContainsKey("RequireEncryptionSMIMEAlgorithm"))
            {
                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R336");

                // Verify MS-ASPROV requirement: MS-ASPROV_R336
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    336,
                    @"[In RequireEncryptionSMIMEAlgorithm] The RequireEncryptionSMIMEAlgorithm element is an optional child element of type integer ([MS-ASDTYPE] section 2.5) of the EASProvisionDoc element (section 2.2.2.27).");

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

                // Verify MS-ASPROV requirement: MS-ASPROV_R337
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    337,
                    @"[In RequireEncryptionSMIMEAlgorithm] The RequireEncryptionSMIMEAlgorithm element cannot have child elements.");

                this.VerifyIntegerStructure();

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

                Common.VerifyActualValues("RequireEncryptionSMIMEAlgorithm", new string[] { "0", "1", "2", "3", "4" }, provisionResponse.ResponseData.Policies.Policy.Data.EASProvisionDoc.RequireEncryptionSMIMEAlgorithm.ToString(), Site);

                // Verify MS-ASPROV requirement: MS-ASPROV_R338
                // The actual value is one of the valid values, so this requirement can be captured.
                Site.CaptureRequirement(
                    338,
                    @"[In RequireEncryptionSMIMEAlgorithm] Valid values [0,1,2,3,4] for RequireEncryptionSMIMEAlgorithm are listed in the following table.");
            }

            if (policiesSetting.ContainsKey("RequireManualSyncWhenRoaming"))
            {
                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R344");

                // Verify MS-ASPROV requirement: MS-ASPROV_R344
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    344,
                    @"[In RequireManualSyncWhenRoaming] The RequireManualSyncWhenRoaming element is an optional child element of type boolean ([MS-ASDTYPE] section 2.1) of the EASProvisionDoc element (section 2.2.2.27).");

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

                // Verify MS-ASPROV requirement: MS-ASPROV_R345
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    345,
                    @"[In RequireManualSyncWhenRoaming] The RequireManualSyncWhenRoaming element cannot have child elements.");

                this.VerifyBooleanStructure();
            }

            if (policiesSetting.ContainsKey("RequireSignedSMIMEAlgorithm"))
            {
                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R349");

                // Verify MS-ASPROV requirement: MS-ASPROV_R349
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    349,
                    @"[In RequireSignedSMIMEAlgorithm] The RequireSignedSMIMEAlgorithm element is an optional child element of type integer ([MS-ASDTYPE] section 2.5) of the EASProvisionDoc element (section 2.2.2.27).");

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

                // Verify MS-ASPROV requirement: MS-ASPROV_R350
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    350,
                    @"[In RequireSignedSMIMEAlgorithm] The RequireSignedSMIMEAlgorithm element cannot have child elements.");

                this.VerifyIntegerStructure();

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

                Common.VerifyActualValues("RequireSignedSMIMEAlgorithm", new string[] { "0", "1" }, provisionResponse.ResponseData.Policies.Policy.Data.EASProvisionDoc.RequireSignedSMIMEAlgorithm.ToString(), Site);

                // Verify MS-ASPROV requirement: MS-ASPROV_R351
                // The value of RequireSignedSMIMEAlgorithm element is one of valid values, so this requirement can be captured.
                Site.CaptureRequirement(
                    351,
                    @"[In RequireSignedSMIMEAlgorithm] Valid values [0,1] for RequireSignedSMIMEAlgorithm are listed in the following table.");
            }

            if (policiesSetting.ContainsKey("RequireSignedSMIMEMessages"))
            {
                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R354");

                // Verify MS-ASPROV requirement: MS-ASPROV_R354
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    354,
                    @"[In RequireSignedSMIMEMessages] The RequireSignedSMIMEMessages element is an optional child element of type boolean ([MS-ASDTYPE] section 2.1) of the EASProvisionDoc element (section 2.2.2.27).");

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

                // Verify MS-ASPROV requirement: MS-ASPROV_R355
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    355,
                    @"[In RequireSignedSMIMEMessages] The RequireSignedSMIMEMessages element cannot have child elements.");

                this.VerifyBooleanStructure();

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

                // Verify MS-ASPROV requirement: MS-ASPROV_R356
                // Since MS-ASDTYPE_R5 has been verified in VerifyBooleanStructure, so this requirement can be captured.
                Site.CaptureRequirement(
                    356,
                    @"[In RequireSignedSMIMEMessages] Valid values [0,1] for RequireSignedSMIMEMessages are listed in the following table.");
            }

            if (policiesSetting.ContainsKey("RequireStorageCardEncryption"))
            {
                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R359");

                // Verify MS-ASPROV requirement: MS-ASPROV_R359
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    359,
                    @"[In RequireStorageCardEncryption] The RequireStorageCardEncryption element is an optional child element of type boolean ([MS-ASDTYPE] section 2.1) of the EASProvisionDoc element (section 2.2.2.27).");

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

                // Verify MS-ASPROV requirement: MS-ASPROV_R360
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    360,
                    @"[In RequireStorageCardEncryption] The RequireStorageCardEncryption element cannot have child elements.");

                this.VerifyBooleanStructure();
            }

            if (policiesSetting.ContainsKey("UnapprovedInROMApplicationList"))
            {
                // Add the debug information
                Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R404");

                // Verify MS-ASPROV requirement: MS-ASPROV_R404
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    404,
                    @"[In UnapprovedInROMApplicationList] The UnapprovedInROMApplicationList element is an optional container ([MS-ASDTYPE] section 2.2) element.");

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

                // Verify MS-ASPROV requirement: MS-ASPROV_R405
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    405,
                    @"[In UnapprovedInROMApplicationList] It [UnapprovedInROMApplicationList element] is a child of the EASProvisionDoc element (section 2.2.2.27).");

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

                // Verify MS-ASPROV requirement: MS-ASPROV_R408
                // The schema has been validated, so this requirement can be captured.
                Site.CaptureRequirement(
                    408,
                    @"[In UnapprovedInROMApplicationList] A command response has a maximum of one UnapprovedInROMApplicationList element per EASProvisionDoc element.");

                this.VerifyContainerStructure();

                if (provisionResponse.ResponseData.Policies.Policy.Data.EASProvisionDoc.UnapprovedInROMApplicationList.Length != 0)
                {
                    // Add the debug information
                    Site.Log.Add(LogEntryKind.Debug, "Verify MS-ASPROV_R189");

                    // Verify MS-ASPROV requirement: MS-ASPROV_R189
                    // The schema has been validated, so this requirement can be captured.
                    Site.CaptureRequirement(
                        189,
                        @"[In ApplicationName] The ApplicationName element is an optional child element of type string ([MS-ASDTYPE] section 2.6) of the UnapprovedInROMApplicationList element (section 2.2.2.54).");

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

                    // Verify MS-ASPROV requirement: MS-ASPROV_R409
                    // The schema has been validated, so this requirement can be captured.
                    Site.CaptureRequirement(
                        409,
                        @"[In UnapprovedInROMApplicationList] The UnapprovedInROMApplicationList element has only the following child element: ApplicationName (section 2.2.2.20): This element is optional.");
                }
            }
        }
        #endregion