예제 #1
0
        public async Task DescriptionTooShort()
        {
            var db   = DbHelper.GetEmptyTestDB();
            var user = await UserHelper.CreateInDbAsync(db);

            using var dbContext = new MemCheckDbContext(db);
            var request = new StoreImage.Request(user, RandomHelper.String(), RandomHelper.String(QueryValidationHelper.ImageMinDescriptionLength - 1), RandomHelper.String(), StoreImage.pngImageContentType, pngImage);
            await Assert.ThrowsExceptionAsync <RequestInputException>(async() => await new StoreImage(dbContext.AsCallContext()).RunAsync(request));
        }
예제 #2
0
        public async Task NameNotTrimmed()
        {
            var db   = DbHelper.GetEmptyTestDB();
            var user = await UserHelper.CreateInDbAsync(db);

            using var dbContext = new MemCheckDbContext(db);
            var request = new StoreImage.Request(user, "   " + RandomHelper.String(), RandomHelper.String(), RandomHelper.String(), StoreImage.pngImageContentType, pngImage);
            await Assert.ThrowsExceptionAsync <InvalidOperationException>(async() => await new StoreImage(dbContext.AsCallContext()).RunAsync(request));
        }
예제 #3
0
        public async Task BlobTooLong()
        {
            var db   = DbHelper.GetEmptyTestDB();
            var user = await UserHelper.CreateInDbAsync(db);

            using var dbContext = new MemCheckDbContext(db);
            var request = new StoreImage.Request(user, RandomHelper.String(), RandomHelper.String(), RandomHelper.String(), StoreImage.pngImageContentType, RandomHelper.Bytes(StoreImage.Request.maxBlobLength + 1));
            await Assert.ThrowsExceptionAsync <RequestInputException>(async() => await new StoreImage(dbContext.AsCallContext()).RunAsync(request));
        }
예제 #4
0
        public async Task ImageTypeMismatch()
        {
            var db   = DbHelper.GetEmptyTestDB();
            var user = await UserHelper.CreateInDbAsync(db);

            using var dbContext = new MemCheckDbContext(db);
            var request = new StoreImage.Request(user, RandomHelper.String(), RandomHelper.String(), RandomHelper.String(), StoreImage.svgImageContentType, pngImage);
            await Assert.ThrowsExceptionAsync <RequestInputException>(async() => await new StoreImage(dbContext.AsCallContext()).RunAsync(request));
        }
예제 #5
0
        public async Task SuccessWithOtherOneExisting()
        {
            var db   = DbHelper.GetEmptyTestDB();
            var user = await UserHelper.CreateInDbAsync(db);

            await ImageHelper.CreateAsync(db, user);

            var name = RandomHelper.String();

            using (var dbContext = new MemCheckDbContext(db))
            {
                var request = new StoreImage.Request(user, name, RandomHelper.String(), RandomHelper.String(), StoreImage.pngImageContentType, pngImage);
                await new StoreImage(dbContext.AsCallContext()).RunAsync(request);
            }

            using (var dbContext = new MemCheckDbContext(db))
                Assert.IsTrue(dbContext.Images.Any(img => img.Owner.Id == user));
        }
예제 #6
0
        public async Task Success()
        {
            var db   = DbHelper.GetEmptyTestDB();
            var user = await UserHelper.CreateInDbAsync(db);

            var name        = RandomHelper.String();
            var description = RandomHelper.String();
            var source      = RandomHelper.String();
            var uploadDate  = RandomHelper.Date();
            var versionDesc = RandomHelper.String();

            using (var dbContext = new MemCheckDbContext(db))
            {
                var request   = new StoreImage.Request(user, name, description, source, StoreImage.pngImageContentType, pngImage);
                var localizer = new TestLocalizer(new KeyValuePair <string, string>("InitialImageVersionCreation", versionDesc).AsArray());
                await new StoreImage(dbContext.AsCallContext(localizer), uploadDate).RunAsync(request);
            }

            using (var dbContext = new MemCheckDbContext(db))
            {
                var image = await dbContext.Images.Include(img => img.Owner).Include(img => img.Cards).SingleAsync();

                Assert.AreEqual(user, image.Owner.Id);
                Assert.AreEqual(name, image.Name);
                Assert.AreEqual(description, image.Description);
                Assert.AreEqual(source, image.Source);
                Assert.AreEqual(uploadDate, image.InitialUploadUtcDate);
                Assert.AreEqual(uploadDate, image.LastChangeUtcDate);
                Assert.AreEqual(versionDesc, image.VersionDescription);
                Assert.AreEqual(ImageVersionType.Creation, image.VersionType);
                Assert.AreEqual(StoreImage.pngImageContentType, image.OriginalContentType);
                Assert.AreEqual(pngImage.Length, image.OriginalSize);
                Assert.IsTrue(pngImage.SequenceEqual(image.OriginalBlob));
                Assert.IsTrue(image.SmallBlobSize > 0);
                Assert.AreEqual(image.SmallBlobSize, image.SmallBlob.Length);
                Assert.IsTrue(image.MediumBlobSize > 0);
                Assert.AreEqual(image.MediumBlobSize, image.MediumBlob.Length);
                Assert.IsTrue(image.BigBlobSize > 0);
                Assert.AreEqual(image.BigBlobSize, image.BigBlob.Length);
                Assert.IsFalse(image.Cards.Any());
                Assert.IsNull(image.PreviousVersion);
            }
        }