public void NoModificationsIfNoCheckedFiles()
        {
            // Arrange
            IDuplicateReaderFactory readerFactory = this.ArrangeReaderFactoryForGroups(
                this.ArrangeGroup(
                    new GroupFile()
            {
                Checked = false
            },
                    new GroupFile()
            {
                Checked = false
            }));

            IFileModifier fileModifier = Substitute.For <IFileModifier>();

            DuplicateProcessor uut = this.DuplicateProcessorWithDefaultMocks(
                readerFactory: readerFactory,
                fileModifier: fileModifier);

            // Act
            uut.ProcessDuplicates();

            // Assert
            fileModifier.DidNotReceive().Delete(Arg.Any <GroupFile>());
            fileModifier.DidNotReceive().Move(Arg.Any <GroupFile>(), Arg.Any <string>());
        }
        public void StagedFileIsNotMovedIfMultipleGoodPathsFound()
        {
            // Arrange
            IDuplicateHandlerConfiguration config = Substitute.For <IDuplicateHandlerConfiguration>();

            config.GoodPath.Returns(@"c:\good");

            GroupFile goodFile1 = new GroupFile()
            {
                FullName = config.GoodPath + @"\folder1\decent.jpg", Checked = true
            };
            GroupFile goodFile2 = new GroupFile()
            {
                FullName = config.GoodPath + @"\folder2\ok.jpg", Checked = true
            };
            GroupFile stagedFile = new GroupFile()
            {
                FullName = @"c:\staged\better.png", Checked = false
            };

            IDuplicateReaderFactory readerFactory = this.ArrangeReaderFactoryForGroups(
                this.ArrangeGroup(goodFile1, goodFile2, stagedFile));

            IFileModifier fileModifier = Substitute.For <IFileModifier>();

            DuplicateProcessor uut = this.DuplicateProcessorWithDefaultMocks(
                config: config,
                readerFactory: readerFactory,
                fileModifier: fileModifier);

            // Act
            uut.ProcessDuplicates();

            // Assert
            fileModifier.Received(1).Delete(goodFile1);
            fileModifier.Received(1).Delete(goodFile2);
            fileModifier.DidNotReceive().Move(Arg.Any <GroupFile>(), Arg.Any <string>());
        }