public async Task GetExtensionFromMimeType()
        {
            var downloader = new MimeTyper();
            var ext        = await downloader.GetExtensionFromMimeType("image/jpeg");

            Assert.Equal("jpeg", ext);
        }
        public async Task FileStorageGetMimeTypeFromCommonExtension()
        {
            var downloader = new MimeTyper(true, MimeTyperLoadMode.File);
            var ext        = await downloader.GetMimeTypeFromExtension("logo-finaleaaa.docx");

            Assert.Equal("application/vnd.openxmlformats-officedocument.wordprocessingml.document", ext);
        }
        public async Task FileStorageGetMimeTypeFromExtension()
        {
            var downloader = new MimeTyper(true, MimeTyperLoadMode.File);
            var ext        = await downloader.GetMimeTypeFromExtension("logo-finaleaaa.svg");

            Assert.Equal("image/svg+xml", ext);
        }
        public async Task FileStorageGetExtensionFromMimeType()
        {
            var downloader = new MimeTyper(true, MimeTyperLoadMode.File);
            var ext        = await downloader.GetExtensionFromMimeType("image/jpeg");

            Assert.Equal("jpeg", ext);
        }
        public async Task GetMimeTypeFromExtension()
        {
            var downloader = new MimeTyper();
            var ext        = await downloader.GetMimeTypeFromExtension("logo-finaleaaa.svg");

            Assert.Equal("image/svg+xml", ext);
        }
        public async Task FileStorageGetCustomExtensionFromMimeType()
        {
            var downloader = new MimeTyper(true, MimeTyperLoadMode.File);
            await downloader.AddCustomMimeType(new MimeTyperItem { Extension = "purple", MimeType = "application/purplesoft-io" });

            var ext = await downloader.GetExtensionFromMimeType("application/purplesoft-io");

            Assert.Equal("purple", ext);
        }
        public async Task GetMimeTypeFromCustomExtension()
        {
            var downloader = new MimeTyper();
            await downloader.AddCustomMimeType(new MimeTyperItem { Extension = "purple", MimeType = "application/purplesoft-io" });

            var ext = await downloader.GetMimeTypeFromExtension("logo-finaleaaa.purple");

            Assert.Equal("application/purplesoft-io", ext);
        }
        public void GetMimeType_ValidMimeType_MimeType()
        {
            //Arrange
            var extension = ".htm";

            //Act
            var mimeTyper = new MimeTyper();
            var mimeType = mimeTyper.GetMimeType(extension);

            //Assert
            Assert.AreEqual("text/html", mimeType);
        }
        public void GetMimeType_UnknownMimeType_ApplicationOctetstream()
        {
            //Arrange
            var extension = ".unknown";

            //Act
            var mimeTyper = new MimeTyper();
            var mimeType = mimeTyper.GetMimeType(extension);

            //Assert
            Assert.AreEqual("application/octetstream", mimeType);
        }
        public void GetMimeType_CachedValidMimeType_MimeType()
        {
            //Arrange
            var extension = ".html"; //Make sure that no other unit tests lookup this extension

            //Act
            var mimeTyper = new MimeTyper();
            mimeTyper.GetMimeType(extension); //Call it twice to insure that it has been cached
            var mimeType = mimeTyper.GetMimeType(extension);

            //Assert
            Assert.AreEqual("text/html", mimeType);
        }