Пример #1
0
        public void StopWithProject()
        {
            var systemDiagnostics = new SystemDiagnostics((p, s) => { }, null);

            ITimeline timeline    = new Timeline(BuildStorage);
            var       distributor = new Mock <IHelpDistributingDatasets>();

            bool wasClosed = false;
            var  project   = new Mock <IProject>();
            var  closable  = project.As <ICanClose>();
            {
                closable.Setup(c => c.Close())
                .Callback(() => { wasClosed = true; });
            }

            var builder = new Mock <IBuildProjects>();
            {
                builder.Setup(b => b.Define())
                .Returns(builder.Object)
                .Verifiable();

                builder.Setup(b => b.WithTimeline(It.IsAny <ITimeline>()))
                .Returns(builder.Object)
                .Verifiable();

                builder.Setup(
                    b => b.WithDatasetDistributor(
                        It.IsAny <Func <DatasetActivationRequest, CancellationToken, IEnumerable <DistributionPlan> > >()))
                .Returns(builder.Object)
                .Verifiable();

                builder.Setup(b => b.WithDataStorageBuilder(It.IsAny <Func <DatasetOnlineInformation, DatasetStorageProxy> >()))
                .Returns(builder.Object)
                .Verifiable();

                builder.Setup(b => b.WithNotifications(It.IsAny <ICollectNotifications>()))
                .Returns(builder.Object)
                .Verifiable();

                builder.Setup(b => b.WithDiagnostics(It.IsAny <SystemDiagnostics>()))
                .Returns(builder.Object)
                .Verifiable();

                builder.Setup(b => b.Build())
                .Returns(project.Object)
                .Verifiable();
            }

            var proxyLayer = new Mock <IProxyCompositionLayer>();
            var service    = new ProjectService(
                () => timeline,
                d => new DatasetStorageProxy(
                    d,
                    new GroupSelector(
                        new Mock <IConnectGroups>().Object,
                        proxyLayer.Object),
                    proxyLayer.Object),
                distributor.Object,
                new Mock <ICollectNotifications>().Object,
                systemDiagnostics,
                builder.Object);

            service.Start();
            Assert.AreEqual(StartupState.Started, service.StartupState);

            service.CreateNewProject();

            var createdProject = service.Current;

            Assert.IsNotNull(createdProject);

            service.Stop();
            Assert.AreEqual(StartupState.Stopped, service.StartupState);
            Assert.IsTrue(wasClosed);
        }
Пример #2
0
        public void CreateNewProject()
        {
            var systemDiagnostics = new SystemDiagnostics((p, s) => { }, null);

            ITimeline timeline = new Timeline(BuildStorage);
            var distributor = new Mock<IHelpDistributingDatasets>();

            var project = new Mock<IProject>();
            project.As<ICanClose>();
            var builder = new Mock<IBuildProjects>();
            {
                builder.Setup(b => b.Define())
                    .Returns(builder.Object)
                    .Verifiable();

                builder.Setup(b => b.WithTimeline(It.IsAny<ITimeline>()))
                    .Returns(builder.Object)
                    .Verifiable();

                builder.Setup(
                        b => b.WithDatasetDistributor(
                            It.IsAny<Func<DatasetActivationRequest, CancellationToken, IEnumerable<DistributionPlan>>>()))
                    .Returns(builder.Object)
                    .Verifiable();

                builder.Setup(b => b.WithDataStorageBuilder(It.IsAny<Func<DatasetOnlineInformation, DatasetStorageProxy>>()))
                    .Returns(builder.Object)
                    .Verifiable();

                builder.Setup(b => b.WithNotifications(It.IsAny<ICollectNotifications>()))
                    .Returns(builder.Object)
                    .Verifiable();

                builder.Setup(b => b.WithDiagnostics(It.IsAny<SystemDiagnostics>()))
                    .Returns(builder.Object)
                    .Verifiable();

                builder.Setup(b => b.Build())
                    .Returns(project.Object)
                    .Verifiable();
            }

            var proxyLayer = new Mock<IProxyCompositionLayer>();
            var service = new ProjectService(
                () => timeline,
                d => new DatasetStorageProxy(
                    d,
                    new GroupSelector(
                        new Mock<IConnectGroups>().Object,
                        proxyLayer.Object),
                    proxyLayer.Object),
                distributor.Object,
                new Mock<ICollectNotifications>().Object,
                systemDiagnostics,
                builder.Object);

            service.CreateNewProject();

            builder.Verify(b => b.Define(), Times.Exactly(1));
            builder.Verify(
                b => b.WithDatasetDistributor(It.IsAny<Func<DatasetActivationRequest, CancellationToken, IEnumerable<DistributionPlan>>>()),
                Times.Exactly(1));
            builder.Verify(b => b.Build(), Times.Exactly(1));
        }
