public void PerfcounterViewModel_UpdatePerfCounter_ResourceCounterSetDeleted_ShouldNotSaveCounter()
        {
            //------------Setup for test--------------------------
            var performanceCounterTo = new PerformanceCounterTo();

            performanceCounterTo.NativeCounters.Add(new TestCounter(WarewolfPerfCounterType.AverageExecutionTime));
            performanceCounterTo.NativeCounters.Add(new TestCounter(WarewolfPerfCounterType.ConcurrentRequests));
            var resourceId = Guid.NewGuid();

            performanceCounterTo.ResourceCounters.Add(new TestResourceCounter(WarewolfPerfCounterType.AverageExecutionTime, resourceId));
            performanceCounterTo.ResourceCounters.Add(new TestResourceCounter(WarewolfPerfCounterType.RequestsPerSecond, resourceId));
            var perfcounterViewModel = new PerfcounterViewModel(performanceCounterTo, new Mock <IServer>().Object, () => new Mock <IResourcePickerDialog>().Object);

            //------------Assert Preconditions-------------------
            Assert.IsNotNull(perfcounterViewModel.ServerCounters);
            Assert.IsNotNull(perfcounterViewModel.ResourceCounters);
            Assert.AreEqual(1, perfcounterViewModel.ServerCounters.Count);
            Assert.AreEqual(2, perfcounterViewModel.ResourceCounters.Count);
            var serverCounter      = perfcounterViewModel.ServerCounters[0];
            var resourceCounter    = perfcounterViewModel.ResourceCounters[0];
            var newResourceCounter = perfcounterViewModel.ResourceCounters[1];

            Assert.IsTrue(newResourceCounter.IsNew);
            Assert.IsNotNull(serverCounter);
            Assert.IsNotNull(resourceCounter);
            Assert.IsFalse(resourceCounter.IsDeleted);
            //------------Execute Test---------------------------
            resourceCounter.RemoveRow.Execute(null);
            //------------Assert Results-------------------------
            Assert.IsTrue(resourceCounter.IsDeleted);
            perfcounterViewModel.Save(performanceCounterTo);
            Assert.AreEqual(1, perfcounterViewModel.ResourceCounters.Count);
        }
        public void PerfcounterViewModel_PickResource_WhenNoResource_DoesNothing()
        {
            //------------Setup for test--------------------------
            var performanceCounterTo = new PerformanceCounterTo();

            performanceCounterTo.NativeCounters.Add(new TestCounter(WarewolfPerfCounterType.AverageExecutionTime));
            performanceCounterTo.NativeCounters.Add(new TestCounter(WarewolfPerfCounterType.ConcurrentRequests));
            var resourceId = Guid.NewGuid();

            performanceCounterTo.ResourceCounters.Add(new TestResourceCounter(WarewolfPerfCounterType.AverageExecutionTime, resourceId));
            performanceCounterTo.ResourceCounters.Add(new TestResourceCounter(WarewolfPerfCounterType.RequestsPerSecond, resourceId));
            var mockEnvironmentModel = new Mock <IServer>();
            var mockResourcePicker   = new Mock <IResourcePickerDialog>();

            mockResourcePicker.Setup(dialog => dialog.ShowDialog(It.IsAny <IServer>())).Returns(false);
            var mockExplorerTreeItem = new Mock <IExplorerTreeItem>();
            var newGuid = Guid.NewGuid();

            mockExplorerTreeItem.Setup(item => item.ResourceId).Returns(newGuid);
            mockExplorerTreeItem.Setup(item => item.ResourcePath).Returns("Hello World");
            mockExplorerTreeItem.Setup(item => item.ResourceName).Returns("Hello World");
            mockResourcePicker.Setup(dialog => dialog.SelectedResource).Returns(mockExplorerTreeItem.Object);
            var perfcounterViewModel          = new PerfcounterViewModel(performanceCounterTo, mockEnvironmentModel.Object, () => mockResourcePicker.Object);
            var performanceCountersByResource = perfcounterViewModel.ResourceCounters[0];

            //------------Execute Test---------------------------
            perfcounterViewModel.PickResourceCommand.Execute(performanceCountersByResource);
            //------------Assert Results-------------------------
            Assert.AreEqual(resourceId, performanceCountersByResource.ResourceId);
        }
        public void PerfcounterViewModel_ResetCounters_Command_Error_ShouldCallCommunicationsController()
        {
            //------------Setup for test--------------------------
            var mockPopupController = new Mock <IPopupController>();

            mockPopupController.Setup(controller => controller.Show(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <MessageBoxButton>(), It.IsAny <MessageBoxImage>(), It.IsAny <string>(), It.IsAny <bool>(), It.IsAny <bool>(), It.IsAny <bool>(), It.IsAny <bool>(), It.IsAny <bool>(), It.IsAny <bool>())).Verifiable();
            CustomContainer.Register(mockPopupController.Object);
            var performanceCounterTo = new PerformanceCounterTo();

            performanceCounterTo.NativeCounters.Add(new TestCounter(WarewolfPerfCounterType.AverageExecutionTime));
            performanceCounterTo.NativeCounters.Add(new TestCounter(WarewolfPerfCounterType.ConcurrentRequests));
            var resourceId = Guid.NewGuid();

            performanceCounterTo.ResourceCounters.Add(new TestResourceCounter(WarewolfPerfCounterType.AverageExecutionTime, resourceId));
            performanceCounterTo.ResourceCounters.Add(new TestResourceCounter(WarewolfPerfCounterType.RequestsPerSecond, resourceId));
            var perfcounterViewModel = new PerfcounterViewModel(performanceCounterTo, new Mock <IServer>().Object, () => new Mock <IResourcePickerDialog>().Object);
            var mockCommsController  = new Mock <ICommunicationController>();

            mockCommsController.SetupAllProperties();
            var executeMessage = new ExecuteMessage {
                HasError = true, Message = new StringBuilder("Error")
            };

            mockCommsController.Setup(controller => controller.ExecuteCommand <IExecuteMessage>(It.IsAny <IEnvironmentConnection>(), It.IsAny <Guid>())).Returns(executeMessage);
            perfcounterViewModel.CommunicationController = mockCommsController.Object;
            //------------Execute Test---------------------------
            perfcounterViewModel.ResetCountersCommand.Execute(null);
            //------------Assert Results-------------------------
            Assert.AreEqual("ResetPerformanceCounters", perfcounterViewModel.CommunicationController.ServiceName);
            mockCommsController.Verify(controller => controller.ExecuteCommand <IExecuteMessage>(It.IsAny <IEnvironmentConnection>(), It.IsAny <Guid>()));
            mockPopupController.Verify(controller => controller.Show(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <MessageBoxButton>(), It.IsAny <MessageBoxImage>(), It.IsAny <string>(), It.IsAny <bool>(), It.IsAny <bool>(), It.IsAny <bool>(), It.IsAny <bool>(), It.IsAny <bool>(), It.IsAny <bool>()));
        }
