示例#1
0
        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);
            }
        }
示例#2
0
        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);
            }
        }
示例#3
0
        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);
            }
        }