Beispiel #1
0
        public async Task 正常系_記事_作成と更新()
        {
            var draft = Draft.NewDraft(LogonUser, ItemType.Article);

            draft.Title = "title 正常系_記事_作成と更新";
            draft.Body  = "body 正常系_記事_作成と更新";
            draft.ItemTags.Add(new ItemTag("tag1", "1.0.0"));
            draft.ItemTags.Add(new ItemTag("tag2", "1.0.0"));

            await DraftDbCommand.SaveAsync(draft);

            var created = await DraftDbCommand.FindAsync(draft.Id, LogonUser);

            created.IsStructuralEqual(draft);

            created.Title = "title 正常系_記事_作成と更新 変更";
            created.Body  = "body 正常系_記事_作成と更新 変更";
            created.LastModifiedDateTime = DateTime.Now;
            created.ItemTags.Clear();
            created.ItemTags.Add(new ItemTag("tag2", null));
            created.ItemTags.Add(new ItemTag("tag3", "3.0.0"));

            await DraftDbCommand.SaveAsync(created);

            var updated = await DraftDbCommand.FindAsync(created.Id, LogonUser);

            updated.IsStructuralEqual(created);
            updated.IsNotStructuralEqual(draft);
        }
Beispiel #2
0
        public async Task 正常系_記事_作成とIDでの取得_タグなし()
        {
            var draft = Draft.NewDraft(LogonUser, ItemType.Article);

            draft.Title = @"正常系_記事_作成とIDでの取得_タグなし";
            draft.Body  = "body";

            await DraftDbCommand.SaveAsync(draft);

            var created = await DraftDbCommand.FindAsync(draft.Id, LogonUser);

            created.IsStructuralEqual(draft);
        }
Beispiel #3
0
        public async Task 正常系_記事_作成とIDでの取得_タグ一つ()
        {
            var draft = Draft.NewDraft(LogonUser, ItemType.Article);

            draft.Title = @"正常系_記事_作成とIDでの取得_タグ一つ";
            draft.Body  = "body";

            draft.ItemTags.Add(new ItemTag("tag1", "1.0.0"));

            await DraftDbCommand.SaveAsync(draft);

            var created = await DraftDbCommand.FindAsync(draft.Id, LogonUser);

            created.IsStructuralEqual(draft);
        }
Beispiel #4
0
        public async Task 正常系_記事_作成とIDでの取得_複数タグ()
        {
            var draft = Draft.NewDraft(LogonUser, ItemType.Article);

            draft.Title = @"正常系_記事_作成とIDでの取得_複数タグ";
            draft.Body  = "body";

            draft.Tags.Add(new Tag("tag1", "1.0.0"));
            draft.Tags.Add(new Tag("tag2", null));
            draft.Tags.Add(new Tag("tag5", null));
            draft.Tags.Add(new Tag("tag4", "2012"));

            await DraftDbCommand.SaveAsync(draft);

            var created = await DraftDbCommand.FindAsync(draft.Id);

            created.IsStructuralEqual(draft);
        }
Beispiel #5
0
        public async Task 正常系_記事_作者での抽出()
        {
            var author = new User(@"TestDomain\GetByAuthorTest")
            {
                Name = "GetByAuthorTest", DisplayName = "GetByAuthorTest"
            };
            await UserDbCommand.SaveAsync(author);

            await DraftDbCommand.DeleteByUserAsync(author);

            var draft1 = Draft.NewDraft(author, ItemType.Article);

            draft1.Title = "title1";
            draft1.LastModifiedDateTime = new DateTime(2015, 1, 1);

            var draft2 = Draft.NewDraft(author, ItemType.Article);

            draft2.Title = "title2";
            draft2.LastModifiedDateTime = new DateTime(2015, 2, 1);

            var draft3 = Draft.NewDraft(author, ItemType.Article);

            draft3.Title = "title3";
            draft3.LastModifiedDateTime = new DateTime(2015, 3, 1);

            var draft4 = Draft.NewDraft(author, ItemType.Article);

            draft4.Title = "title4";
            draft4.LastModifiedDateTime = new DateTime(2015, 4, 1);

            await DraftDbCommand.SaveAsync(draft1);

            await DraftDbCommand.SaveAsync(draft2);

            await DraftDbCommand.SaveAsync(draft3);

            await DraftDbCommand.SaveAsync(draft4);

            var registered = await DraftDbCommand.GetByUserAsync(author);

            registered.IsStructuralEqual(new[] { draft4, draft3, draft2, draft1 });
        }
