public void GetCommandListForFileTask_LinkToExistsMoveFileNoOverWrite_MoveFileCommandAdded()
        {
            FakeFile linkTo = new FakeFile("LinkTo");
            linkTo.ExistsReturnValue = true;
            FakeFile linkFrom = new FakeFile("LinkFrom");

            var commandFactory = MockRepository.GenerateMock<ICommandFactory>();

            var commandDiscovery = new CommandDiscovery(commandFactory, f => new FakeFile(f), f => new FakeFolder(f));
            var commandList = commandDiscovery.GetCommandListForFileTask(linkTo, linkFrom, true, false);

            Assert.AreEqual(2, commandList.Count);
            commandFactory.AssertWasCalled(cf => cf.MoveFileCommand(Arg<IFile>.Is.Equal(linkTo), 
                                                                    Arg<IFile>.Is.Equal(linkFrom),
                                                                    Arg<Boolean>.Is.Equal(false)));

            commandFactory.AssertWasCalled(cf => cf.CreateFileLinkCommand(Arg<IFile>.Is.Equal(linkTo),
                                                                          Arg<IFile>.Is.Equal(linkFrom)));
        
        }
        public void GetCommandListForFileTask_LinkToDoesntExist_CreateLinkOnly()
        {
            FakeFile linkTo = new FakeFile("LinkTo");
            FakeFile linkFrom = new FakeFile("LinkFrom");

            var commandFactory = MockRepository.GenerateMock<ICommandFactory>();

            var commandDiscovery = new CommandDiscovery(commandFactory, f => new FakeFile(f), f => new FakeFolder(f));
            var commandList = commandDiscovery.GetCommandListForFileTask(linkTo, linkFrom, false, false);

            Assert.AreEqual(1, commandList.Count);
            commandFactory.AssertWasCalled(cf => cf.CreateFileLinkCommand(Arg<IFile>.Is.Equal(linkTo),
                                                                          Arg<IFile>.Is.Equal(linkFrom)));
        }