Beispiel #1
0
        public async Task GetAvatarAsync_should_generate_avatar_if_none_found()
        {
            var fileSystem = new MockFileSystem();

            _cache = new AvatarPersistentCache(_inner, _avatarGenerator, fileSystem);
            fileSystem.Directory.Exists(_folderPath).Should().BeFalse();

            Assert.AreSame(_imgGenerated, await _cache.GetAvatarAsync(_emailMissing, _nameMissing, _size));
        }
Beispiel #2
0
        public async Task GetAvatarAsync_should_create_if_folder_absent()
        {
            var fileSystem = new MockFileSystem();

            _cache = new AvatarPersistentCache(_inner, Substitute.For <IAvatarGenerator>(), fileSystem);
            fileSystem.Directory.Exists(_folderPath).Should().BeFalse();

            Assert.AreSame(_img1, await _cache.GetAvatarAsync(_email1, _name1, _size));

            fileSystem.Directory.Exists(_folderPath).Should().BeTrue();
        }
Beispiel #3
0
        public async Task GetAvatarAsync_should_create_image_from_stream()
        {
            var fileSystem = new MockFileSystem();

            _cache = new AvatarPersistentCache(_inner, Substitute.For <IAvatarGenerator>(), fileSystem);
            fileSystem.Directory.Exists(_folderPath).Should().BeFalse();

            Assert.AreSame(_img1, await _cache.GetAvatarAsync(_email1, _name1, _size));

            fileSystem.Directory.Exists(_folderPath).Should().BeTrue();
            fileSystem.File.Exists(Path.Combine(_folderPath, $"{_email1}.{_size}px.png")).Should().BeTrue();
        }
Beispiel #4
0
        public async Task ClearCacheAsync_should_remove_all()
        {
            var fileSystem = new MockFileSystem();

            _cache = new AvatarPersistentCache(_inner, Substitute.For <IAvatarGenerator>(), fileSystem);

            fileSystem.AddFile(Path.Combine(_folderPath, "*****@*****.**"), new MockFileData(""));
            fileSystem.AddFile(Path.Combine(_folderPath, "*****@*****.**"), new MockFileData(""));
            fileSystem.AllFiles.Count().Should().Be(2);

            await _cache.ClearCacheAsync();

            fileSystem.AllFiles.Count().Should().Be(0);
        }
        public override void SetUp()
        {
            base.SetUp();

            _fileSystem = Substitute.For <IFileSystem>();
            _directory  = Substitute.For <DirectoryBase>();
            _fileSystem.Directory.Returns(_directory);
            _file = Substitute.For <FileBase>();
            _fileSystem.File.Returns(_file);
            _fileInfo = Substitute.For <FileInfoBase>();
            _fileInfo.Exists.Returns(true);
            _fileInfoFactory = Substitute.For <IFileInfoFactory>();
            _fileInfoFactory.FromFileName(Arg.Any <string>()).Returns(_fileInfo);
            _fileSystem.FileInfo.Returns(_fileInfoFactory);

            _folderPath = AppSettings.AvatarImageCachePath;

            _cache = new AvatarPersistentCache(_inner, _fileSystem);
        }