Beispiel #6
0
        public async Task 正常系_記事_作成と削除()
        {
            var draft1 = Draft.NewDraft(LogonUser, ItemType.Article);

            draft1.Title = "title 正常系_記事_作成と削除 削除対象";
            draft1.Body  = "body 正常系_記事_作成と削除 削除対象";
            draft1.ItemTags.Add(new ItemTag("tag1", "1.0.0"));
            draft1.ItemTags.Add(new ItemTag("tag2", null));

            var draft2 = Draft.NewDraft(LogonUser, ItemType.Article);

            draft2.Title = "title 正常系_記事_作成と削除 削除しない";
            draft2.Body  = "title 正常系_記事_作成と削除 削除しない";
            draft2.ItemTags.Add(new ItemTag("tag3", "1.0.0"));
            draft2.ItemTags.Add(new ItemTag("tag4", null));

            await DraftDbCommand.SaveAsync(draft1);

            await DraftDbCommand.SaveAsync(draft2);

            var created1 = await DraftDbCommand.FindAsync(draft1.Id, LogonUser);

            created1.IsStructuralEqual(draft1);
            var created2 = await DraftDbCommand.FindAsync(draft2.Id, LogonUser);

            created2.IsStructuralEqual(draft2);

            await DraftDbCommand.DeleteAsync(created1.Id, LogonUser);

            var deleted = await DraftDbCommand.FindAsync(draft1.Id, LogonUser);

            deleted.IsNull();

            var undeleted = await DraftDbCommand.FindAsync(draft2.Id, LogonUser);

            undeleted.IsNotNull();
            undeleted.IsStructuralEqual(draft2);
        }
