public void ValidOperation_ValidData_TrueIsReturned() { var validator = new OperationValidation(f => new FakeFile(f), f => new FakeFolder(f)); var data = new LinkOperationData() { LinkTo = "test1", CreateLinkAt = "test2" }; String errorMessage; Boolean valid = validator.ValidOperation(data, out errorMessage); Assert.IsTrue(valid); }
public void ValidOperation_File_LinkToExists_ValidOperation() { String createLinkAt = "linkAt"; String linkTo = "linkTo"; var fileFactory = GetFileFactoryThatReturnsExistsFor(linkTo); var validator = new OperationValidation(fileFactory, f => new FakeFolder(f)); var data = new LinkOperationData() { LinkTo = createLinkAt, CreateLinkAt = linkTo, CopyBeforeDelete = true }; String errorMessage; Boolean valid = validator.ValidOperation(data, out errorMessage); Assert.IsTrue(valid); }
public void ValidOperation__CreateLinkAtExistsNoCopyBeforeDeleteLinkToDoesNotExist_FalseIsReturnedAlongWithErrorMessage() { String createLinkAt = "linkAt"; String linkTo = "linkTo"; var fileFactory = GetFileFactoryThatReturnsExistsFor(createLinkAt); var validator = new OperationValidation(fileFactory, f => new FakeFolder(f)); var data = new LinkOperationData() { LinkTo = createLinkAt, CreateLinkAt = linkTo, CopyBeforeDelete = false }; String errorMessage; Boolean valid = validator.ValidOperation(data, out errorMessage); Assert.IsFalse(valid); Assert.AreEqual("When creating a file link the linked to file must exist", errorMessage); }
public void ValidOperation_AttemptsToLinkFolderToFile_NotValid() { String createLinkAt = "linkAt"; String linkTo = "linkTo"; var fileFactory = GetFileFactoryThatReturnsExistsFor(createLinkAt); var folderFactory = CommandDiscoveryTests.GetFolderFactoryThatReturnsExistsFor(linkTo); var validator = new OperationValidation(fileFactory, folderFactory); var data = new LinkOperationData() { LinkTo = linkTo, CreateLinkAt = createLinkAt, CopyBeforeDelete = true }; String errorMessage; Boolean valid = validator.ValidOperation(data, out errorMessage); Assert.IsFalse(valid); }
public void PerformOperation_ValidData_CommandsQueuedInCommandRunnerFromCommandDiscovery() { List <ICommand> commandList = new List <ICommand>(); var commandDiscovery = MockRepository.GenerateMock <ICommandDiscovery>(); commandDiscovery.Stub(c => c.GetCommandListTask(Arg <String> .Is.Anything, Arg <String> .Is.Anything, Arg <Boolean> .Is.Anything, Arg <Boolean> .Is.Anything)) .Return(commandList); var runner = MockRepository.GenerateMock <ITransactionalCommandRunner>(); var linker = GetLinkerService(commandDiscovery, runner); LinkOperationData data = new LinkOperationData { CopyBeforeDelete = true, CreateLinkAt = "", LinkTo = "", OverwriteExistingFiles = true }; linker.SetOperationData(data); linker.PerformOperation(); runner.AssertWasCalled(r => r.QueueRange(commandList)); }
public void PerformOperation_ValidDataAndDispatcher_StatusSetToCommandDiscoveryRunning() { var commandDiscovery = MockRepository.GenerateMock <ICommandDiscovery>(); var runner = MockRepository.GenerateMock <ITransactionalCommandRunner>(); var linker = GetLinkerService(commandDiscovery, runner); var statusData = linker.GetStatusData(Dispatcher.CurrentDispatcher); LinkOperationData data = new LinkOperationData { CopyBeforeDelete = true, CreateLinkAt = "", LinkTo = "", OverwriteExistingFiles = true }; linker.SetOperationData(data); Boolean statusSet = false; statusData.PropertyChanged += (s, ea) => statusSet |= ea.PropertyName.Equals("Message") && statusData.Message.Equals("Building Task List"); linker.PerformOperation(); Assert.IsTrue(statusSet); }
public void PerformOperation_ValidData_CommandIsRequestedFromCommandDiscovery() { String linkTo = "Test2"; String linkFrom = "Test1"; var commandDiscovery = MockRepository.GenerateMock <ICommandDiscovery>(); var linker = GetLinkerService(commandDiscovery); LinkOperationData data = new LinkOperationData { CopyBeforeDelete = true, CreateLinkAt = linkFrom, LinkTo = linkTo, OverwriteExistingFiles = true }; linker.SetOperationData(data); linker.PerformOperation(); commandDiscovery.AssertWasCalled(d => d.GetCommandListTask( Arg <String> .Is.Equal(linkTo), Arg <String> .Is.Equal(linkFrom), Arg <Boolean> .Matches(b => data.CopyBeforeDelete), Arg <Boolean> .Matches(b => data.OverwriteExistingFiles))); }
public Boolean ValidOperation(LinkOperationData linkData, out String errorMessage) { errorMessage = String.Empty; if (PathsMatch(linkData)) { errorMessage = "A path can not be linked to itself"; return(false); } if (!IsValidFileLink(linkData)) { errorMessage = "When creating a file link the linked to file must exist"; return(false); } if (TryingToLinkFileToFolder(linkData)) { errorMessage = "A file can not be linked to a folder"; return(false); } return(true); }
public void SetOperationData(LinkOperationData linkData) { _operationData = linkData; }
private Boolean PathsMatch(LinkOperationData linkData) { return(linkData.CreateLinkAt.Equals(linkData.LinkTo, StringComparison.CurrentCultureIgnoreCase)); }