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_GeneratorArgumentIsNotSupplied_ThrowsGeneratorArgumentNullException()
        {
            // arrange
            FileHelper fileHelper = new FileHelper();

            AppFile file = new AppFile();

            TestDelegate testDelegate = () => fileHelper.GenerateUniqueFileName(file, null, It.IsAny<UniqueCharsPosition>());

            // act, assert
            Assert.That(testDelegate, Throws.Exception.TypeOf<ArgumentNullException>().With.Property("ParamName").EqualTo("generator"));
        }