public async Task TagsDiff() { var db = DbHelper.GetEmptyTestDB(); var userName = RandomHelper.String(); var userId = await UserHelper.CreateInDbAsync(db, userName : userName); var originalVersionDate = RandomHelper.Date(); var originalVersionDescription = RandomHelper.String(); var originalTagName1 = RandomHelper.String(); var originalTagId1 = await TagHelper.CreateAsync(db, originalTagName1); var originalTagName2 = RandomHelper.String(); var originalTagId2 = await TagHelper.CreateAsync(db, originalTagName2); var language = await CardLanguagHelper.CreateAsync(db); var card = await CardHelper.CreateAsync(db, userId, originalVersionDate, tagIds : new[] { originalTagId1, originalTagId2 }, language : language, versionDescription : originalVersionDescription); var newVersionDate = RandomHelper.Date(originalVersionDate); var newVersionDescription = RandomHelper.String(); using (var dbContext = new MemCheckDbContext(db)) await new UpdateCard(dbContext.AsCallContext(), newVersionDate).RunAsync(UpdateCardHelper.RequestForTagChange(card, originalTagId1.AsArray(), versionDescription: newVersionDescription)); Guid previousVersionId; using (var dbContext = new MemCheckDbContext(db)) previousVersionId = (await dbContext.CardPreviousVersions.Where(previous => previous.Card == card.Id).SingleAsync()).Id; using (var dbContext = new MemCheckDbContext(db)) { var diffRequest = new GetCardDiff.Request(userId, card.Id, previousVersionId); var result = await new GetCardDiff(dbContext.AsCallContext()).RunAsync(diffRequest); Assert.AreEqual(userName, result.CurrentVersionCreator); Assert.AreEqual(userName, result.OriginalVersionCreator); Assert.AreEqual(newVersionDate, result.CurrentVersionUtcDate); Assert.AreEqual(originalVersionDate, result.OriginalVersionUtcDate); Assert.AreEqual(newVersionDescription, result.CurrentVersionDescription); Assert.AreEqual(originalVersionDescription, result.OriginalVersionDescription); var expectedTagDiffString = string.Join(",", new[] { originalTagName1, originalTagName2 }.OrderBy(s => s)); Assert.AreEqual(new(originalTagName1, expectedTagDiffString), result.Tags); Assert.IsNull(result.FrontSide); Assert.IsNull(result.BackSide); Assert.IsNull(result.Language); Assert.IsNull(result.AdditionalInfo); Assert.IsNull(result.UsersWithView); Assert.IsNull(result.ImagesOnFrontSide); Assert.IsNull(result.ImagesOnBackSide); Assert.IsNull(result.ImagesOnAdditionalSide); } }
public async Task AdditionalSideImageDiff() { var db = DbHelper.GetEmptyTestDB(); var userName = RandomHelper.String(); var userId = await UserHelper.CreateInDbAsync(db, userName : userName); var originalVersionDate = RandomHelper.Date(); var originalVersionDescription = RandomHelper.String(); var language = await CardLanguagHelper.CreateAsync(db); var originalVersionImageName = RandomHelper.String(); var originalVersionImage = await ImageHelper.CreateAsync(db, userId, originalVersionImageName); var card = await CardHelper.CreateAsync(db, userId, originalVersionDate, language : language, additionalSideImages : originalVersionImage.AsArray(), versionDescription : originalVersionDescription); var newVersionDate = RandomHelper.Date(originalVersionDate); var newVersionDescription = RandomHelper.String(); var newVersionImageName = RandomHelper.String(); var newVersionImage = await ImageHelper.CreateAsync(db, userId, newVersionImageName); using (var dbContext = new MemCheckDbContext(db)) await new UpdateCard(dbContext.AsCallContext(), newVersionDate).RunAsync(UpdateCardHelper.RequestForAdditionalSideImageChange(card, newVersionImage.AsArray(), versionDescription: newVersionDescription)); Guid previousVersionId; using (var dbContext = new MemCheckDbContext(db)) previousVersionId = (await dbContext.CardPreviousVersions.Where(previous => previous.Card == card.Id).SingleAsync()).Id; using (var dbContext = new MemCheckDbContext(db)) { var diffRequest = new GetCardDiff.Request(userId, card.Id, previousVersionId); var result = await new GetCardDiff(dbContext.AsCallContext()).RunAsync(diffRequest); Assert.AreEqual(userName, result.CurrentVersionCreator); Assert.AreEqual(userName, result.OriginalVersionCreator); Assert.AreEqual(newVersionDate, result.CurrentVersionUtcDate); Assert.AreEqual(originalVersionDate, result.OriginalVersionUtcDate); Assert.AreEqual(newVersionDescription, result.CurrentVersionDescription); Assert.AreEqual(originalVersionDescription, result.OriginalVersionDescription); Assert.AreEqual(new(newVersionImageName, originalVersionImageName), result.ImagesOnAdditionalSide); Assert.IsNull(result.FrontSide); Assert.IsNull(result.BackSide); Assert.IsNull(result.Language); Assert.IsNull(result.AdditionalInfo); Assert.IsNull(result.Tags); Assert.IsNull(result.UsersWithView); Assert.IsNull(result.ImagesOnFrontSide); Assert.IsNull(result.ImagesOnBackSide); } }
public async Task MultipleVersions() { var db = DbHelper.GetEmptyTestDB(); var userId = await UserHelper.CreateInDbAsync(db); var initialVersionDate = RandomHelper.Date(); var intialVersionDescription = RandomHelper.String(); var language = await CardLanguagHelper.CreateAsync(db); var initialFrontSide = RandomHelper.String(); var card = await CardHelper.CreateAsync(db, userId, initialVersionDate, language : language, frontSide : initialFrontSide, versionDescription : intialVersionDescription); var intermediaryVersionDescription = RandomHelper.String(); var intermediaryVersionDate = RandomHelper.Date(initialVersionDate); var intermediaryFrontSide = RandomHelper.String(); using (var dbContext = new MemCheckDbContext(db)) await new UpdateCard(dbContext.AsCallContext(), intermediaryVersionDate).RunAsync(UpdateCardHelper.RequestForFrontSideChange(card, intermediaryFrontSide, versionDescription: intermediaryVersionDescription)); Guid initialVersionId; using (var dbContext = new MemCheckDbContext(db)) initialVersionId = (await dbContext.CardPreviousVersions.SingleAsync()).Id; var currentVersionDescription = RandomHelper.String(); var currentVersionDate = RandomHelper.Date(initialVersionDate); using (var dbContext = new MemCheckDbContext(db)) await new UpdateCard(dbContext.AsCallContext(), currentVersionDate).RunAsync(UpdateCardHelper.RequestForFrontSideChange(card, initialFrontSide, versionDescription: currentVersionDescription)); Guid intermediaryVersionId; using (var dbContext = new MemCheckDbContext(db)) intermediaryVersionId = (await dbContext.CardPreviousVersions.SingleAsync(c => c.Id != initialVersionId)).Id; using (var dbContext = new MemCheckDbContext(db)) { var diffRequest = new GetCardDiff.Request(userId, card.Id, intermediaryVersionId); var result = await new GetCardDiff(dbContext.AsCallContext()).RunAsync(diffRequest); Assert.AreEqual(currentVersionDate, result.CurrentVersionUtcDate); Assert.AreEqual(intermediaryVersionDate, result.OriginalVersionUtcDate); Assert.AreEqual(currentVersionDescription, result.CurrentVersionDescription); Assert.AreEqual(intermediaryVersionDescription, result.OriginalVersionDescription); Assert.AreEqual(new(initialFrontSide, intermediaryFrontSide), result.FrontSide); Assert.IsNull(result.Language); Assert.IsNull(result.BackSide); Assert.IsNull(result.Tags); Assert.IsNull(result.AdditionalInfo); Assert.IsNull(result.UsersWithView); Assert.IsNull(result.ImagesOnFrontSide); Assert.IsNull(result.ImagesOnBackSide); Assert.IsNull(result.ImagesOnAdditionalSide); } using (var dbContext = new MemCheckDbContext(db)) { var diffRequest = new GetCardDiff.Request(userId, card.Id, initialVersionId); var result = await new GetCardDiff(dbContext.AsCallContext()).RunAsync(diffRequest); Assert.AreEqual(currentVersionDate, result.CurrentVersionUtcDate); Assert.AreEqual(initialVersionDate, result.OriginalVersionUtcDate); Assert.AreEqual(currentVersionDescription, result.CurrentVersionDescription); Assert.AreEqual(intialVersionDescription, result.OriginalVersionDescription); Assert.IsNull(result.Language); Assert.IsNull(result.FrontSide); Assert.IsNull(result.BackSide); Assert.IsNull(result.Tags); Assert.IsNull(result.AdditionalInfo); Assert.IsNull(result.UsersWithView); Assert.IsNull(result.ImagesOnFrontSide); Assert.IsNull(result.ImagesOnBackSide); Assert.IsNull(result.ImagesOnAdditionalSide); } }