예제 #4
0
        public void PerfcounterViewModel_ServerCountersCompare_Given_Null_Server_Counters_Returns_False()
        {
            CommonSetupHelper.RegisterServerRepository();
            var authorizationService = new Mock <IAuthorizationService>();
            var securityService      = new Mock <ISecurityService>();
            var permissions          = new List <WindowsGroupPermission> {
                new WindowsGroupPermission()
            };

            securityService.Setup(service => service.Permissions).Returns(permissions);
            authorizationService.Setup(service => service.SecurityService).Returns(securityService.Object);
            _mockConnection.Setup(connection => connection.IsConnected).Returns(true);
            _mockConnection.Setup(connection => connection.DisplayName).Returns("TestServer");
            _mockEnvironment.Setup(model => model.AuthorizationService).Returns(authorizationService.Object);
            var activeServer = new Server(Guid.NewGuid(), _mockConnection.Object);

            ServerRepository.Instance.ActiveServer = activeServer;
            CustomContainer.Register <IExplorerTooltips>(new ExplorerTooltips());
            var mockPerformanceCounters = new Mock <IPerformanceCounterTo>();

            mockPerformanceCounters.Setup(counter => counter.NativeCounters).Returns(new List <IPerformanceCounter>());
            mockPerformanceCounters.Setup(counter => counter.ResourceCounters).Returns(new List <IResourcePerformanceCounter>());
            var privateCounters = new PerfcounterViewModel(mockPerformanceCounters.Object, new Mock <IServer>().Object);
            var counters        = new Warewolf.Testing.PrivateObject(privateCounters);

            CustomContainer.Register(new Mock <IExplorerTooltips>().Object);
            //------------Setup for test------------------------
            //------------Execute Test--------------------------
            var invokeStatic = counters.Invoke("GetEnvironment", true);

            //------------Assert Results-------------------------
            Assert.IsNotNull(invokeStatic);
        }
        public void PerfcounterViewModel_Save_ShouldUpdatePerfCounterTo()
        {
            //------------Setup for test--------------------------
            var performanceCounterTo = new PerformanceCounterTo();

            performanceCounterTo.NativeCounters.Add(new TestCounter(WarewolfPerfCounterType.AverageExecutionTime, false));
            performanceCounterTo.NativeCounters.Add(new TestCounter(WarewolfPerfCounterType.ConcurrentRequests, false));
            performanceCounterTo.NativeCounters.Add(new TestCounter(WarewolfPerfCounterType.ExecutionErrors, false));
            performanceCounterTo.NativeCounters.Add(new TestCounter(WarewolfPerfCounterType.NotAuthorisedErrors, false));
            performanceCounterTo.NativeCounters.Add(new TestCounter(WarewolfPerfCounterType.RequestsPerSecond, false));
            performanceCounterTo.NativeCounters.Add(new TestCounter(WarewolfPerfCounterType.ServicesNotFound, false));
            var resourceId = Guid.NewGuid();

            performanceCounterTo.ResourceCounters.Add(new TestResourceCounter(WarewolfPerfCounterType.AverageExecutionTime, resourceId));
            performanceCounterTo.ResourceCounters.Add(new TestResourceCounter(WarewolfPerfCounterType.RequestsPerSecond, resourceId));
            var perfcounterViewModel = new PerfcounterViewModel(performanceCounterTo, new Mock <IServer>().Object, () => new Mock <IResourcePickerDialog>().Object);
            //------------Assert Preconditions-------------------
            var serverCounter      = perfcounterViewModel.ServerCounters[0];
            var newResourceCounter = perfcounterViewModel.ResourceCounters[1];

            Assert.IsTrue(newResourceCounter.IsNew);
            Assert.IsNotNull(serverCounter);
            serverCounter.TotalErrors          = true;
            serverCounter.AverageExecutionTime = true;
            serverCounter.ConcurrentRequests   = true;
            serverCounter.NotAuthorisedErrors  = true;
            serverCounter.RequestPerSecond     = true;
            serverCounter.WorkFlowsNotFound    = true;
            newResourceCounter.CounterName     = "new resource";
            var newResourceId = Guid.NewGuid();

            newResourceCounter.ResourceId           = newResourceId;
            newResourceCounter.RequestPerSecond     = true;
            newResourceCounter.TotalErrors          = true;
            newResourceCounter.AverageExecutionTime = true;
            newResourceCounter.ConcurrentRequests   = true;
            //------------Execute Test---------------------------
            perfcounterViewModel.Save(performanceCounterTo);
            //------------Assert Results-------------------------
            Assert.AreEqual(6, performanceCounterTo.NativeCounters.Count);
            Assert.IsTrue(performanceCounterTo.NativeCounters[0].IsActive);
            Assert.IsTrue(performanceCounterTo.NativeCounters[1].IsActive);
            Assert.IsTrue(performanceCounterTo.NativeCounters[2].IsActive);
            Assert.IsTrue(performanceCounterTo.NativeCounters[3].IsActive);
            Assert.IsTrue(performanceCounterTo.NativeCounters[4].IsActive);
            Assert.IsTrue(performanceCounterTo.NativeCounters[5].IsActive);
            Assert.AreEqual(6, performanceCounterTo.ResourceCounters.Count);
            Assert.IsTrue(performanceCounterTo.ResourceCounters.Any(counter => counter.PerfCounterType == WarewolfPerfCounterType.AverageExecutionTime));
            Assert.IsTrue(performanceCounterTo.ResourceCounters.Any(counter => counter.PerfCounterType == WarewolfPerfCounterType.RequestsPerSecond));
            Assert.IsTrue(performanceCounterTo.ResourceCounters.Any(counter => counter.PerfCounterType == WarewolfPerfCounterType.ConcurrentRequests));
            Assert.IsTrue(performanceCounterTo.ResourceCounters.Any(counter => counter.PerfCounterType == WarewolfPerfCounterType.ExecutionErrors));
            Assert.AreEqual("new resource", performanceCounterTo.ResourceCounters[2].CategoryInstanceName);
            Assert.AreEqual(newResourceId, performanceCounterTo.ResourceCounters[2].ResourceId);
            Assert.AreEqual("new resource", performanceCounterTo.ResourceCounters[3].CategoryInstanceName);
            Assert.AreEqual(newResourceId, performanceCounterTo.ResourceCounters[3].ResourceId);
            Assert.AreEqual("new resource", performanceCounterTo.ResourceCounters[4].CategoryInstanceName);
            Assert.AreEqual(newResourceId, performanceCounterTo.ResourceCounters[4].ResourceId);
            Assert.AreEqual("new resource", performanceCounterTo.ResourceCounters[5].CategoryInstanceName);
            Assert.AreEqual(newResourceId, performanceCounterTo.ResourceCounters[5].ResourceId);
        }
