protected virtual XElement CreateXTestCase()
        {
            Debug.Assert(TestContext != null, "Can't create a test case w/o a context. Use a default context instance.");

            // Create the base
            string   testCaseName = UnitTestsUtil.GetUnitTestCaseDisplayName(Test.OwningTestMethod, TestArgs);
            XElement xtestCase    = new XElement(XTestCaseNames.TestCase
                                                 , new XAttribute(XTestCaseNames.ATestTypeName, TestTypeName)
                                                 , new XAttribute(XNames.AName, testCaseName)
                                                 , new XAttribute(XTestCaseNames.AContextName, TestContext.Name)
                                                 );

            // Add the test source info
            xtestCase.Add(Test.TestSource.ToXTestCaseSource());

            // Add the test arguments
            if (TestArgs != null)
            {
                xtestCase.Add(new XElement(TestArgs.DataElement));
            }

            // ** Add expected result element
            string expResultKey = TestContext.ExpectedResultKey;
            ExpectedTestResultEntity expResult = Test.OwningTestMethod.GetExpectedResult(expResultKey);

            if (expResult != null)
            {
                xtestCase.Add(new XElement(expResult.DataElement));
            }

            // Add expectedRegressionTestResult
            if (EnableRegressionTestAsserts)
            {
                ExpectedRegressionTestResultEntity expRegressionResult = Test.TestSource.GetExpectedRegressionTestResult();
                if (expRegressionResult != null)
                {
                    xtestCase.Add(new XElement(expRegressionResult.DataElement));
                }
            }

            return(xtestCase);
        }
Exemplo n.º 2
0
        internal TestResultEntity ProcessExpectedResultAssertions(TestResultEntity testResult)
        {
            ExpectedTestResultEntity expResult = metadata.TestCase.ExpectedTestResult;

            if (expResult != null)
            {
                XElement xtestResults = testResult.DataElement;

                try
                {
                    // First, do the common result assertions
                    // If the expResult is specified, the ResultType is required by the xml schema
                    Assert.AreEqual(expResult.ResultType, testResult.ResultType, "Result.ResultType");
                    if (expResult.Message != null)
                    {
                        Assert.AreEqual(expResult.Message, testResult.Message, "Result.Message");
                    }

                    // If we got here, than all the assertions passed
                    xtestResults.SetAttributeValue(XTestResultNames.ATestResultType, TestResultType.Passed);
                    xtestResults.SetElementValue(XTestResultNames.ResultMessage, "Passed expected result assertions.");
                }
                catch (AssertFailedException ex)
                {
                    xtestResults.SetAttributeValue(XTestResultNames.ATestResultType, TestResultType.ResultAssertFailure);
                    xtestResults.SetElementValue(XTestResultNames.ResultMessage, ex.Message);
                }
                catch (AssertInconclusiveException ex)
                {
                    xtestResults.SetAttributeValue(XTestResultNames.ATestResultType, TestResultType.ResultInconclusive);
                    xtestResults.SetElementValue(XTestResultNames.ResultMessage, ex.Message);
                }
                catch (Exception ex)
                {
                    xtestResults.SetAttributeValue(XTestResultNames.ATestResultType, TestResultType.Error);
                    xtestResults.SetElementValue(XTestResultNames.ResultMessage, "Expected Result Assertion: " + ex.Message);
                }
            }

            return(testResult);
        }