public void Test_ProjectUnloaded()
        {
            // Arrange.
            var project1     = Mock.Of <IVsProject>();
            var projectInfo1 = Mock.Of <IProjectInfo>(p =>
                                                      p.GetProjectItems() == new[] { @"C:\test1.ps1", @"C:\test2.ps1" } && p.IsPhysicalProject == true);

            var project2Files = new List <string> {
                @"C:\test3.ps1"
            };
            var projectInfo2 = Mock.Of <IProjectInfo>(p => p.GetProjectItems() == project2Files && p.IsPhysicalProject == true);

            InitializeWith(Proj(project1, projectInfo1), Proj(Mock.Of <IVsProject>(), projectInfo2));

            projects.Remove(project1);

            // Act.
            AssertThat.Raises <ITestContainerDiscoverer>(discoverer, d => d.TestContainersUpdated            += null,
                                                         () => solutionMonitor.Raise(sm => sm.ProjectChanged += null,
                                                                                     new ProjectChangedEventArgs(solution.Object, project1, ProjectChangeType.Unloaded)));

            // Assert.
            var container = Assert.Single(discoverer.TestContainers);

            Assert.Equal(@"C:\test3.ps1", container.Source);
        }
Пример #2
0
 public void Test_CloseCommand_Raises_Closing_Event()
 {
     // Act/Assert.
     AssertThat.Raises <IApplication>(viewModel,
                                      vm => vm.Closing += null,
                                      () => viewModel.CloseCommand.Execute(null));
 }
Пример #3
0
        public void Test_Close_Raises_Closing_Event()
        {
            // Arrange.
            var diagramManager = CreateManager(d => null);

            // Act/Assert.
            AssertThat.Raises <IDiagramManager>(diagramManager, m => m.Closing += null, diagramManager.Close);
        }
Пример #4
0
        public void Test_CanExecuteChanged()
        {
            // Arrange.
            var propertyOwner = new TestClass();
            var command       = Command.For(propertyOwner)
                                .DependsOn(p => p.BoolValue)
                                .Executes(() => { });

            // Act/Assert.
            AssertThat.Raises(command, c => c.CanExecuteChanged += null, () => propertyOwner.BoolValue = true);
        }
Пример #5
0
        public void Test_CanExecuteChanged_ItemAdded()
        {
            // Arrange.
            var parent = new TestParent();
            var child  = new TestItem();

            var command = Command.For(parent)
                          .DependsOnCollection(p => p.Items)
                          .When(c => c.Any(p => p.BoolValue))
                          .Executes(() => { });

            // Act/Assert.
            parent.Items.Add(child);
            AssertThat.Raises(command, c => c.CanExecuteChanged += null, () => child.BoolValue = true);
        }
        public void Test_SolutionLoaded_NonPhysical_Projects_Filtered_Out()
        {
            // Arrange.
            var projectInfo = Mock.Of <IProjectInfo>(p =>
                                                     p.GetProjectItems() == new[] { @"C:\test.ps2", @"file.txt", @"C:\test.ps1" } && p.IsPhysicalProject == false);

            projects[Mock.Of <IVsProject>()] = projectInfo;

            // Act.
            AssertThat.Raises <ITestContainerDiscoverer>(discoverer, d => d.TestContainersUpdated             += null,
                                                         () => solutionMonitor.Raise(sm => sm.SolutionChanged += null,
                                                                                     new SolutionChangedEventArgs(solution.Object, SolutionChangeType.Loaded)));

            // Assert.
            Assert.Empty(discoverer.TestContainers);
        }
