コード例 #1
0
ファイル: ViewModelTests.cs プロジェクト: xxxmen/Rubberduck
        public void UIDiscoversAnnotatedTestMethods()
        {
            var testMethods = @"'@TestMethod
Public Sub TestMethod1()
End Sub";

            var builder = new MockVbeBuilder()
                          .ProjectBuilder("TestProject1", ProjectProtection.Unprotected)
                          .AddComponent("TestModule1", ComponentType.StandardModule, GetTestModuleInput + testMethods)
                          .AddProjectToVbeBuilder();

            var vbe = builder.Build().Object;

            var parser = MockParser.Create(vbe);

            using (var state = parser.State)
            {
                var model = new TestExplorerModel(vbe, state);

                parser.Parse(new CancellationTokenSource());
                if (state.Status >= ParserState.Error)
                {
                    Assert.Inconclusive("Parser Error");
                }

                Assert.AreEqual(1, model.Tests.Count);
            }
        }
コード例 #2
0
        public void ClearLastRun()
        {
            var testMethods = @"'@TestMethod
Public Sub TestMethod1()
End Sub";

            var builder = new MockVbeBuilder();
            var project = builder.ProjectBuilder("TestProject1", vbext_ProjectProtection.vbext_pp_none)
                          .AddComponent("TestModule1", vbext_ComponentType.vbext_ct_StdModule, GetTestModuleInput + testMethods);

            var vbe      = builder.AddProject(project.Build()).Build();
            var mockHost = new Mock <IHostApplication>();

            mockHost.SetupAllProperties();
            var parser = MockParser.Create(vbe.Object, new RubberduckParserState(new Mock <ISinks>().Object));

            var model = new TestExplorerModel(vbe.Object, parser.State);

            parser.Parse(new CancellationTokenSource());
            if (parser.State.Status >= ParserState.Error)
            {
                Assert.Inconclusive("Parser Error");
            }

            model.Tests[0].Result = new TestResult(TestOutcome.Succeeded);
            model.AddExecutedTest(model.Tests[0]);

            Assert.AreEqual(1, model.LastRun.Count);

            model.ClearLastRun();

            Assert.AreEqual(0, model.LastRun.Count);
        }
コード例 #3
0
        public void UIDiscoversAnnotatedTestMethods()
        {
            var testMethods = @"'@TestMethod
Public Sub TestMethod1()
End Sub";

            var builder = new MockVbeBuilder();
            var project = builder.ProjectBuilder("TestProject1", vbext_ProjectProtection.vbext_pp_none)
                          .AddComponent("TestModule1", vbext_ComponentType.vbext_ct_StdModule, GetTestModuleInput + testMethods);

            var vbe      = builder.AddProject(project.Build()).Build();
            var mockHost = new Mock <IHostApplication>();

            mockHost.SetupAllProperties();
            var parser = MockParser.Create(vbe.Object, new RubberduckParserState());

            var model = new TestExplorerModel(vbe.Object, parser.State);

            parser.Parse();
            if (parser.State.Status >= ParserState.Error)
            {
                Assert.Inconclusive("Parser Error");
            }

            Assert.AreEqual(1, model.Tests.Count);
        }
コード例 #4
0
        public void UISetsProgressBarColor_LimeGreenForSuccess()
        {
            var testMethods = @"'@TestMethod
Public Sub TestMethod1()
End Sub";

            var builder = new MockVbeBuilder();
            var project = builder
                          .ProjectBuilder("TestProject1", ProjectProtection.Unprotected)
                          .AddComponent("TestModule1", ComponentType.StandardModule, GetTestModuleInput + testMethods);

            var vbe    = builder.AddProject(project.Build()).Build().Object;
            var parser = MockParser.Create(vbe, new RubberduckParserState(vbe));

            var model = new TestExplorerModel(vbe, parser.State);

            parser.Parse(new CancellationTokenSource());
            if (parser.State.Status >= ParserState.Error)
            {
                Assert.Inconclusive("Parser Error");
            }

            model.Tests.First().Result = new TestResult(TestOutcome.Succeeded);
            model.AddExecutedTest(model.Tests.First());

            Assert.AreEqual(model.ProgressBarColor, Colors.LimeGreen);
        }
コード例 #5
0
        public void AddingExecutedTestUpdatesLastRun()
        {
            var testMethods = @"'@TestMethod
Public Sub TestMethod1()
End Sub";

            var builder = new MockVbeBuilder();
            var project = builder.ProjectBuilder("TestProject1", ProjectProtection.Unprotected)
                          .AddComponent("TestModule1", ComponentType.StandardModule, GetTestModuleInput + testMethods);

            var vbe    = builder.AddProject(project.Build()).Build().Object;
            var parser = MockParser.Create(vbe, new RubberduckParserState(vbe));

            var model = new TestExplorerModel(vbe, parser.State);

            parser.Parse(new CancellationTokenSource());
            if (parser.State.Status >= ParserState.Error)
            {
                Assert.Inconclusive("Parser Error");
            }

            Assert.AreEqual(0, model.LastRun.Count);

            model.Tests[0].Result = new TestResult(TestOutcome.Succeeded);
            model.AddExecutedTest(model.Tests[0]);

            Assert.AreEqual(1, model.LastRun.Count);
        }
