public void CanAddNewChildWithNullDatasetFacade()
        {
            var project = new Mock <ILinkToProjects>();
            Func <string, IDisposable> func = s => new MockDisposable();

            var command = new AddChildDatasetCommand(project.Object, null, func);

            Assert.IsFalse(command.CanExecute(null));
        }
        public void AddNewChild()
        {
            var history = new Mock <ITimeline>();
            {
                history.Setup(h => h.Mark())
                .Verifiable();
            }

            var project = new Mock <IProject>();
            {
                project.Setup(p => p.History)
                .Returns(history.Object);
            }

            var projectFacade = new ProjectFacade(project.Object);
            var projectLink   = new Mock <ILinkToProjects>();
            {
                projectLink.Setup(p => p.ActiveProject())
                .Returns(projectFacade);
            }

            var childProxy = new Mock <IProxyDataset>();
            var proxy      = new Mock <IProxyDataset>();
            {
                proxy.Setup(p => p.IsValid)
                .Returns(true);
                proxy.Setup(p => p.CanBecomeParent)
                .Returns(true);
                proxy.Setup(p => p.StoredAt)
                .Returns(new NullPersistenceInformation());
                proxy.Setup(p => p.CreateNewChild(It.IsAny <DatasetCreationInformation>()))
                .Returns(childProxy.Object)
                .Verifiable();
            }

            var dataset = new DatasetFacade(proxy.Object);
            Func <string, IDisposable> func = s => new MockDisposable();

            var command = new AddChildDatasetCommand(projectLink.Object, dataset, func);

            Assert.IsTrue(command.CanExecute(null));

            command.Execute(null);
            proxy.Verify(p => p.CreateNewChild(It.IsAny <DatasetCreationInformation>()), Times.Once());
            history.Verify(h => h.Mark(), Times.Once());
        }
        public void CanAddNewChildWithInvalidDatasetFacade()
        {
            var project = new Mock <ILinkToProjects>();

            var proxy = new Mock <IProxyDataset>();
            {
                proxy.Setup(p => p.IsValid)
                .Returns(false);
            }

            var dataset = new DatasetFacade(proxy.Object);
            Func <string, IDisposable> func = s => new MockDisposable();

            var command = new AddChildDatasetCommand(project.Object, dataset, func);

            Assert.IsFalse(command.CanExecute(null));
        }