public void RegisterNotificationWithExistingName() { 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); Action <INotificationArguments> callback = obj => { }; service.RegisterNotification(notificationNames.SystemShuttingDown, callback); Assert.DoesNotThrow(() => service.RegisterNotification(notificationNames.SystemShuttingDown, obj => { })); }
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 RegisterNotificationWithNullCallback() { 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); Assert.Throws <ArgumentNullException>(() => service.RegisterNotification(new NotificationName("bla"), null)); }
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 RegisterNotificationWithNullName() { 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); Assert.Throws<ArgumentNullException>(() => service.RegisterNotification(null, obj => { })); }
public void RegisterNotificationWithExistingName() { 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); Action<INotificationArguments> callback = obj => { }; service.RegisterNotification(notificationNames.SystemShuttingDown, callback); Assert.DoesNotThrow(() => service.RegisterNotification(notificationNames.SystemShuttingDown, obj => { })); }
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); }