コード例 #6
0
        public void UISetsProgressBarColor_LimeGreenForSuccess()
        {
            var testMethods = @"'@TestMethod
Public Sub TestMethod1()
End Sub";

            var builder = new MockVbeBuilder();
            var project = builder.ProjectBuilder("TestProject1", vbext_ProjectProtection.vbext_pp_none)
                          .AddComponent("TestModule1", vbext_ComponentType.vbext_ct_StdModule, GetTestModuleInput + testMethods);

            var vbe      = builder.AddProject(project.Build()).Build();
            var mockHost = new Mock <IHostApplication>();

            mockHost.SetupAllProperties();
            var parser = MockParser.Create(vbe.Object, new RubberduckParserState());

            var model = new TestExplorerModel(vbe.Object, parser.State);

            parser.Parse();
            if (parser.State.Status >= ParserState.Error)
            {
                Assert.Inconclusive("Parser Error");
            }

            model.Tests.First().Result = new TestResult(TestOutcome.Succeeded);
            model.AddExecutedTest(model.Tests.First());

            Assert.AreEqual(model.ProgressBarColor, Colors.LimeGreen);
        }
コード例 #7
0
 public RunAllTestsCommand(VBE vbe, RubberduckParserState state, ITestEngine engine, TestExplorerModel model) : base(LogManager.GetCurrentClassLogger())
 {
     _vbe    = vbe;
     _engine = engine;
     _model  = model;
     _state  = state;
 }
コード例 #8
0
ファイル: TestEngine.cs プロジェクト: tommy9/Rubberduck
 public TestEngine(TestExplorerModel model, IVBE vbe, RubberduckParserState state, IFakesProviderFactory fakesFactory)
 {
     Debug.WriteLine("TestEngine created.");
     Model         = model;
     _vbe          = vbe;
     _state        = state;
     _fakesFactory = fakesFactory;
 }
コード例 #9
0
 public RunAllTestsCommand(IVBE vbe, RubberduckParserState state, ITestEngine engine, TestExplorerModel model, IDockablePresenter presenter)
     : base(LogManager.GetCurrentClassLogger())
 {
     _vbe       = vbe;
     _engine    = engine;
     _model     = model;
     _state     = state;
     _presenter = presenter;
 }
コード例 #10
0
ファイル: TestEngine.cs プロジェクト: xxxmen/Rubberduck
        public TestEngine(TestExplorerModel model, IVBE vbe, RubberduckParserState state, IFakesFactory fakesFactory, IVBETypeLibsAPI typeLibApi, IUiDispatcher uiDispatcher)
        {
            Debug.WriteLine("TestEngine created.");
            Model         = model;
            _vbe          = vbe;
            _state        = state;
            _fakesFactory = fakesFactory;
            _typeLibApi   = typeLibApi;
            _uiDispatcher = uiDispatcher;

            _state.StateChanged += StateChangedHandler;
        }
コード例 #11
0
        public void SetUp()
        {
            eventAggregator = MockRepository.GenerateStub <IEventAggregator>();
            model           = new TestExplorerModel(MockRepository.GenerateStub <ISortedTreeModel>());
            var optionsController     = MockRepository.GenerateStub <IOptionsController>();
            var userOptionsController = MockRepository.GenerateStub <IProjectUserOptionsController>();

            userOptionsController.Stub(uoc => uoc.CollapsedNodes).Return(new string[0]);
            taskManager    = MockRepository.GenerateStub <ITaskManager>();
            commandFactory = MockRepository.GenerateStub <ICommandFactory>();

            controller = new TestExplorerController(model, eventAggregator, optionsController, userOptionsController,
                                                    taskManager, commandFactory);
        }
