public void WarewolfPerformanceCounterRegister_RegisterNewCounters() { var mockPerformanceCounterCategory = new Mock <IPerformanceCounterCategory>(); mockPerformanceCounterCategory.Setup(o => o.Exists(GlobalConstants.Warewolf)).Returns(true); mockPerformanceCounterCategory.Setup(o => o.Exists(GlobalConstants.WarewolfServices)).Returns(true); var mockPerformanceCounterCategoryInstance = new Mock <IPerformanceCounterCategory>(); var performanceCounterCategory2 = mockPerformanceCounterCategoryInstance.Object; var performanceCounterCategory3 = mockPerformanceCounterCategoryInstance.Object; mockPerformanceCounterCategory.Setup(o => o.New(GlobalConstants.Warewolf)).Returns(performanceCounterCategory2); mockPerformanceCounterCategory.Setup(o => o.New(GlobalConstants.WarewolfServices)).Returns(performanceCounterCategory3); var performanceCounterFactory = mockPerformanceCounterCategory.Object; var counters = new List <IPerformanceCounter> { new Mock <IPerformanceCounter>().Object }; var resourceCounters = new List <IResourcePerformanceCounter> { new Mock <IResourcePerformanceCounter>().Object }; var warewolfPerformanceCounterRegister = new WarewolfPerformanceCounterRegister(performanceCounterFactory, counters, resourceCounters); mockPerformanceCounterCategory.Verify(o => o.Delete(GlobalConstants.Warewolf), Times.Once); mockPerformanceCounterCategory.Verify(o => o.Delete(GlobalConstants.WarewolfServices), Times.Once); mockPerformanceCounterCategory.Verify(o => o.Create(GlobalConstants.Warewolf, "Warewolf Performance Counters", counters), Times.Once); mockPerformanceCounterCategory.Verify(o => o.Create(GlobalConstants.WarewolfServices, "Warewolf Performance Counters", resourceCounters), Times.Once); }
private static WarewolfPerformanceCounterManager BuildPerfomanceCounter() { var _mockPerformanceCounterFactory = new Mock <IRealPerformanceCounterFactory>(); var _performanceCounterFactory = _mockPerformanceCounterFactory.Object; var register = new WarewolfPerformanceCounterRegister(new List <IPerformanceCounter> { new WarewolfCurrentExecutionsPerformanceCounter(_performanceCounterFactory), new WarewolfNumberOfErrors(_performanceCounterFactory), new WarewolfRequestsPerSecondPerformanceCounter(_performanceCounterFactory), new WarewolfAverageExecutionTimePerformanceCounter(_performanceCounterFactory), new WarewolfNumberOfAuthErrors(_performanceCounterFactory), new WarewolfServicesNotFoundCounter(_performanceCounterFactory), }, new List <IResourcePerformanceCounter>()); return(new WarewolfPerformanceCounterManager(register.Counters, new List <IResourcePerformanceCounter>(), register, new Mock <IPerformanceCounterPersistence>().Object, _performanceCounterFactory)); }
public void WarewolfPerformanceCounterRegister_RegisterCountersOnMachine_ShouldNotThrow() { var mockPerformanceCounterCategory = new Mock <IPerformanceCounterCategory>(); mockPerformanceCounterCategory.Setup(o => o.Exists(GlobalConstants.Warewolf)) .Callback(() => throw new System.Exception("fake exception")) .Returns(false); var performanceCounterFactory = mockPerformanceCounterCategory.Object; var counters = new List <IPerformanceCounter>(); var resourceCounters = new List <IResourcePerformanceCounter>(); var warewolfPerformanceCounterRegister = new WarewolfPerformanceCounterRegister(performanceCounterFactory, counters, resourceCounters); // should always reach here mockPerformanceCounterCategory.Verify(o => o.Exists(GlobalConstants.Warewolf), Times.Once); }
public void PerformanceCounterManager_Remove_ExpectEmptyValidFromRetrieve() { var register = new WarewolfPerformanceCounterRegister(new List <IPerformanceCounter> { new WarewolfCurrentExecutionsPerformanceCounter(), new WarewolfNumberOfErrors(), new WarewolfRequestsPerSecondPerformanceCounter(), new WarewolfAverageExecutionTimePerformanceCounter(), new WarewolfNumberOfAuthErrors(), new WarewolfServicesNotFoundCounter(), }, new List <IResourcePerformanceCounter>()); var manager = new WarewolfPerformanceCounterManager(register.Counters, new List <IResourcePerformanceCounter>(), register, new Mock <IPerformanceCounterPersistence>().Object); manager.CreateCounter(guid, WarewolfPerfCounterType.ExecutionErrors, "bob"); manager.RemoverCounter(guid, WarewolfPerfCounterType.ExecutionErrors, "bob"); var counter = manager.GetCounter(guid, WarewolfPerfCounterType.ExecutionErrors).FromSafe() as IResourcePerformanceCounter; Assert.IsNotNull(manager.EmptyCounter); Assert.IsNotNull(counter); Assert.IsTrue(counter is EmptyCounter); }
public void PerformanceCounterBuilder_CtorBuildCounters_NewResets_ExpectNewCounters() { try { PerformanceCounterCategory.Delete(CategoryName); } catch { } var mockCounterFactory = new Mock <PerformanceCounters.Counters.IRealPerformanceCounterFactory>(); var mockCounter1 = new Mock <IWarewolfPerformanceCounter>(); var mockCounter2 = new Mock <IWarewolfPerformanceCounter>(); var mockCounter3 = new Mock <IWarewolfPerformanceCounter>(); var mockCounter4 = new Mock <IWarewolfPerformanceCounter>(); var mockCounter5 = new Mock <IWarewolfPerformanceCounter>(); var mockCounter6 = new Mock <IWarewolfPerformanceCounter>(); mockCounterFactory.Setup(o => o.New(GlobalConstants.Warewolf, "Concurrent requests currently executing", GlobalConstants.GlobalCounterName)).Returns(mockCounter1.Object).Verifiable(); mockCounterFactory.Setup(o => o.New(GlobalConstants.Warewolf, "Total Errors", GlobalConstants.GlobalCounterName)).Returns(mockCounter2.Object).Verifiable(); mockCounterFactory.Setup(o => o.New(GlobalConstants.Warewolf, "Request Per Second", GlobalConstants.GlobalCounterName)).Returns(mockCounter3.Object).Verifiable(); mockCounterFactory.Setup(o => o.New(GlobalConstants.Warewolf, "Average workflow execution time", GlobalConstants.GlobalCounterName)).Returns(mockCounter4.Object).Verifiable(); mockCounterFactory.Setup(o => o.New(GlobalConstants.Warewolf, "average time per operation base", GlobalConstants.GlobalCounterName)).Returns(mockCounter5.Object).Verifiable(); mockCounterFactory.Setup(o => o.New(GlobalConstants.Warewolf, "Count of Not Authorised errors", GlobalConstants.GlobalCounterName)).Returns(mockCounter6.Object).Verifiable(); var counterFactory = mockCounterFactory.Object; var lst = new List <IPerformanceCounter> { new WarewolfCurrentExecutionsPerformanceCounter(counterFactory), new WarewolfNumberOfErrors(counterFactory), new WarewolfRequestsPerSecondPerformanceCounter(counterFactory), new WarewolfAverageExecutionTimePerformanceCounter(counterFactory), new WarewolfNumberOfAuthErrors(counterFactory) }; var mockPerformanceCounterCategory = new Mock <IPerformanceCounterCategory>(); { int expectedCount = 5; mockPerformanceCounterCategory.Setup(o => o.Create("Warewolf", "Warewolf Performance Counters", It.IsAny <IEnumerable <IPerformanceCounter> >())) .Callback <string, string, IEnumerable <IPerformanceCounter> >((s1, s2, counters_arg) => Assert.AreEqual(expectedCount++, counters_arg.Count())).Verifiable(); } mockPerformanceCounterCategory.Setup(o => o.Create("Warewolf Services", "Warewolf Performance Counters", It.IsAny <IEnumerable <IPerformanceCounter> >())) .Callback <string, string, IEnumerable <IPerformanceCounter> >((s1, s2, counters_arg) => Assert.AreEqual(0, counters_arg.Count())).Verifiable(); var register = new WarewolfPerformanceCounterRegister(mockPerformanceCounterCategory.Object, lst, new List <IResourcePerformanceCounter>()); foreach (var performanceCounter in register.Counters) { performanceCounter.ToSafe().Increment(); } mockPerformanceCounterCategory.Verify(); mockCounterFactory.Verify(o => o.New(GlobalConstants.Warewolf, "Concurrent requests currently executing", GlobalConstants.GlobalCounterName), Times.Once); mockCounterFactory.Verify(o => o.New(GlobalConstants.Warewolf, "Total Errors", GlobalConstants.GlobalCounterName), Times.Once); mockCounterFactory.Verify(o => o.New(GlobalConstants.Warewolf, "Request Per Second", GlobalConstants.GlobalCounterName), Times.Once); mockCounterFactory.Verify(o => o.New(GlobalConstants.Warewolf, "Average workflow execution time", GlobalConstants.GlobalCounterName), Times.Once); mockCounterFactory.Verify(o => o.New(GlobalConstants.Warewolf, "average time per operation base", GlobalConstants.GlobalCounterName), Times.Once); mockCounterFactory.Verify(o => o.New(GlobalConstants.Warewolf, "Count of Not Authorised errors", GlobalConstants.GlobalCounterName), Times.Once); mockCounter1.Verify(o => o.Increment(), Times.Once); mockCounter2.Verify(o => o.Increment(), Times.Once); mockCounter3.Verify(o => o.Increment(), Times.Once); mockCounter4.Verify(o => o.Increment(), Times.Once); mockCounter5.Verify(o => o.Increment(), Times.Once); mockCounter6.Verify(o => o.Increment(), Times.Once); var mockCounter7 = new Mock <IWarewolfPerformanceCounter>(); mockCounterFactory.Setup(o => o.New(GlobalConstants.Warewolf, "Count of requests for workflows which don't exist", GlobalConstants.GlobalCounterName)).Returns(mockCounter7.Object); lst.Add(new WarewolfServicesNotFoundCounter(counterFactory)); register = new WarewolfPerformanceCounterRegister(mockPerformanceCounterCategory.Object, lst, new List <IResourcePerformanceCounter>()); foreach (var performanceCounter in register.Counters) { performanceCounter.ToSafe().Increment(); // increment causes instance to be created on windows side } mockCounterFactory.Verify(o => o.New(GlobalConstants.Warewolf, "Count of requests for workflows which don't exist", GlobalConstants.GlobalCounterName), Times.Once); mockCounter1.Verify(o => o.Increment(), Times.Exactly(2)); mockCounter2.Verify(o => o.Increment(), Times.Exactly(2)); mockCounter3.Verify(o => o.Increment(), Times.Exactly(2)); mockCounter4.Verify(o => o.Increment(), Times.Exactly(2)); mockCounter5.Verify(o => o.Increment(), Times.Exactly(2)); mockCounter6.Verify(o => o.Increment(), Times.Exactly(2)); mockCounter7.Verify(o => o.Increment(), Times.Once); }