public string GenerateUniqueFileName(AppFile file, IUniqueCharsGenerator generator, UniqueCharsPosition position)
        {
            if (file == null) { throw new ArgumentNullException("file"); }
            if (generator == null) { throw new ArgumentNullException("generator"); }

            string uniqueID = generator.Generate();

            StringBuilder sb = new StringBuilder();

            if (position == UniqueCharsPosition.Prefix)
            {
                sb.AppendFormat("{0}_", uniqueID);
            }

            sb.AppendFormat("{0}", file.FileNameWithoutExtension);

            if (position == UniqueCharsPosition.Suffix)
            {
                sb.AppendFormat("_{0}", uniqueID);
            }

            sb.AppendFormat("{0}", file.FileExtension);

            return sb.ToString();
        }
Example #2
0
        public void Run_SupplyFiveFilesAndFirstFileAlreadyExistsAndItShouldHaveUniqueCharsSequenceAdded_FirstFileHasUniqueCharsSequence(UniqueCharsPosition uniqueCharsPosition, bool onDuplicateAddPrefix, bool onDuplicateAddPostfix)
        {
            // arrange
            List <AppFile> filesToCopy = InitializeFiles();

            AppFile existingFile = filesToCopy[0];

            fileSystemMock.Setup(s => s.FileExists(It.IsAny <string>())).Returns(true);

            fileHelperMock.Setup(s => s.GenerateUniqueFileName(It.IsAny <AppFile>(), It.IsAny <IUniqueCharsGenerator>(), It.IsAny <UniqueCharsPosition>()));

            settingsMock.Setup(s => s.FilesToCopy).Returns(filesToCopy);
            settingsMock.SetupGet(s => s.OnDuplicateAddPrefix).Returns(onDuplicateAddPrefix);
            settingsMock.SetupGet(s => s.OnDuplicateAddSuffix).Returns(onDuplicateAddPostfix);
            settingsMock.SetupGet(s => s.CharsPositionOnDuplicate).Returns(uniqueCharsPosition);

            // act
            _worker.Run(_parameters);
            _backgroundWorkerMock.Raise(x => { x.OnDoWork += null; }, null, new System.ComponentModel.DoWorkEventArgs(null));

            // assert
            fileHelperMock.Verify(s => s.GenerateUniqueFileName(existingFile, generatorMock.Object, uniqueCharsPosition), Times.Once());
        }
        public void GenerateUniqueFileName_SupplyFileAndGeneratorAndPosition_ReturnsFileNameWithExtensionWithProperlyPositionedUniqueString(UniqueCharsPosition position, string expectedResult)
        {
            // arrange
            AppFile file = new AppFile();

            file.FileNameFull             = "TestFileName.extension";
            file.FileNameWithoutExtension = "TestFileName";
            file.FileExtension            = ".extension";

            Mock <IUniqueCharsGenerator> generatorMock = new Mock <IUniqueCharsGenerator>();

            generatorMock.Setup(s => s.Generate()).Returns("UniqueCharsSequence");

            FileHelper fileHelper = new FileHelper();

            // act
            string result = fileHelper.GenerateUniqueFileName(file, generatorMock.Object, position);

            //assert
            Assert.AreEqual(expectedResult, result);
        }
        public void GenerateUniqueFileName_SupplyFileAndGeneratorAndPosition_ReturnsFileNameWithExtensionWithProperlyPositionedUniqueString(UniqueCharsPosition position, string expectedResult)
        {
            // arrange
            AppFile file = new AppFile();
            file.FileNameFull = "TestFileName.extension";
            file.FileNameWithoutExtension = "TestFileName";
            file.FileExtension = ".extension";

            Mock<IUniqueCharsGenerator> generatorMock = new Mock<IUniqueCharsGenerator>();
            generatorMock.Setup(s => s.Generate()).Returns("UniqueCharsSequence");

            FileHelper fileHelper = new FileHelper();

            // act
            string result = fileHelper.GenerateUniqueFileName(file, generatorMock.Object, position);

            //assert
            Assert.AreEqual(expectedResult, result);
        }
Example #5
0
        public string GenerateUniqueFileName(AppFile file, IUniqueCharsGenerator generator, UniqueCharsPosition position)
        {
            if (file == null)
            {
                throw new ArgumentNullException("file");
            }
            if (generator == null)
            {
                throw new ArgumentNullException("generator");
            }

            string uniqueID = generator.Generate();

            StringBuilder sb = new StringBuilder();

            if (position == UniqueCharsPosition.Prefix)
            {
                sb.AppendFormat("{0}_", uniqueID);
            }

            sb.AppendFormat("{0}", file.FileNameWithoutExtension);

            if (position == UniqueCharsPosition.Suffix)
            {
                sb.AppendFormat("_{0}", uniqueID);
            }

            sb.AppendFormat("{0}", file.FileExtension);

            return(sb.ToString());
        }
        public void Run_SupplyFiveFilesAndFirstFileAlreadyExistsAndItShouldHaveUniqueCharsSequenceAdded_FirstFileHasUniqueCharsSequence(UniqueCharsPosition uniqueCharsPosition, bool onDuplicateAddPrefix, bool onDuplicateAddPostfix)
        {
            // arrange
            List<AppFile> filesToCopy = InitializeFiles();

            AppFile existingFile = filesToCopy[0];

            fileSystemMock.Setup(s => s.FileExists(It.IsAny<string>())).Returns(true);

            fileHelperMock.Setup(s => s.GenerateUniqueFileName(It.IsAny<AppFile>(), It.IsAny<IUniqueCharsGenerator>(), It.IsAny<UniqueCharsPosition>()));

            settingsMock.Setup(s => s.FilesToCopy).Returns(filesToCopy);
            settingsMock.SetupGet(s => s.OnDuplicateAddPrefix).Returns(onDuplicateAddPrefix);
            settingsMock.SetupGet(s => s.OnDuplicateAddSuffix).Returns(onDuplicateAddPostfix);
            settingsMock.SetupGet(s => s.CharsPositionOnDuplicate).Returns(uniqueCharsPosition);

            // act
            _worker.Run(_parameters);
            _backgroundWorkerMock.Raise(x => { x.OnDoWork += null; }, null, new System.ComponentModel.DoWorkEventArgs(null));

            // assert
            fileHelperMock.Verify(s => s.GenerateUniqueFileName(existingFile, generatorMock.Object, uniqueCharsPosition), Times.Once());
        }