コード例 #12
0
        public void UISetsProgressBarColor_RedForFailure_IncludesNonFailingTests()
        {
            var testMethods = @"'@TestMethod
Public Sub TestMethod1()
End Sub

'@TestMethod
Public Sub TestMethod2()
End Sub

'@TestMethod
Public Sub TestMethod3()
End Sub

'@TestMethod
Public Sub TestMethod4()
End Sub";

            var builder = new MockVbeBuilder();
            var project = builder.ProjectBuilder("TestProject1", vbext_ProjectProtection.vbext_pp_none)
                          .AddComponent("TestModule1", vbext_ComponentType.vbext_ct_StdModule, GetTestModuleInput + testMethods);

            var vbe      = builder.AddProject(project.Build()).Build();
            var mockHost = new Mock <IHostApplication>();

            mockHost.SetupAllProperties();
            var parser = MockParser.Create(vbe.Object, new RubberduckParserState(new Mock <ISinks>().Object));

            var model = new TestExplorerModel(vbe.Object, parser.State);

            parser.Parse(new CancellationTokenSource());
            if (parser.State.Status >= ParserState.Error)
            {
                Assert.Inconclusive("Parser Error");
            }

            model.Tests[0].Result = new TestResult(TestOutcome.Succeeded);
            model.Tests[1].Result = new TestResult(TestOutcome.Inconclusive);
            model.Tests[2].Result = new TestResult(TestOutcome.Failed);
            model.Tests[3].Result = new TestResult(TestOutcome.Ignored);

            model.AddExecutedTest(model.Tests[0]);
            model.AddExecutedTest(model.Tests[1]);
            model.AddExecutedTest(model.Tests[2]);
            model.AddExecutedTest(model.Tests[3]);

            Assert.AreEqual(model.ProgressBarColor, Colors.Red);
        }
コード例 #13
0
ファイル: ViewModelTests.cs プロジェクト: xxxmen/Rubberduck
        public void UISetsProgressBarColor_RedForFailure_IncludesNonFailingTests()
        {
            var testMethods = @"'@TestMethod
Public Sub TestMethod1()
End Sub

'@TestMethod
Public Sub TestMethod2()
End Sub

'@TestMethod
Public Sub TestMethod3()
End Sub

'@TestMethod
Public Sub TestMethod4()
End Sub";

            var builder = new MockVbeBuilder();
            var project = builder.ProjectBuilder("TestProject1", ProjectProtection.Unprotected)
                          .AddComponent("TestModule1", ComponentType.StandardModule, GetTestModuleInput + testMethods);

            var vbe    = builder.AddProject(project.Build()).Build().Object;
            var parser = MockParser.Create(vbe);

            using (var state = parser.State)
            {
                var model = new TestExplorerModel(vbe, state);

                parser.Parse(new CancellationTokenSource());
                if (state.Status >= ParserState.Error)
                {
                    Assert.Inconclusive("Parser Error");
                }

                model.Tests[0].Result = new TestResult(TestOutcome.Succeeded);
                model.Tests[1].Result = new TestResult(TestOutcome.Inconclusive);
                model.Tests[2].Result = new TestResult(TestOutcome.Failed);
                model.Tests[3].Result = new TestResult(TestOutcome.Ignored);

                model.AddExecutedTest(model.Tests[0]);
                model.AddExecutedTest(model.Tests[1]);
                model.AddExecutedTest(model.Tests[2]);
                model.AddExecutedTest(model.Tests[3]);

                Assert.AreEqual(model.ProgressBarColor, Colors.Red);
            }
        }
コード例 #14
0
        public void UIRemovesRemovedTestMethods()
        {
            var testMethods = @"'@TestMethod
Public Sub TestMethod1()
End Sub";

            var builder = new MockVbeBuilder();
            var project = builder.ProjectBuilder("TestProject1", ProjectProtection.Unprotected)
                          .AddComponent("TestModule1", ComponentType.StandardModule, GetTestModuleInput + testMethods)
                          .AddComponent("TestModule2", ComponentType.StandardModule, GetTestModuleInput + testMethods);

            builder.AddProject(project.Build());

            var vbe    = builder.Build().Object;
            var parser = MockParser.Create(vbe, new RubberduckParserState(vbe));

            var model = new TestExplorerModel(vbe, parser.State);

            parser.Parse(new CancellationTokenSource());
            if (parser.State.Status >= ParserState.Error)
            {
                Assert.Inconclusive("Parser Error");
            }

            Assert.AreEqual(2, model.Tests.Count);

            project.RemoveComponent(project.MockComponents[1]);

            parser.Parse(new CancellationTokenSource());
            if (parser.State.Status >= ParserState.Error)
            {
                Assert.Inconclusive("Parser Error");
            }

            Assert.AreEqual(1, model.Tests.Count);
        }
コード例 #15
0
 public RunAllTestsCommand(RubberduckParserState state, ITestEngine engine, TestExplorerModel model)
 {
     _engine = engine;
     _model  = model;
     _state  = state;
 }
コード例 #16
0
 public TestEngine(TestExplorerModel model, IVBE vbe, RubberduckParserState state)
 {
     _model = model;
     _vbe   = vbe;
     _state = state;
 }
コード例 #17
0
 public MockedTestExplorerModel(MockedTestEngine engine)
 {
     Engine = engine;
     Model  = new TestExplorerModel(Engine.TestEngine);
 }