コード例 #1
0
        /// <summary>
        /// Used to verify the captured message according to the expected messages
        /// given in the examples from open specifications
        /// </summary>
        /// <param name="messageList">A real captured message sequence ordered by MessageNumber</param>
        private bool VerifyMessageSequence(Microsoft.Protocols.TestTools.MessageAnalyzer.Session capture)
        {
            IList <Message>        capturedMessages = capture.SortedMessagesWithOperationChildrenList;
            List <ExpectedMessage> expectedMessages = expectedMessageList.ExpectedMessages;
            bool match = true;

            int[,] b = LCSLength(expectedMessages, capturedMessages, out match);
            PrintLCS(b, expectedMessages, capturedMessages, expectedMessages.Count, capturedMessages.Count, capture);
            return(match);
        }
コード例 #2
0
        /// <summary>
        /// Used to verify the captured message according to the expected messages
        /// given in the examples from open specifications.
        /// </summary>
        /// <param name="messageList">Specifies a real captured message sequence ordered by MessageNumber.</param>
        private void VerifyMessageSequence(Microsoft.Protocols.TestTools.MessageAnalyzer.Session capture)
        {
            IList <Message>        capturedMessages = capture.SortedMessagesWithOperationChildrenList;
            List <ExpectedMessage> expectedMessages = expectedMessageList.ExpectedMessages;
            bool match = true;

            int[,] b = LCSLength(expectedMessages, capturedMessages, out match);
            PrintLCS(b, expectedMessages, capturedMessages, expectedMessages.Count, capturedMessages.Count, capture);

            try
            {
                site.Assert.IsTrue(match, "Captured messages should match the expected message sequence provided in [MS-ADOD].");
            }
            catch
            {
                site.Log.Add(LogEntryKind.Debug, "WARNING: MA Capture file does NOT match the recommended messages provided in [MS-ADOD]. Although you have passed the status checking, there are still some expected messages missing from the captured traffic. Please check the method you are using to trigger the test cases. One possibility is that you are using some old RPC methods.");
            }
        }
コード例 #3
0
 /// <summary>
 /// Print out the longest common subsequences (LCS) between the expected messages and the captured messages.
 /// </summary>
 /// <param name="b">Specifies the value of this 2D array indicates the direction when retrieving elements from this table to construct the LCS.</param>
 /// <param name="expectedMessages">Specifies the expected message list.</param>
 /// <param name="capturedMessages">Specifies the captured message list.</param>
 /// <param name="i">Specifies the current element of the expected message list.</param>
 /// <param name="j">Specifies the current element of the captured message list.</param>
 /// <param name="capture">Specifies the capture file for verification.</param>
 private void PrintLCS(int[,] b, List <ExpectedMessage> expectedMessages, IList <Message> capturedMessages, int i, int j, Microsoft.Protocols.TestTools.MessageAnalyzer.Session capture)
 {
     if (i == 0 || j == 0)
     {
         return;
     }
     if (b[i, j] == 0)
     {
         PrintLCS(b, expectedMessages, capturedMessages, i - 1, j - 1, capture);
         site.Log.Add(LogEntryKind.CheckSucceeded,
                      String.Format(CultureInfo.InvariantCulture, "Verify message succeed. Expected message is #{0}: {1};\nCaptured message is #{2}: {3}.",
                                    i - 1,
                                    expectedMessages[i - 1].Name,
                                    capturedMessages[j - 1].MessageNumber,
                                    capturedMessages[j - 1].TypeName));
     }
     else if (b[i, j] == 1)
     {
         PrintLCS(b, expectedMessages, capturedMessages, i - 1, j, capture);
         site.Log.Add(LogEntryKind.CheckFailed,
                      String.Format(CultureInfo.InvariantCulture, "Expected message not found. Expected message is #{0}: {1}.",
                                    i - 1,
                                    expectedMessages[i - 1].Name));
         if (expectedMessages[i - 1].Description != null)
         {
             site.Log.Add(LogEntryKind.Debug, String.Format(CultureInfo.InvariantCulture, "The missing message is for \"{0}\".",
                                                            expectedMessages[i - 1].Description));
         }
     }
     else
     {
         PrintLCS(b, expectedMessages, capturedMessages, i, j - 1, capture);
     }
 }