예제 #6
0
        public void PerfcounterViewModel_Equals_Given_Null_Server_Counters_Returns_False()
        {
            var perfCounterTo = new Mock <IPerformanceCounterTo>();

            perfCounterTo.Setup(to => to.ResourceCounters).Returns(new List <IResourcePerformanceCounter>());
            perfCounterTo.Setup(to => to.NativeCounters).Returns(new List <IPerformanceCounter>());
            var perfcounterViewModel = new PerfcounterViewModel(perfCounterTo.Object, new Mock <IServer>().Object);
            var counters             = new PrivateObject(perfcounterViewModel);
            //------------Setup for test--------------------------
            var ItemServerCounters = perfcounterViewModel.ServerCounters = null;
            //------------Execute Test---------------------------
            var areEqual = counters.Invoke("Equals", args: new object[] { null, ItemServerCounters });

            //------------Assert Results-------------------------
            Assert.IsFalse(areEqual.Equals(true));
        }
        public void PerfcounterViewModel_PickResource_WhenNotCounterPassed_DoesNothing()
        {
            //------------Setup for test--------------------------
            var performanceCounterTo = new PerformanceCounterTo();

            performanceCounterTo.NativeCounters.Add(new TestCounter(WarewolfPerfCounterType.AverageExecutionTime));
            performanceCounterTo.NativeCounters.Add(new TestCounter(WarewolfPerfCounterType.ConcurrentRequests));
            var resourceId = Guid.NewGuid();

            performanceCounterTo.ResourceCounters.Add(new TestResourceCounter(WarewolfPerfCounterType.AverageExecutionTime, resourceId));
            performanceCounterTo.ResourceCounters.Add(new TestResourceCounter(WarewolfPerfCounterType.RequestsPerSecond, resourceId));
            var perfcounterViewModel = new PerfcounterViewModel(performanceCounterTo, new Mock <IServer>().Object, () => new Mock <IResourcePickerDialog>().Object);

            //------------Execute Test---------------------------
            perfcounterViewModel.PickResourceCommand.Execute(new object());
            //------------Assert Results-------------------------
            Assert.IsTrue(true);
        }