Beispiel #7
0
        public async Task 正常系_公開記事_作成と修正()
        {
            var draft = Draft.NewDraft(LogonUser, ItemType.Article);

            draft.Title = "title 正常系_作成と修正";
            draft.Body  = "body 正常系_作成と修正";
            draft.Tags.Add(new Tag("tag1", "1.0.0"));
            draft.Tags.Add(new Tag("tag2", null));

            await DraftDbCommand.SaveAsync(draft);

            var savedDraft = await DraftDbCommand.FindAsync(draft.Id);

            savedDraft.CurrentRevisionNo.Is(-1);

            savedDraft.Title = "title 正常系_作成と修正 公開";
            savedDraft.Body  = "body 正常系_作成と修正 公開";

            var item = savedDraft.ToItem(true);

            item.RevisionNo.Is(0);

            await ItemDbCommand.SaveAsync(item);

            var savedItem = await ItemDbCommand.FindAsync(item.Id);

            savedItem.IsStructuralEqual(item);
            Assert.AreEqual(savedDraft.Id, savedItem.Id);
            Assert.AreEqual(savedDraft.Title, savedItem.Title);
            Assert.AreEqual(savedDraft.Body, savedItem.Body);
            savedItem.Author.IsStructuralEqual(savedDraft.Author);
            savedItem.RevisionNo.Is(0);
            savedItem.RevisionCount.Is(1);

            var updateDraft = item.ToDraft();

            updateDraft.CurrentRevisionNo.Is(0);

            updateDraft.Title   = "title 正常系_作成と修正 公開 修正";
            updateDraft.Body    = "body 正常系_作成と修正 公開 修正";
            updateDraft.Comment = "変更";

            await DraftDbCommand.SaveAsync(updateDraft);

            var updatedDraft = await DraftDbCommand.FindAsync(updateDraft.Id);

            updatedDraft.IsStructuralEqual(updateDraft);
            updatedDraft.CurrentRevisionNo.Is(0);
            updatedDraft.Title.Is(updateDraft.Title);
            updatedDraft.Tags.IsStructuralEqual(updateDraft.Tags);
            updatedDraft.Body.Is(updateDraft.Body);
            updatedDraft.Comment.Is(updateDraft.Comment);
            updatedDraft.Author.IsStructuralEqual(updateDraft.Author);

            var updateItem = updatedDraft.ToItem();

            updateItem.RevisionNo.Is(1);

            await ItemDbCommand.SaveAsync(updateItem);

            var updatedItem = await ItemDbCommand.FindAsync(updateItem.Id);

            updatedItem.IsStructuralEqual(updateItem);
            Assert.AreEqual(updatedDraft.Id, updatedItem.Id);
            Assert.AreEqual(updatedDraft.Title, updatedItem.Title);
            Assert.AreEqual(updatedDraft.Body, updatedItem.Body);
            updatedItem.Author.IsStructuralEqual(updatedDraft.Author);
            updatedItem.RevisionNo.Is(1);
            updatedItem.RevisionCount.Is(2);
        }
        public async Task 正常系_他の人が編集中の下書きを別の人が呼び出して記事を更新()
        {
            var draft = Draft.NewDraft(_author, ItemType.Article);

            draft.Title = "共同編集テスト_他の人が編集中の下書きを別の人が呼び出して記事を更新";
            draft.Body  = "共同編集テスト_他の人が編集中の下書きを別の人が呼び出して記事を更新";

            var item = draft.ToItem(true);
            await ItemDbCommand.SaveAsync(item);

            var collaborator1 = new Collaborator(_collaborator1)
            {
                Role = RoleType.Owner
            };
            var collaborator2 = new Collaborator(_collaborator2)
            {
                Role = RoleType.Member
            };
            var collaborator3 = new Collaborator(_collaborator3)
            {
                Role = RoleType.Member
            };
            var collaborators = new[] { collaborator1, collaborator2, collaborator3 };
            await ItemDbCommand.SaveCollaboratorsAsync(item, collaborators);

            var collaborator1Draft = item.ToDraft(_collaborator1);

            collaborator1Draft.Title = "共同編集テスト_共同編集者①が記事を編集中";
            collaborator1Draft.Body  = "共同編集テスト_共同編集者①が記事を編集中";

            await DraftDbCommand.SaveAsync(collaborator1Draft);

            // 共同編集者②が下書きを呼び出して下書きを更新
            var collaborator2Draft = await DraftDbCommand.FindAsync(item.Id, _collaborator2);

            collaborator2Draft.IsNull();
            collaborator2Draft       = item.ToDraft(_collaborator2);
            collaborator2Draft.Title = "共同編集テスト_共同編集者②が記事を編集中";
            collaborator2Draft.Body  = "共同編集テスト_共同編集者②が記事を編集中";

            await DraftDbCommand.SaveAsync(collaborator2Draft);

            var savedCollaborator2Draft = await DraftDbCommand.FindAsync(item.Id, _collaborator2);

            savedCollaborator2Draft.IsStructuralEqual(collaborator2Draft);

            // 共同編集者③が下書きを呼び出して下書きを更新
            var collaborator3Draft = await DraftDbCommand.FindAsync(item.Id, _collaborator3);

            collaborator3Draft.IsNull();

            collaborator3Draft       = item.ToDraft(_collaborator3);
            collaborator3Draft.Title = "共同編集テスト_共同編集者③が記事を編集";
            collaborator3Draft.Body  = "共同編集テスト_共同編集者③が記事を編集";

            var collaborator3Item = collaborator3Draft.ToItem();

            await ItemDbCommand.SaveAsync(collaborator3Item);

            var savedCollaborator3Item = await ItemDbCommand.FindAsync(item.Id);

            savedCollaborator3Item.Author.Is(_author);
            savedCollaborator3Item.Editor.Is(_collaborator3);
            savedCollaborator3Item.IsStructuralEqual(collaborator3Item);
        }