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)); }
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)); }
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)); }
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)); }
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)); }
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); } }