예제 #8
0
        public void PerfcounterViewModel_Equals_Given_Null_Server_Counters_Returns_False()
        {
            CommonSetupHelper.RegisterServerRepository();
            CustomContainer.Register <IExplorerTooltips>(new ExplorerTooltips());
            var perfCounterTo = new Mock <IPerformanceCounterTo>();

            perfCounterTo.Setup(to => to.ResourceCounters).Returns(new List <IResourcePerformanceCounter>());
            perfCounterTo.Setup(to => to.NativeCounters).Returns(new List <IPerformanceCounter>());
            var perfcounterViewModel = new PerfcounterViewModel(perfCounterTo.Object, new Mock <IServer>().Object);
            var counters             = new Warewolf.Testing.PrivateObject(perfcounterViewModel);
            //------------Setup for test--------------------------
            var ItemServerCounters = perfcounterViewModel.ServerCounters = null;
            //------------Execute Test---------------------------
            var areEqual = counters.Invoke("Equals", new object[] { null, ItemServerCounters });

            //------------Assert Results-------------------------
            Assert.IsFalse(areEqual.Equals(true));
        }
        public void PerfcounterViewModel_Constructor_WithPerfCounters_ShouldSetupCollections()
        {
            //------------Setup for test--------------------------
            var performanceCounterTo = new PerformanceCounterTo();

            performanceCounterTo.NativeCounters.Add(new TestCounter(WarewolfPerfCounterType.AverageExecutionTime));
            performanceCounterTo.NativeCounters.Add(new TestCounter(WarewolfPerfCounterType.ConcurrentRequests));
            var resourceId = Guid.NewGuid();

            performanceCounterTo.ResourceCounters.Add(new TestResourceCounter(WarewolfPerfCounterType.AverageExecutionTime, resourceId));
            performanceCounterTo.ResourceCounters.Add(new TestResourceCounter(WarewolfPerfCounterType.RequestsPerSecond, resourceId));

            //------------Execute Test---------------------------
            var perfcounterViewModel = new PerfcounterViewModel(performanceCounterTo, new Mock <IServer>().Object, () => new Mock <IResourcePickerDialog>().Object);

            //------------Assert Results-------------------------
            Assert.IsNotNull(perfcounterViewModel.ServerCounters);
            Assert.IsNotNull(perfcounterViewModel.ResourceCounters);
            Assert.AreEqual(1, perfcounterViewModel.ServerCounters.Count);
            Assert.AreEqual(2, perfcounterViewModel.ResourceCounters.Count);
            var serverCounter = perfcounterViewModel.ServerCounters[0];

            Assert.IsNotNull(serverCounter);
            Assert.IsTrue(serverCounter.AverageExecutionTime);
            Assert.IsTrue(serverCounter.ConcurrentRequests);
            Assert.IsFalse(serverCounter.NotAuthorisedErrors);
            Assert.IsFalse(serverCounter.RequestPerSecond);
            Assert.IsFalse(serverCounter.TotalErrors);
            Assert.IsFalse(serverCounter.WorkFlowsNotFound);
            var resourceCounter = perfcounterViewModel.ResourceCounters[0];

            Assert.IsFalse(resourceCounter.IsNew);
            Assert.IsTrue(resourceCounter.AverageExecutionTime);
            Assert.IsTrue(resourceCounter.RequestPerSecond);
            Assert.IsFalse(resourceCounter.ConcurrentRequests);
            Assert.IsFalse(resourceCounter.TotalErrors);
            var newResourceCounter = perfcounterViewModel.ResourceCounters[1];

            Assert.IsTrue(newResourceCounter.IsNew);
        }
        public void PerfcounterViewModel_UpdatePerfCounter_ShouldFirePropertyChange()
        {
            //------------Setup for test--------------------------
            var performanceCounterTo = new PerformanceCounterTo();

            performanceCounterTo.NativeCounters.Add(new TestCounter(WarewolfPerfCounterType.AverageExecutionTime));
            performanceCounterTo.NativeCounters.Add(new TestCounter(WarewolfPerfCounterType.ConcurrentRequests));
            var resourceId = Guid.NewGuid();

            performanceCounterTo.ResourceCounters.Add(new TestResourceCounter(WarewolfPerfCounterType.AverageExecutionTime, resourceId));
            performanceCounterTo.ResourceCounters.Add(new TestResourceCounter(WarewolfPerfCounterType.RequestsPerSecond, resourceId));
            var perfcounterViewModel = new PerfcounterViewModel(performanceCounterTo, new Mock <IServer>().Object, () => new Mock <IResourcePickerDialog>().Object);

            //------------Assert Preconditions-------------------
            Assert.IsNotNull(perfcounterViewModel.ServerCounters);
            Assert.IsNotNull(perfcounterViewModel.ResourceCounters);
            Assert.AreEqual(1, perfcounterViewModel.ServerCounters.Count);
            Assert.AreEqual(2, perfcounterViewModel.ResourceCounters.Count);
            var serverCounter      = perfcounterViewModel.ServerCounters[0];
            var resourceCounter    = perfcounterViewModel.ResourceCounters[0];
            var newResourceCounter = perfcounterViewModel.ResourceCounters[1];

            Assert.IsTrue(newResourceCounter.IsNew);
            Assert.IsNotNull(serverCounter);
            Assert.IsNotNull(resourceCounter);
            //------------Execute Test---------------------------
            serverCounter.TotalErrors      = true;
            newResourceCounter.CounterName = "new resource";
            //------------Assert Results-------------------------
            Assert.IsTrue(perfcounterViewModel.IsDirty);
            Assert.IsTrue(serverCounter.TotalErrors);
            Assert.AreEqual(3, perfcounterViewModel.ResourceCounters.Count);
            Assert.IsFalse(newResourceCounter.IsNew);
            var newNewResourceCounter = perfcounterViewModel.ResourceCounters[2];

            Assert.IsTrue(newNewResourceCounter.IsNew);
        }
        public void PerfcounterViewModel_UpdateHelpDescriptor_HelpText_ShouldCallUpdateHelpText()
        {
            //------------Setup for test--------------------------
            var mockMainViewModel       = new Mock <IShellViewModel>();
            var mockHelpWindowViewModel = new Mock <IHelpWindowViewModel>();

            mockHelpWindowViewModel.Setup(model => model.UpdateHelpText(It.IsAny <string>())).Verifiable();
            mockMainViewModel.Setup(model => model.HelpViewModel).Returns(mockHelpWindowViewModel.Object);
            CustomContainer.Register(mockMainViewModel.Object);
            var performanceCounterTo = new PerformanceCounterTo();

            performanceCounterTo.NativeCounters.Add(new TestCounter(WarewolfPerfCounterType.AverageExecutionTime));
            performanceCounterTo.NativeCounters.Add(new TestCounter(WarewolfPerfCounterType.ConcurrentRequests));
            var resourceId = Guid.NewGuid();

            performanceCounterTo.ResourceCounters.Add(new TestResourceCounter(WarewolfPerfCounterType.AverageExecutionTime, resourceId));
            performanceCounterTo.ResourceCounters.Add(new TestResourceCounter(WarewolfPerfCounterType.RequestsPerSecond, resourceId));
            var perfcounterViewModel = new PerfcounterViewModel(performanceCounterTo, new Mock <IServer>().Object, () => new Mock <IResourcePickerDialog>().Object);

            //------------Execute Test---------------------------
            perfcounterViewModel.UpdateHelpDescriptor("Help");
            //------------Assert Results-------------------------
            mockHelpWindowViewModel.Verify(model => model.UpdateHelpText(It.IsAny <string>()));
        }
예제 #12
0
        protected virtual PerfcounterViewModel CreatePerfmonViewModel()
        {
            var perfcounterViewModel = new PerfcounterViewModel(Settings.PerfCounters, CurrentEnvironment);

            return(perfcounterViewModel);
        }