Ejemplo n.º 1
0
        /// <summary>
        /// This method is used to deserialize the items of the fragment knowledge from the byte array.
        /// </summary>
        /// <param name="byteArray">Specify the byte array.</param>
        /// <param name="currentIndex">Specify the start index from the byte array.</param>
        /// <param name="lengthOfItems">Specify the current length of items in the fragment knowledge.</param>
        protected override void DeserializeItemsFromByteArray(byte[] byteArray, ref int currentIndex, int lengthOfItems)
        {
            if (lengthOfItems != 0)
            {
                throw new KnowledgeParseErrorException(currentIndex, "FragmentKnowledge object over-parse error", null);
            }

            int index = currentIndex;

            FragmentKnowledgeEntry fragmentKnowledgeEntry = null;

            while (StreamObject.TryGetCurrent <FragmentKnowledgeEntry>(byteArray, ref index, out fragmentKnowledgeEntry))
            {
                this.FragmentKnowledgeEntriesList.Add(fragmentKnowledgeEntry);
            }

            currentIndex = index;
        }
Ejemplo n.º 2
0
        /// <summary>
        /// This method is used to test Fragment Knowledge Entry related adapter requirements.
        /// </summary>
        /// <param name="instance">Specify the instance which need to be verified.</param>
        /// <param name="site">Specify the ITestSite instance.</param>
        public void VerifyFragmentKnowledgeEntry(FragmentKnowledgeEntry instance, ITestSite site)
        {
            // If the instance is not null and there are no parsing errors, then the Fragment Knowledge Entry related adapter requirements can be directly captured.
            if (null == instance)
            {
                site.Assert.Fail("The instance of type FragmentKnowledgeEntry is null due to parsing error or type casting error.");
            }

            // Verify the stream object header related requirements.
            this.ExpectStreamObjectHeaderStart(instance.StreamObjectHeaderStart, instance.GetType(), site);

            // Capture requirement MS-FSSHTTPB_R566, if stream object start type is StreamObjectHeaderStart32bit.
            site.CaptureRequirementIfAreEqual <Type>(
                typeof(StreamObjectHeaderStart32bit),
                instance.StreamObjectHeaderStart.GetType(),
                "MS-FSSHTTPB",
                566,
                @"[In Fragment Knowledge Entry] Fragment Descriptor (4 bytes): A 32-bit stream object header (section 2.2.1.5.2) that specifies a fragment knowledge entry.");

            // Directly capture requirement MS-FSSHTTPB_R567, if there are no parsing errors.
            site.CaptureRequirement(
                "MS-FSSHTTPB",
                567,
                @"[In Fragment Knowledge Entry] Extended GUID (variable): An extended GUID (section 2.2.1.7) that specifies the data element this fragment knowledge entry contains knowledge about.");

            // Directly capture requirement MS-FSSHTTPB_R568, if there are no parsing errors.
            site.CaptureRequirement(
                "MS-FSSHTTPB",
                568,
                @"[In Fragment Knowledge Entry] Data Element Size (variable): A compact unsigned 64-bit integer (section 2.2.1.1) specifying the size in bytes of the data element specified by the preceding Extended GUID.");

            // Directly capture requirement MS-FSSHTTPB_R569, if there are no parsing errors.
            site.CaptureRequirement(
                "MS-FSSHTTPB",
                569,
                @"[In Fragment Knowledge Entry] Data Element Chunk Reference (variable): A file chunk reference (section 2.2.1.2) specifying which part of the data element with the preceding GUID this fragment knowledge entry contains knowledge about.");

            // Verify the stream object header end related requirements.
            this.ExpectSingleObject(instance.StreamObjectHeaderStart, site);
        }
        /// <summary>
        /// This method is used to test Fragment Knowledge Entry related adapter requirements.
        /// </summary>
        /// <param name="instance">Specify the instance which need to be verified.</param>
        /// <param name="site">Specify the ITestSite instance.</param>
        public void VerifyFragmentKnowledgeEntry(FragmentKnowledgeEntry instance, ITestSite site)
        {
            // If the instance is not null and there are no parsing errors, then the Fragment Knowledge Entry related adapter requirements can be directly captured.
            if (null == instance)
            {
                site.Assert.Fail("The instance of type FragmentKnowledgeEntry is null due to parsing error or type casting error.");
            }

            // Verify the stream object header related requirements.
            this.ExpectStreamObjectHeaderStart(instance.StreamObjectHeaderStart, instance.GetType(), site);

            // Capture requirement MS-FSSHTTPB_R566, if stream object start type is StreamObjectHeaderStart32bit. 
            site.CaptureRequirementIfAreEqual<Type>(
                     typeof(StreamObjectHeaderStart32bit),
                     instance.StreamObjectHeaderStart.GetType(),
                     "MS-FSSHTTPB",
                     566,
                     @"[In Fragment Knowledge Entry] Fragment Descriptor (4 bytes): A 32-bit stream object header (section 2.2.1.5.2) that specifies a fragment knowledge entry.");

            // Directly capture requirement MS-FSSHTTPB_R567, if there are no parsing errors. 
            site.CaptureRequirement(
                     "MS-FSSHTTPB",
                     567,
                     @"[In Fragment Knowledge Entry] Extended GUID (variable): An extended GUID (section 2.2.1.7) that specifies the data element this fragment knowledge entry contains knowledge about.");

            // Directly capture requirement MS-FSSHTTPB_R568, if there are no parsing errors. 
            site.CaptureRequirement(
                     "MS-FSSHTTPB",
                     568,
                     @"[In Fragment Knowledge Entry] Data Element Size (variable): A compact unsigned 64-bit integer (section 2.2.1.1) specifying the size in bytes of the data element specified by the preceding Extended GUID.");

            // Directly capture requirement MS-FSSHTTPB_R569, if there are no parsing errors. 
            site.CaptureRequirement(
                     "MS-FSSHTTPB",
                     569,
                     @"[In Fragment Knowledge Entry] Data Element Chunk Reference (variable): A file chunk reference (section 2.2.1.2) specifying which part of the data element with the preceding GUID this fragment knowledge entry contains knowledge about.");

            // Verify the stream object header end related requirements.
            this.ExpectSingleObject(instance.StreamObjectHeaderStart, site);
        }