public void StopWithMultipleNotifications() { var commands = new Mock <ICommandContainer>(); var notificationNames = new MockNotificationNameConstants(); var systemDiagnostics = new SystemDiagnostics((p, s) => { }, null); var builder = new ContainerBuilder(); { builder.Register(c => commands.Object).As <ICommandContainer>(); builder.Register(c => notificationNames).As <INotificationNameConstants>(); builder.Register(c => systemDiagnostics).As <SystemDiagnostics>(); } Action <IContainer> onStartService = c => { }; var service = new UserInterfaceService( builder.Build(), onStartService, systemDiagnostics); bool wasFirstInvoked = false; service.RegisterNotification(notificationNames.SystemShuttingDown, obj => { wasFirstInvoked = true; }); bool wasSecondInvoked = false; service.RegisterNotification(notificationNames.SystemShuttingDown, obj => { wasSecondInvoked = true; }); var proxy = new CoreProxy(new Mock <IKernel>().Object, systemDiagnostics); service.ConnectTo(proxy); ITimeline timeline = new Timeline(BuildStorage); var proxyLayer = new Mock <IProxyCompositionLayer>(); var projects = new ProjectService( () => timeline, d => new DatasetStorageProxy( d, new GroupSelector( new Mock <IConnectGroups>().Object, proxyLayer.Object), proxyLayer.Object), new Mock <IHelpDistributingDatasets>().Object, new Mock <ICollectNotifications>().Object, systemDiagnostics, new Mock <IBuildProjects>().Object); service.ConnectTo(projects); service.Start(); Assert.AreEqual(StartupState.Started, service.StartupState); service.Stop(); Assert.AreEqual(StartupState.Stopped, service.StartupState); Assert.IsTrue(wasFirstInvoked); Assert.IsTrue(wasSecondInvoked); }
public void HandleApplicationStartupCompleteMessage() { var commands = new Mock <ICommandContainer>(); var notificationNames = new MockNotificationNameConstants(); var systemDiagnostics = new SystemDiagnostics((p, s) => { }, null); bool isStarted = false; Action <INotificationArguments> onApplicationStartup = obj => { isStarted = true; }; var builder = new ContainerBuilder(); { builder.Register(c => commands.Object).As <ICommandContainer>(); builder.Register(c => notificationNames).As <INotificationNameConstants>(); builder.Register(c => systemDiagnostics).As <SystemDiagnostics>(); } Action <IContainer> onStartService = c => { }; var service = new UserInterfaceService( builder.Build(), onStartService, systemDiagnostics); service.RegisterNotification(notificationNames.StartupComplete, onApplicationStartup); var proxy = new CoreProxy(new Mock <IKernel>().Object, systemDiagnostics); service.ConnectTo(proxy); ITimeline timeline = new Timeline(BuildStorage); var proxyLayer = new Mock <IProxyCompositionLayer>(); var projects = new ProjectService( () => timeline, d => new DatasetStorageProxy( d, new GroupSelector( new Mock <IConnectGroups>().Object, proxyLayer.Object), proxyLayer.Object), new Mock <IHelpDistributingDatasets>().Object, new Mock <ICollectNotifications>().Object, systemDiagnostics, new Mock <IBuildProjects>().Object); service.ConnectTo(projects); service.Start(); proxy.NotifyServicesOfStartupCompletion(); Assert.IsTrue(isStarted); }
public void InvokeWithIdAndContextFullyFunctional() { var commands = new Mock <ICommandContainer>(); { commands.Setup(c => c.Invoke(It.IsAny <CommandId>(), It.IsAny <ICommandContext>())) .Verifiable(); } var notificationNames = new MockNotificationNameConstants(); var systemDiagnostics = new SystemDiagnostics((p, s) => { }, null); var builder = new ContainerBuilder(); { builder.Register(c => commands.Object).As <ICommandContainer>(); builder.Register(c => notificationNames).As <INotificationNameConstants>(); builder.Register(c => systemDiagnostics).As <SystemDiagnostics>(); } Action <IContainer> onStartService = c => { }; var service = new UserInterfaceService( builder.Build(), onStartService, systemDiagnostics); var proxy = new CoreProxy(new Mock <IKernel>().Object, systemDiagnostics); service.ConnectTo(proxy); ITimeline timeline = new Timeline(BuildStorage); var proxyLayer = new Mock <IProxyCompositionLayer>(); var projects = new ProjectService( () => timeline, d => new DatasetStorageProxy( d, new GroupSelector( new Mock <IConnectGroups>().Object, proxyLayer.Object), proxyLayer.Object), new Mock <IHelpDistributingDatasets>().Object, new Mock <ICollectNotifications>().Object, systemDiagnostics, new Mock <IBuildProjects>().Object); service.ConnectTo(projects); service.Start(); service.Invoke(new CommandId("bla"), new Mock <ICommandContext>().Object); commands.Verify(c => c.Invoke(It.IsAny <CommandId>(), It.IsAny <ICommandContext>()), Times.Exactly(1)); }
public void StopWithMissingAction() { var commands = new Mock <ICommandContainer>(); var notificationNames = new MockNotificationNameConstants(); var systemDiagnostics = new SystemDiagnostics((p, s) => { }, null); var builder = new ContainerBuilder(); { builder.Register(c => commands.Object).As <ICommandContainer>(); builder.Register(c => notificationNames).As <INotificationNameConstants>(); builder.Register(c => systemDiagnostics).As <SystemDiagnostics>(); } Action <IContainer> onStartService = c => { }; var service = new UserInterfaceService( builder.Build(), onStartService, systemDiagnostics); var proxy = new CoreProxy(new Mock <IKernel>().Object, systemDiagnostics); service.ConnectTo(proxy); ITimeline timeline = new Timeline(BuildStorage); var proxyLayer = new Mock <IProxyCompositionLayer>(); var projects = new ProjectService( () => timeline, d => new DatasetStorageProxy( d, new GroupSelector( new Mock <IConnectGroups>().Object, proxyLayer.Object), proxyLayer.Object), new Mock <IHelpDistributingDatasets>().Object, new Mock <ICollectNotifications>().Object, systemDiagnostics, new Mock <IBuildProjects>().Object); service.ConnectTo(projects); service.Start(); Assert.AreEqual(StartupState.Started, service.StartupState); Assert.Throws <MissingNotificationActionException>(service.Stop); }
public void StopWithMultipleNotifications() { var commands = new Mock<ICommandContainer>(); var notificationNames = new MockNotificationNameConstants(); var systemDiagnostics = new SystemDiagnostics((p, s) => { }, null); var builder = new ContainerBuilder(); { builder.Register(c => commands.Object).As<ICommandContainer>(); builder.Register(c => notificationNames).As<INotificationNameConstants>(); builder.Register(c => systemDiagnostics).As<SystemDiagnostics>(); } Action<IContainer> onStartService = c => { }; var service = new UserInterfaceService( builder.Build(), onStartService, systemDiagnostics); bool wasFirstInvoked = false; service.RegisterNotification(notificationNames.SystemShuttingDown, obj => { wasFirstInvoked = true; }); bool wasSecondInvoked = false; service.RegisterNotification(notificationNames.SystemShuttingDown, obj => { wasSecondInvoked = true; }); var proxy = new CoreProxy(new Mock<IKernel>().Object, systemDiagnostics); service.ConnectTo(proxy); ITimeline timeline = new Timeline(BuildStorage); var proxyLayer = new Mock<IProxyCompositionLayer>(); var projects = new ProjectService( () => timeline, d => new DatasetStorageProxy( d, new GroupSelector( new Mock<IConnectGroups>().Object, proxyLayer.Object), proxyLayer.Object), new Mock<IHelpDistributingDatasets>().Object, new Mock<ICollectNotifications>().Object, systemDiagnostics, new Mock<IBuildProjects>().Object); service.ConnectTo(projects); service.Start(); Assert.AreEqual(StartupState.Started, service.StartupState); service.Stop(); Assert.AreEqual(StartupState.Stopped, service.StartupState); Assert.IsTrue(wasFirstInvoked); Assert.IsTrue(wasSecondInvoked); }
public void StopWithMissingAction() { var commands = new Mock<ICommandContainer>(); var notificationNames = new MockNotificationNameConstants(); var systemDiagnostics = new SystemDiagnostics((p, s) => { }, null); var builder = new ContainerBuilder(); { builder.Register(c => commands.Object).As<ICommandContainer>(); builder.Register(c => notificationNames).As<INotificationNameConstants>(); builder.Register(c => systemDiagnostics).As<SystemDiagnostics>(); } Action<IContainer> onStartService = c => { }; var service = new UserInterfaceService( builder.Build(), onStartService, systemDiagnostics); var proxy = new CoreProxy(new Mock<IKernel>().Object, systemDiagnostics); service.ConnectTo(proxy); ITimeline timeline = new Timeline(BuildStorage); var proxyLayer = new Mock<IProxyCompositionLayer>(); var projects = new ProjectService( () => timeline, d => new DatasetStorageProxy( d, new GroupSelector( new Mock<IConnectGroups>().Object, proxyLayer.Object), proxyLayer.Object), new Mock<IHelpDistributingDatasets>().Object, new Mock<ICollectNotifications>().Object, systemDiagnostics, new Mock<IBuildProjects>().Object); service.ConnectTo(projects); service.Start(); Assert.AreEqual(StartupState.Started, service.StartupState); Assert.Throws<MissingNotificationActionException>(service.Stop); }
public void InvokeWithIdFullyFunctional() { var commands = new Mock<ICommandContainer>(); { commands.Setup(c => c.Invoke(It.IsAny<CommandId>())) .Verifiable(); } var notificationNames = new MockNotificationNameConstants(); var systemDiagnostics = new SystemDiagnostics((p, s) => { }, null); var builder = new ContainerBuilder(); { builder.Register(c => commands.Object).As<ICommandContainer>(); builder.Register(c => notificationNames).As<INotificationNameConstants>(); builder.Register(c => systemDiagnostics).As<SystemDiagnostics>(); } Action<IContainer> onStartService = c => { }; var service = new UserInterfaceService( builder.Build(), onStartService, systemDiagnostics); var proxy = new CoreProxy(new Mock<IKernel>().Object, systemDiagnostics); service.ConnectTo(proxy); ITimeline timeline = new Timeline(BuildStorage); var proxyLayer = new Mock<IProxyCompositionLayer>(); var projects = new ProjectService( () => timeline, d => new DatasetStorageProxy( d, new GroupSelector( new Mock<IConnectGroups>().Object, proxyLayer.Object), proxyLayer.Object), new Mock<IHelpDistributingDatasets>().Object, new Mock<ICollectNotifications>().Object, systemDiagnostics, new Mock<IBuildProjects>().Object); service.ConnectTo(projects); service.Start(); service.Invoke(new CommandId("bla")); commands.Verify(c => c.Invoke(It.IsAny<CommandId>()), Times.Exactly(1)); }
public void HandleApplicationStartupCompleteMessage() { var commands = new Mock<ICommandContainer>(); var notificationNames = new MockNotificationNameConstants(); var systemDiagnostics = new SystemDiagnostics((p, s) => { }, null); bool isStarted = false; Action<INotificationArguments> onApplicationStartup = obj => { isStarted = true; }; var builder = new ContainerBuilder(); { builder.Register(c => commands.Object).As<ICommandContainer>(); builder.Register(c => notificationNames).As<INotificationNameConstants>(); builder.Register(c => systemDiagnostics).As<SystemDiagnostics>(); } Action<IContainer> onStartService = c => { }; var service = new UserInterfaceService( builder.Build(), onStartService, systemDiagnostics); service.RegisterNotification(notificationNames.StartupComplete, onApplicationStartup); var proxy = new CoreProxy(new Mock<IKernel>().Object, systemDiagnostics); service.ConnectTo(proxy); ITimeline timeline = new Timeline(BuildStorage); var proxyLayer = new Mock<IProxyCompositionLayer>(); var projects = new ProjectService( () => timeline, d => new DatasetStorageProxy( d, new GroupSelector( new Mock<IConnectGroups>().Object, proxyLayer.Object), proxyLayer.Object), new Mock<IHelpDistributingDatasets>().Object, new Mock<ICollectNotifications>().Object, systemDiagnostics, new Mock<IBuildProjects>().Object); service.ConnectTo(projects); service.Start(); proxy.NotifyServicesOfStartupCompletion(); Assert.IsTrue(isStarted); }