Beispiel #1
0
        public void GetFileWithEmptyVirtualPath()
        {
            // Arrange
            var settings = this.Settings;
            IVirtualImageProvider target = new MongoReaderPlugin(settings);

            // Act
            var actual = target.GetFile(string.Empty, null);

            // Assert
            Assert.Null(actual);
        }
Beispiel #2
0
        public void NameValueConstructor()
        {
            // Arrange
            var settings = this.Settings;

            // Act
            IVirtualImageProvider target = new MongoReaderPlugin(settings);

            // Assert
            Assert.NotNull(target);
            Assert.IsType <MongoReaderPlugin>(target);
        }
Beispiel #3
0
        public void GetFileWithNullVirtualPath()
        {
            // Arrange
            var settings = this.Settings;
            IVirtualImageProvider target = new MongoReaderPlugin(settings);

            // Act
            var actual = Assert.Throws <NullReferenceException>(() => target.GetFile(null, null));

            // Assert
            Assert.NotNull(actual);
            Assert.IsType <NullReferenceException>(actual);
        }
Beispiel #4
0
        public void FileExistsWithEmptyVirtualPath()
        {
            // Arrange
            bool expected = false;
            var  settings = this.Settings;
            IVirtualImageProvider target = new MongoReaderPlugin(settings);

            // Act
            var actual = target.FileExists(string.Empty, null);

            // Assert
            Assert.Equal <bool>(expected, actual);
        }
Beispiel #5
0
        public void GetFileWithoutVirtualPathPrefix()
        {
            // Arrange
            var    settings              = this.Settings;
            string virtualPath           = dummyDatabaseRecordId.ToString("B");
            IVirtualImageProvider target = new MongoReaderPlugin(settings);

            // Act
            var actual = target.GetFile(virtualPath, null);

            // Assert
            Assert.Null(actual);
        }
Beispiel #6
0
        public void NameValueConstructorNoTrailingSlashPrefix()
        {
            // Arrange
            var settings = this.Settings;

            settings["prefix"] = settings["prefix"].Substring(0, settings["prefix"].Length - 1);

            // Act
            IVirtualImageProvider target = new MongoReaderPlugin(settings);

            // Assert
            Assert.NotNull(target);
            Assert.IsType <MongoReaderPlugin>(target);
        }
Beispiel #7
0
        public void FileExistFileNotExisting()
        {
            // Arrange
            bool   expected              = true;
            var    settings              = this.Settings;
            string virtualPath           = Path.Combine(settings["prefix"], dummyDatabaseRecordId.ToString("B"));
            IVirtualImageProvider target = new MongoReaderPlugin(settings);

            // Act
            bool actual = target.FileExists(virtualPath, new NameValueCollection());

            // Assert
            Assert.Equal <bool>(expected, actual);
        }
Beispiel #8
0
        public void FileExistsWithoutVirtualPath()
        {
            // Arrange
            bool   expected              = false;
            var    settings              = this.Settings;
            string virtualPath           = dummyDatabaseRecordId.ToString("B");
            IVirtualImageProvider target = new MongoReaderPlugin(settings);

            // Act
            bool actual = target.FileExists(virtualPath, null);

            // Assert
            Assert.Equal <bool>(expected, actual);
        }
Beispiel #9
0
        public void GetFileInvalid()
        {
            // Arrange
            var    settings              = this.Settings;
            string virtualPath           = Path.Combine(settings["prefix"], dummyDatabaseRecordId.ToString("B"));
            IVirtualImageProvider target = new MongoReaderPlugin(settings);

            // Act
            var actual = target.GetFile(virtualPath, new NameValueCollection());

            // Assert
            Assert.NotNull(actual);
            Assert.IsAssignableFrom <IVirtualFile>(actual);
            Assert.Equal <string>(virtualPath, actual.VirtualPath);
        }
Beispiel #10
0
        public void FileExistsFileExisting()
        {
            // Arrange
            string id                    = this.CreateFileInDatabase();
            bool   expected              = true;
            var    settings              = this.Settings;
            string virtualPath           = Path.Combine(settings["prefix"], id);
            IVirtualImageProvider target = new MongoReaderPlugin(settings);

            // Act
            bool actual = target.FileExists(virtualPath, new NameValueCollection());

            // Assert
            Assert.Equal <bool>(expected, actual);
        }
