Ejemplo n.º 1
0
        public void OneListener_EventIsRaised()
        {
            var logger      = new TestLogger();
            var testSubject = new AnalysisRequester(logger);

            bool   eventRaised  = false;
            object actualSender = null;
            AnalysisRequestEventArgs actualEventArgs = null;

            testSubject.AnalysisRequested += (s, args) =>
            {
                // Don't assert here - one a background thread,
                // and the exception will be caught and suppressed.

                actualSender    = s;
                actualEventArgs = args;
                eventRaised     = true;
            };


            var inputOptions = new Mock <IAnalyzerOptions>().Object;

            // Act
            testSubject.RequestAnalysis(inputOptions, "file1", "c:\\aaa\\bbb.cs");

            // Assert
            eventRaised.Should().BeTrue();
            actualSender.Should().Be(testSubject);
            actualEventArgs.Should().NotBeNull();
            actualEventArgs.Options.Should().BeSameAs(inputOptions);
            actualEventArgs.FilePaths.Should().BeEquivalentTo("file1", "c:\\aaa\\bbb.cs");
        }
        public void NoListeners_NoError()
        {
            var logger      = new TestLogger();
            var testSubject = new AnalysisRequester(logger);

            testSubject.RequestAnalysis();

            logger.AssertNoOutputMessages();
        }
        public void CriticalErrorInListener_IsNotSuppressedORLogged()
        {
            var logger      = new TestLogger();
            var testSubject = new AnalysisRequester(logger);

            testSubject.AnalysisRequested += (s, e) => throw new StackOverflowException("XXX overflow");

            Action act = () => testSubject.RequestAnalysis();

            // Act
            act.Should().ThrowExactly <StackOverflowException>().And.Message.Should().Be("XXX overflow");
            logger.AssertNoOutputMessages();
        }
        public void NonCriticalErrorInListener_IsSuppressedAndLogged()
        {
            var logger      = new TestLogger();
            var testSubject = new AnalysisRequester(logger);

            testSubject.AnalysisRequested += (s, e) => throw new ArgumentException("XXX yyy");

            // Act
            testSubject.RequestAnalysis();

            // Assert
            logger.AssertPartialOutputStringExists("XXX yyy");
        }
        public void OneListener_EventIsRaised()
        {
            var logger      = new TestLogger();
            var testSubject = new AnalysisRequester(logger);

            bool eventRaised = false;

            testSubject.AnalysisRequested += (s, e) =>
            {
                s.Should().Be(testSubject);
                e.Should().Be(EventArgs.Empty);

                eventRaised = true;
            };

            // Act
            testSubject.RequestAnalysis();

            // Assert
            eventRaised.Should().BeTrue();
        }