コード例 #1
0
        public void GetAlbumArtFromCache()
        {
            var settings = A.Fake <IDukeboxSettings>();

            A.CallTo(() => settings.AlbumArtCachePath).Returns(cachePath);

            var albumArtCache = new AlbumArtCacheService(settings);
            var albumId       = 0;

            var image = AddDummyImageToAlbumArtCache(albumArtCache, 0, albumId);

            var returnedImage       = albumArtCache.GetAlbumArtFromCache(albumId);
            var imageLength         = 0;
            var returnedImageLength = 0;

            using (var memStream = new MemoryStream())
            {
                image.Save(memStream, ImageFormat.Bmp);
                imageLength = memStream.ToArray().Length;
            }

            using (var memStream = new MemoryStream())
            {
                returnedImage.Save(memStream, ImageFormat.Bmp);
                returnedImageLength = memStream.ToArray().Length;
            }

            var imageSizeIsEqual = imageLength == returnedImageLength;

            Assert.True(imageSizeIsEqual, "Image returned from cache was different to image saved to cache");
        }
コード例 #2
0
        public void GetAlbumIdsFromCache()
        {
            var settings = A.Fake <IDukeboxSettings>();

            A.CallTo(() => settings.AlbumArtCachePath).Returns(cachePath);

            var albumArtCache = new AlbumArtCacheService(settings);
            var albumIds      = new List <long> {
                0, 2, 3, 5
            };

            AddDummyImageToAlbumArtCache(albumArtCache, 0, albumIds[0]);
            AddDummyImageToAlbumArtCache(albumArtCache, 0, albumIds[1]);
            AddDummyImageToAlbumArtCache(albumArtCache, 0, albumIds[2]);
            AddDummyImageToAlbumArtCache(albumArtCache, 0, albumIds[3]);

            var idsInCache = albumArtCache.GetAlbumIdsFromCache();

            albumIds.Sort();
            idsInCache.Sort();

            var idsReturnedAreSameToAddedAlbums = idsInCache.SequenceEqual(albumIds);

            Assert.True(idsReturnedAreSameToAddedAlbums, "Album art IDs returned by cache are not equal to those added to the cache");
        }
コード例 #3
0
        private static IAlbumArtCacheService GetAlbumArtCacheServiceInstance(Container container)
        {
            try
            {
                var albumArtCacheService = new AlbumArtCacheService(container.GetInstance <IDukeboxSettings>());
                return(albumArtCacheService);
            }
            catch (Exception ex)
            {
                var errMsg = "Error opening the album art cache";

                logger.Error(errMsg, ex);
                throw new Exception(errMsg, ex);
            }
        }
コード例 #4
0
        public void CheckCacheForAlbumArt()
        {
            var settings = A.Fake <IDukeboxSettings>();

            A.CallTo(() => settings.AlbumArtCachePath).Returns(cachePath);

            var albumArtCache = new AlbumArtCacheService(settings);
            var albumId       = 0;

            AddDummyImageToAlbumArtCache(albumArtCache, 0, albumId);

            var existingAlbumArtFound = albumArtCache.CheckCacheForAlbum(albumId);

            Assert.True(existingAlbumArtFound, "Album art check returned false for album already in cache");

            var nonExistingAlbumArtFound = albumArtCache.CheckCacheForAlbum(-1);

            Assert.False(nonExistingAlbumArtFound, "Album art check returned true for album not in cache");
        }
コード例 #5
0
        public void BuildCachePath()
        {
            var settings = A.Fake <IDukeboxSettings>();

            A.CallTo(() => settings.AlbumArtCachePath).Returns(cachePath);

            Exception buildCachePathException = null;

            try
            {
                var albumArtCache = new AlbumArtCacheService(settings);
            }
            catch (Exception ex)
            {
                ex = buildCachePathException;
            }

            Assert.Null(buildCachePathException);
        }
コード例 #6
0
        public void AddSongToCache()
        {
            var settings = A.Fake <IDukeboxSettings>();

            A.CallTo(() => settings.AlbumArtCachePath).Returns(cachePath);

            var albumArtCache = new AlbumArtCacheService(settings);
            var albumId       = 0;

            AddDummyImageToAlbumArtCache(albumArtCache, 0, albumId);

            var albumArtPath = Path.Combine(cachePath, albumId.ToString());
            var albumAdded   = File.Exists(albumArtPath);

            Assert.True(albumAdded, "Album art was not successfully added to the cache");

            var albumArtFileInfo = new FileInfo(albumArtPath);
            var albumArtValid    = albumArtFileInfo.Length > 0;

            Assert.True(albumAdded, "Album art image added to cache was empty");
        }