Microsoft.Protocols.TestSuites.MS_OXCMAPIHTTP.MS_OXCMAPIHTTPAdapter.VerifyLargePropertyTagArrayStructure C# (CSharp) Method

VerifyLargePropertyTagArrayStructure() private method

Verify the LargePropTagArray structure related requirements.
private VerifyLargePropertyTagArrayStructure ( LargePropertyTagArray largePropTagArray ) : void
largePropTagArray LargePropertyTagArray The LargePropTagArray value to be verified.
return void
        private void VerifyLargePropertyTagArrayStructure(LargePropertyTagArray largePropTagArray)
        {
            // Add the debug information
            this.Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCMAPIHTTP_R24");
        
            // Verify MS-OXCMAPIHTTP requirement: MS-OXCMAPIHTTP_R24
            this.Site.CaptureRequirementIfIsInstanceOfType(
                largePropTagArray.PropertyTagCount,
                typeof(uint),
                24,
                @"[In LargePropertyTagArray Structure] PropertyTagCount (4 bytes): An unsigned integer that specifies the number of structures contained in the PropertyTags field.");

            // Add the debug information
            this.Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCMAPIHTTP_R25, the value of PropertyTagCount is {0}.", largePropTagArray.PropertyTagCount);
        
            // Verify MS-OXCMAPIHTTP requirement: MS-OXCMAPIHTTP_R25
            this.Site.CaptureRequirementIfIsTrue(
                largePropTagArray.PropertyTagCount <= 100000,
                25,
                @"[In LargePropertyTagArray Structure] [PropertyTagCount (4 bytes)] The number is limited to 100,000.");

            // Add the debug information
            this.Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCMAPIHTTP_R26");
        
            // Verify MS-OXCMAPIHTTP requirement: MS-OXCMAPIHTTP_R26
            this.Site.CaptureRequirementIfIsInstanceOfType(
                largePropTagArray.PropertyTags,
                typeof(PropertyTag[]),
                26,
                @"[In LargePropertyTagArray Structure] PropertyTags (variable): An array of PropertyTag structures ([MS-OXCDATA] section 2.9), each of which contains a property tag that specifies a property.");
        
            PropertyTag[] propertytags = largePropTagArray.PropertyTags;
            foreach (PropertyTag propertyTag in propertytags)
            {
                // Add the debug information
                this.Site.Log.Add(LogEntryKind.Debug, "Verify MS-OXCDATA_R181");

                // Verify MS-OXCMAPIHTTP requirement: MS-OXCDATA_R181
                this.Site.CaptureRequirementIfIsInstanceOfType(
                    propertyTag.PropertyType,
                    typeof(ushort),
                    "MS-OXCDATA",
                    181,
                    @"[In PropertyTag Structure] PropertyType (2 bytes): An unsigned integer that identifies the data type of the property value, as specified by the table in section 2.11.1.");

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

                // Verify MS-OXCMAPIHTTP requirement: MS-OXCDATA_R182
                this.Site.CaptureRequirementIfIsInstanceOfType(
                    propertyTag.PropertyId,
                    typeof(ushort),
                    "MS-OXCDATA",
                    182,
                    @"[In PropertyTag Structure] PropertyId (2 bytes): An unsigned integer that identifies the property.");
            }

            // Since Test Suite parsed largePropTagArray structure according to Specification, and the PropertyTag has been walked in the upper step,
            // so if the program run to here, R23 can be verified directly.
            this.Site.CaptureRequirement(
                23,
                @"[In LargePropertyTagArray Structure] The LargePropertyTagArray structure contains a list of property tags.");
        }
        #endregion
MS_OXCMAPIHTTPAdapter