コード例 #1
0
        public void Should_create_folder_when_it_does_not_exist()
        {
            //Arrange
            var directoryPath   = "ABC";
            var doesFolderExist = false;
            var doesFileExist   = true;
            var fileLoaderMock  = new Mock <IFileLoaderAgent>(MockBehavior.Strict);

            fileLoaderMock.Setup(x => x.GetApplicationFolderPath()).Returns(directoryPath);
            fileLoaderMock.Setup(x => x.DoesDirectoryExist(directoryPath)).Returns(() => doesFolderExist).Callback(() => { doesFolderExist = true; });
            fileLoaderMock.Setup(x => x.DoesFileExist(It.IsAny <string>())).Returns(() => doesFileExist).Callback(() => { doesFileExist = false; });;
            fileLoaderMock.Setup(x => x.CreateDirectory(directoryPath));
            fileLoaderMock.Setup(x => x.DeleteFile(It.IsAny <string>()));
            fileLoaderMock.Setup(x => x.WriteAllText(It.IsAny <string>(), It.IsAny <string>()));
            fileLoaderMock.Setup(x => x.ReadAllText(It.IsAny <string>())).Returns("<a/>");
            var configBusiness = new ConfigBusiness(fileLoaderMock.Object);

            //Act
            var config = configBusiness.OpenDatabaseConfig().First();

            //Assert
            Assert.That(config, Is.Not.Null);
            Assert.That(config.Url, Is.EqualTo(Constants.NoConfigUrl));
            Assert.That(config.Username, Is.EqualTo(null));
            Assert.That(config.Password, Is.EqualTo(null));
            Assert.That(config.Name, Is.EqualTo(null));
            fileLoaderMock.Verify(x => x.CreateDirectory(directoryPath), Times.Once);
        }