Пример #3
0
        public void UnloadProject()
        {
            var       systemDiagnostics = new SystemDiagnostics((p, s) => { }, null);
            ITimeline timeline          = new Timeline(BuildStorage);
            var       distributor       = new Mock <IHelpDistributingDatasets>();

            var project  = new Mock <IProject>();
            var closable = project.As <ICanClose>();
            {
                closable.Setup(p => p.Close())
                .Verifiable();
            }

            var builder = new Mock <IBuildProjects>();
            {
                builder.Setup(b => b.Define())
                .Returns(builder.Object);

                builder.Setup(b => b.WithTimeline(It.IsAny <ITimeline>()))
                .Returns(builder.Object)
                .Verifiable();

                builder.Setup(
                    b => b.WithDatasetDistributor(
                        It.IsAny <Func <DatasetActivationRequest, CancellationToken, IEnumerable <DistributionPlan> > >()))
                .Returns(builder.Object);

                builder.Setup(b => b.WithDataStorageBuilder(It.IsAny <Func <DatasetOnlineInformation, DatasetStorageProxy> >()))
                .Returns(builder.Object)
                .Verifiable();

                builder.Setup(b => b.WithNotifications(It.IsAny <ICollectNotifications>()))
                .Returns(builder.Object)
                .Verifiable();

                builder.Setup(b => b.WithDiagnostics(It.IsAny <SystemDiagnostics>()))
                .Returns(builder.Object)
                .Verifiable();

                builder.Setup(b => b.Build())
                .Returns(project.Object);
            }

            var proxyLayer = new Mock <IProxyCompositionLayer>();
            var service    = new ProjectService(
                () => timeline,
                d => new DatasetStorageProxy(
                    d,
                    new GroupSelector(
                        new Mock <IConnectGroups>().Object,
                        proxyLayer.Object),
                    proxyLayer.Object),
                distributor.Object,
                new Mock <ICollectNotifications>().Object,
                systemDiagnostics,
                builder.Object);

            service.CreateNewProject();
            service.UnloadProject();

            closable.Verify(p => p.Close(), Times.Exactly(1));
        }
Пример #4
0
        public void StopWithProject()
        {
            var systemDiagnostics = new SystemDiagnostics((p, s) => { }, null);

            ITimeline timeline = new Timeline(BuildStorage);
            var distributor = new Mock<IHelpDistributingDatasets>();

            bool wasClosed = false;
            var project = new Mock<IProject>();
            var closable = project.As<ICanClose>();
            {
                closable.Setup(c => c.Close())
                    .Callback(() => { wasClosed = true; });
            }

            var builder = new Mock<IBuildProjects>();
            {
                builder.Setup(b => b.Define())
                    .Returns(builder.Object)
                    .Verifiable();

                builder.Setup(b => b.WithTimeline(It.IsAny<ITimeline>()))
                    .Returns(builder.Object)
                    .Verifiable();

                builder.Setup(
                        b => b.WithDatasetDistributor(
                            It.IsAny<Func<DatasetActivationRequest, CancellationToken, IEnumerable<DistributionPlan>>>()))
                    .Returns(builder.Object)
                    .Verifiable();

                builder.Setup(b => b.WithDataStorageBuilder(It.IsAny<Func<DatasetOnlineInformation, DatasetStorageProxy>>()))
                    .Returns(builder.Object)
                    .Verifiable();

                builder.Setup(b => b.WithNotifications(It.IsAny<ICollectNotifications>()))
                    .Returns(builder.Object)
                    .Verifiable();

                builder.Setup(b => b.WithDiagnostics(It.IsAny<SystemDiagnostics>()))
                    .Returns(builder.Object)
                    .Verifiable();

                builder.Setup(b => b.Build())
                    .Returns(project.Object)
                    .Verifiable();
            }

            var proxyLayer = new Mock<IProxyCompositionLayer>();
            var service = new ProjectService(
                () => timeline,
                d => new DatasetStorageProxy(
                    d,
                    new GroupSelector(
                        new Mock<IConnectGroups>().Object,
                        proxyLayer.Object),
                    proxyLayer.Object),
                distributor.Object,
                new Mock<ICollectNotifications>().Object,
                systemDiagnostics,
                builder.Object);

            service.Start();
            Assert.AreEqual(StartupState.Started, service.StartupState);

            service.CreateNewProject();

            var createdProject = service.Current;
            Assert.IsNotNull(createdProject);

            service.Stop();
            Assert.AreEqual(StartupState.Stopped, service.StartupState);
            Assert.IsTrue(wasClosed);
        }