Exemplo n.º 1
0
        public void Delete_WhenVersion_ShouldDeleteVersion()
        {
            //---------------Set up test pack-------------------
            var mock = new Mock <IExplorerRepository>();

            mock.Setup(proxy => proxy.HasDependencies(It.IsAny <IExplorerItemViewModel>(), It.IsAny <IDependencyGraphGenerator>(), It.IsAny <IExecuteMessage>()))
            .Returns(() => new DeletedFileMetadata
            {
                ApplyToAll   = true,
                DeleteAnyway = true
            });

            var mockQueryManager   = new Mock <IQueryManager>();
            var mockVersionManager = new Mock <IVersionManager>();

            mockQueryManager.Setup(manager => manager.FetchDependants(It.IsAny <Guid>())).Returns(new ExecuteMessage());
            mockVersionManager.Setup(manager => manager.DeleteVersion(It.IsAny <Guid>(), It.IsAny <string>(), It.IsAny <string>())).Verifiable();
            mock.SetupGet(repository => repository.QueryManagerProxy).Returns(mockQueryManager.Object);
            mock.SetupGet(repository => repository.VersionManager).Returns(mockVersionManager.Object);
            var updateManagerProxy = new Mock <IExplorerUpdateManager>();

            mock.SetupGet(repository => repository.UpdateManagerProxy).Returns(updateManagerProxy.Object);
            mock.Setup(repository => repository.HasDependencies(It.IsAny <IExplorerItemViewModel>(), It.IsAny <IDependencyGraphGenerator>(), It.IsAny <IExecuteMessage>()))
            .Returns(new DeletedFileMetadata {
                IsDeleted = true, DeleteAnyway = true
            });

            var mockExplorerItemModelParent = new Mock <IExplorerItemViewModel>();

            mockExplorerItemModelParent.Setup(model => model.ResourceType).Returns("Folder");
            mockExplorerItemModelParent.Setup(model => model.ResourcePath).Returns("folderPath");

            var mockExplorerItemModel = new Mock <IExplorerItemViewModel>();
            var child = new Mock <IExplorerItemViewModel>();

            child.SetupGet(model => model.ResourceType).Returns("Version");
            mockExplorerItemModel.Setup(model => model.ResourceType).Returns("Version");
            mockExplorerItemModel.Setup(model => model.ResourcePath).Returns("path");
            mockExplorerItemModel.Setup(model => model.Parent).Returns(mockExplorerItemModelParent.Object);
            mockExplorerItemModel.Setup(model => model.AsList())
            .Returns(new List <IExplorerItemViewModel>
            {
                child.Object
            });
            var explorerDeleteProvider = new ExplorerDeleteProvider(mock.Object);

            //---------------Assert Precondition----------------
            Assert.IsNotNull(explorerDeleteProvider);
            //---------------Execute Test ----------------------
            var deletedFileMetadata = explorerDeleteProvider.TryDelete(mockExplorerItemModel.Object);

            //---------------Test Result -----------------------
            mockVersionManager.Verify(manager => manager.DeleteVersion(It.IsAny <Guid>(), It.IsAny <string>(), It.IsAny <string>()));
            Assert.IsTrue(deletedFileMetadata.IsDeleted);
        }
Exemplo n.º 2
0
        public void Delete_WhenException_ShouldNotDelete()
        {
            //---------------Set up test pack-------------------
            var mock = new Mock <IExplorerRepository>();

            mock.Setup(proxy => proxy.HasDependencies(It.IsAny <IExplorerItemViewModel>(), It.IsAny <IDependencyGraphGenerator>(), It.IsAny <IExecuteMessage>()))
            .Returns(() => new DeletedFileMetadata
            {
                ApplyToAll       = false,
                DeleteAnyway     = true,
                IsDeleted        = false,
                ShowDependencies = true
            });

            var mockQueryManager   = new Mock <IQueryManager>();
            var mockVersionManager = new Mock <IVersionManager>();

            mockQueryManager.Setup(manager => manager.FetchDependants(It.IsAny <Guid>())).Throws(new Exception("err"));
            mockVersionManager.Setup(manager => manager.DeleteVersion(It.IsAny <Guid>(), It.IsAny <string>(), It.IsAny <string>())).Verifiable();
            mock.SetupGet(repository => repository.QueryManagerProxy).Returns(mockQueryManager.Object);
            mock.SetupGet(repository => repository.VersionManager).Returns(mockVersionManager.Object);
            var updateManagerProxy = new Mock <IExplorerUpdateManager>();

            updateManagerProxy.Setup(manager => manager.MoveItem(It.IsAny <Guid>(), It.IsAny <string>(), It.IsAny <string>()))
            .Returns(ValueFunction(ExecStatus.Fail));
            mock.SetupGet(repository => repository.UpdateManagerProxy).Returns(updateManagerProxy.Object);
            var mockExplorerItemModel = new Mock <IExplorerItemViewModel>();
            var child = new Mock <IExplorerItemViewModel>();

            child.SetupGet(model => model.ResourceType).Returns("Resourse");
            var child1 = new Mock <IExplorerItemViewModel>();

            child1.SetupGet(model => model.ResourceType).Returns("Resourse");
            mockExplorerItemModel.Setup(model => model.RemoveChild(It.IsAny <IExplorerItemViewModel>()));
            mockExplorerItemModel.Setup(model => model.ResourceType).Returns("Folder");
            mockExplorerItemModel.Setup(model => model.ResourcePath).Returns("path");
            mockExplorerItemModel.Setup(model => model.AsList())
            .Returns(new List <IExplorerItemViewModel>
            {
                child.Object, child1.Object
            });
            var explorerDeleteProvider = new ExplorerDeleteProvider(mock.Object);

            //---------------Assert Precondition----------------
            Assert.IsNotNull(explorerDeleteProvider);
            //---------------Execute Test ----------------------
            var item = explorerDeleteProvider.TryDelete(mockExplorerItemModel.Object);

            //---------------Test Result -----------------------
            Assert.IsNotNull(item);
            mockQueryManager.Verify(manager => manager.FetchDependants(It.IsAny <Guid>()), Times.Once);
            updateManagerProxy.Verify(manager => manager.DeleteResource(It.IsAny <Guid>()), Times.Never);
            mockExplorerItemModel.Verify(model => model.RemoveChild(It.IsAny <IExplorerItemViewModel>()), Times.Never);
            Assert.AreEqual(false, item.IsDeleted);
        }