Beispiel #11
0
        public void OpenInvalidIdWithIdPrefix()
        {
            // Arrange
            var    settings              = this.Settings;
            string virtualPath           = Path.Combine(settings["prefix"], "id/" + dummyDatabaseRecordId.ToString("N").Substring(0, 24) + ".jpg");
            IVirtualImageProvider reader = new MongoReaderPlugin(settings);

            var queryString = new NameValueCollection();
            var target      = reader.GetFile(virtualPath, queryString);

            // Act
            var actual = Assert.Throws <FileNotFoundException>(() => target.Open());

            // Assert
            Assert.NotNull(actual);
            Assert.IsType <FileNotFoundException>(actual);
        }
Beispiel #12
0
        public void GetFileValid()
        {
            // Arrange
            string id                    = this.CreateFileInDatabase();
            var    settings              = this.Settings;
            string virtualPath           = Path.Combine(settings["prefix"], id);
            IVirtualImageProvider target = new MongoReaderPlugin(settings);
            var queryString              = new NameValueCollection();

            // Act
            var actual = target.GetFile(virtualPath, queryString);

            // Assert
            Assert.NotNull(actual);
            Assert.IsAssignableFrom <IVirtualFile>(actual);
            Assert.Equal <string>(virtualPath, actual.VirtualPath);
        }
Beispiel #13
0
        /// <summary>
        /// Store an image in the database
        /// </summary>
        /// <param name="data">The bytes of the image.</param>
        /// <param name="fileName">The full name of the file.</param>
        /// <returns>The id of the record created.</returns>
        private string StoreFile(MemoryStream data, string fileName)
        {
            data.Seek(0, SeekOrigin.Begin);
            MongoGridFS         g = new MongoReaderPlugin(this.Settings).GridFS;
            MongoGridFSFileInfo fi;

            // Resize to a memory stream, max 2000x2000 jpeg
            using (MemoryStream temp = new MemoryStream(4096)) {
                new ImageJob(data, temp, new Instructions("width=2000;height=2000;mode=max;format=jpg")).Build();

                // Reset the streams
                temp.Seek(0, SeekOrigin.Begin);

                MongoGridFSCreateOptions opts = new MongoGridFSCreateOptions();
                opts.ContentType = "image/jpeg";

                fi = g.Upload(temp, Path.GetFileName(fileName), opts);
            }

            return("id/" + fi.Id.AsObjectId.ToString() + ".jpg");
        }
Beispiel #14
0
        public void ValueConstructor()
        {
            // Arrange
            var settings = this.Settings;
            var mongoUrl = new MongoUrl(settings["connectionString"]);

            // Using new client, server database initialization. Wordy but recommended.
            var mongoClient  = new MongoClient(mongoUrl);
            var mongoServer  = mongoClient.GetServer();
            var db           = mongoServer.GetDatabase(mongoUrl.DatabaseName);
            var gridSettings = new MongoGridFSSettings();

            // Act
            IVirtualImageProvider target = new MongoReaderPlugin(
                settings["prefix"],
                db,
                gridSettings);

            // Assert
            Assert.NotNull(target);
            Assert.IsType <MongoReaderPlugin>(target);
        }
Beispiel #15
0
        public void OpenValidId()
        {
            // Arrange
            string id                    = this.CreateFileInDatabase();
            var    settings              = this.Settings;
            string virtualPath           = Path.Combine(settings["prefix"], id);
            IVirtualImageProvider reader = new MongoReaderPlugin(settings);

            var queryString = new NameValueCollection();

            queryString.Add("width", "2000");
            queryString.Add("height", "2000");
            queryString.Add("mode", "max");
            queryString.Add("format", "jpg");
            var target = reader.GetFile(virtualPath, queryString);

            // Act
            var actual = target.Open();

            // Assert
            Assert.NotNull(actual);
            Assert.IsAssignableFrom <Stream>(actual);
            Assert.Equal <string>(virtualPath, target.VirtualPath);
        }