public void BuildEnvelopeMessage_TestCaseFinishedSuccess_ShouldReturnEnvelopeWithTestCaseFinishedMessage()
        {
            // ARRANGE
            var cucumberMessageFactory = new CucumberMessageFactory();
            var testCaseFinished       = new TestCaseFinished
            {
                PickleId   = Guid.NewGuid().ToString(),
                TestResult = new TestResult(),
                Timestamp  = new Timestamp()
            };

            // ACT
            var result = cucumberMessageFactory.BuildEnvelopeMessage(new Success <TestCaseFinished>(testCaseFinished));

            // ASSERT
            result.Should().BeAssignableTo <ISuccess <Envelope> >().Which
            .Result.TestCaseFinished.Should().Be(testCaseFinished);
        }
Beispiel #2
0
        public void BuildEnvelopeMessage_TestCaseFinishedSuccess_ShouldReturnEnvelopeOfTypeTestCaseFinished()
        {
            // ARRANGE
            var cucumberMessageFactory = new CucumberMessageFactory();
            var dateTime         = new DateTime(2019, 5, 9, 14, 27, 48, DateTimeKind.Utc);
            var testCaseFinished = new TestCaseFinished
            {
                PickleId   = Guid.NewGuid().ToString(),
                TestResult = new TestResult(),
                Timestamp  = Timestamp.FromDateTime(dateTime)
            };

            // ACT
            var result = cucumberMessageFactory.BuildEnvelopeMessage(new Success <TestCaseFinished>(testCaseFinished));

            // ASSERT
            result.Should().BeAssignableTo <ISuccess <Envelope> >().Which
            .Result.MessageCase.Should().Be(Envelope.MessageOneofCase.TestCaseFinished);
        }
        public IResult <TestCaseFinished> BuildTestCaseFinishedMessage(Guid pickleId, DateTime timeStamp, TestResult testResult)
        {
            if (testResult is null)
            {
                return(Result <TestCaseFinished> .Failure(new ArgumentNullException(nameof(testResult))));
            }

            if (timeStamp.Kind != DateTimeKind.Utc)
            {
                return(Result <TestCaseFinished> .Failure($"{nameof(timeStamp)} must be an UTC {nameof(DateTime)}. It is {timeStamp.Kind}"));
            }

            var testCaseFinished = new TestCaseFinished
            {
                PickleId   = ConvertToPickleIdString(pickleId),
                Timestamp  = Timestamp.FromDateTime(timeStamp),
                TestResult = testResult
            };

            return(Result <TestCaseFinished> .Success(testCaseFinished));
        }
Beispiel #4
0
        public bool BeforeFinished(IMessageBus messageBus, TestCaseFinished message)
        {
            if (UIThreadHelper.Instance.Invoke(() => ThreadHelper.CheckAccess()))
            {
                return(true);
            }

            // Try to restore service provider and original thread.
            // Terminate test execution if not succeeded
            try
            {
                UIThreadHelper.Instance.Invoke(() => ServiceProvider.CreateFromSetSite(_oleServiceProvider));
            }
            catch (Exception ex)
            {
                messageBus.QueueMessage(new TestCaseCleanupFailure(message.TestCase, ex));
                return(false);
            }

            InvalidOperationException exception = new InvalidOperationException("Test changes or accesses ServiceProvider.GlobalProvider from non-UI thread. Try annotate it with ThreadType.UI");

            return(messageBus.QueueMessage(new TestCaseCleanupFailure(message.TestCase, exception)));
        }