Пример #7
0
        public void Test_PropertyChanged_CustomEquals()
        {
            // Arrange.
            var property = new Property <CustomEquals>("property", OnPropertyChanged)
            {
                Value = new CustomEquals(2)
            };

            // Act/Assert.
            AssertThat.Raises <INotifyPropertyChanged>(
                this,
                p => p.PropertyChanged += null,
                () => property.Value    = new CustomEquals(-1));

            Assert.Equal(-1, property.Value.Value);
        }
        public void Test_SolutionLoaded()
        {
            // Arrange.
            var projectInfo = Mock.Of <IProjectInfo>(p =>
                                                     p.GetProjectItems() == new[] { @"C:\test.ps2", @"file.txt", @"C:\test.ps1" } && p.IsPhysicalProject == true);

            projects[Mock.Of <IVsProject>()] = projectInfo;

            // Act.
            AssertThat.Raises <ITestContainerDiscoverer>(discoverer, d => d.TestContainersUpdated             += null,
                                                         () => solutionMonitor.Raise(sm => sm.SolutionChanged += null,
                                                                                     new SolutionChangedEventArgs(solution.Object, SolutionChangeType.Loaded)));

            // Assert.
            var container = Assert.Single(discoverer.TestContainers);

            Assert.Equal(@"C:\test.ps1", container.Source);
            Assert.Equal(discoverer, container.Discoverer);
        }
        public void Test_File_Changed()
        {
            // Arrange.
            var project     = Mock.Of <IVsProject>();
            var projectInfo = Mock.Of <IProjectInfo>(p =>
                                                     p.GetProjectItems() == new[] { @"C:\test1.ps1", @"C:\test2.ps1" } && p.IsPhysicalProject == true);

            InitializeWith(Proj(project, projectInfo));

            // Act.
            AssertThat.Raises <ITestContainerDiscoverer>(discoverer, d => d.TestContainersUpdated += null,
                                                         () => fileWatcher.Raise(fw => fw.Changed += null,
                                                                                 new FileSystemEventArgs(WatcherChangeTypes.Changed, @"C:\", "test1.ps1")));

            var containers = discoverer.TestContainers.OrderBy(t => t.Source).ToList();

            // Assert.
            Assert.Equal(2, containers.Count);
            Assert.Equal(@"C:\test1.ps1", containers[0].Source);
            Assert.Equal(@"C:\test2.ps1", containers[1].Source);
        }
        public void Test_File_Removed()
        {
            // Arrange.
            var project     = Mock.Of <IVsProject>();
            var projectInfo = Mock.Of <IProjectInfo>(p =>
                                                     p.GetProjectItems() == new[] { @"C:\test1.ps1", @"C:\test2.ps1", @"C:\test3.ps1" } && p.IsPhysicalProject == true);

            InitializeWith(Proj(project, projectInfo));

            // Act.
            AssertThat.Raises <ITestContainerDiscoverer>(discoverer, d => d.TestContainersUpdated        += null,
                                                         () => projectMonitor.Raise(pm => pm.FileChanged += null,
                                                                                    new ProjectFileChangedEventArgs(project, @"C:\test2.ps1", FileChangeType.Removed)));

            var containers = discoverer.TestContainers.OrderBy(t => t.Source).ToList();

            // Assert.
            Assert.Equal(2, containers.Count);
            Assert.Equal(@"C:\test1.ps1", containers.First().Source);
            Assert.Equal(@"C:\test3.ps1", containers.Last().Source);
        }
        public void Test_ProjectLoaded()
        {
            // Arrange.
            var project     = Mock.Of <IVsProject>();
            var projectInfo = Mock.Of <IProjectInfo>(p =>
                                                     p.GetProjectItems() == new[] { @"C:\test1.ps1" } && p.IsPhysicalProject == true);

            projects[project] = projectInfo;

            // Act.
            AssertThat.Raises <ITestContainerDiscoverer>(discoverer, d => d.TestContainersUpdated            += null,
                                                         () => solutionMonitor.Raise(sm => sm.ProjectChanged += null,
                                                                                     new ProjectChangedEventArgs(solution.Object, project, ProjectChangeType.Loaded)));

            var containers = discoverer.TestContainers.OrderBy(t => t.Source).ToList();

            // Assert.
            var container = Assert.Single(containers);

            Assert.Equal(@"C:\test1.ps1", container.Source);
        }
Пример #12
0
        public void Test_CanExecuteChanged()
        {
            // Arrange.
            var parent = new TestParent();
            var child1 = new TestItem();
            var child2 = new TestItem();

            var command = Command.For(parent)
                          .DependsOnCollection(p => p.Items)
                          .When(c => c.Any(p => p.BoolValue))
                          .Executes(() => { });

            parent.Items.Add(child1);
            parent.Items.Add(child2);

            // Act/Assert.
            foreach (var child in parent.Items)
            {
                var localChild = child;
                AssertThat.Raises(command, c => c.CanExecuteChanged       += null, () => localChild.BoolValue = true);
                AssertThat.DoesNotRaise(command, c => c.CanExecuteChanged += null, () => localChild.BoolValue = true);
            }
        }