private async Task CreateHomepage() { // Create a homepage with text through repositories as it's simpler string createdBy = "editor"; DateTime createdOn = DateTime.Today; PageRepository repository = CreatePageRepository(); Page page = _fixture.Create <Page>(); page.Id = -1; // should be reset page.CreatedBy = createdBy; page.CreatedOn = createdOn; page.LastModifiedBy = createdBy; page.LastModifiedOn = createdOn; page.Tags = "homepage"; Page newPage = await repository.AddNewPageAsync(page); _outputHelper.WriteLine($"Created homepage - id: {page.Id}"); PageVersionRepository pageRepository = CreatePageVersionRepository(); PageVersion pageVersion = await pageRepository.AddNewVersionAsync(newPage.Id, "## This is some markdown\nAnd some **bold** text", "editor"); _outputHelper.WriteLine($"Created homepage version - id: {pageVersion.Id}"); }
public async void AllVersions() { // given PageVersionRepository repository = CreateRepository(); List <PageVersion> pages = CreateTenPages(repository); // when IEnumerable <PageVersion> allVersions = await repository.AllVersionsAsync(); // then allVersions.Count().ShouldBe(pages.Count); allVersions.Last().Text.ShouldNotBeEmpty(); }
public async Task GetById() { // given PageVersionRepository repository = CreateRepository(); List <PageVersion> pageVersions = CreateTenPages(repository); PageVersion pageVersion = pageVersions[0]; // when PageVersion latestVersion = await repository.GetByIdAsync(pageVersion.Id); // then Assert.NotNull(latestVersion); latestVersion.ShouldNotBeNull(); latestVersion.ShouldBeEquivalent(pageVersion); }
public async Task GetLatestVersions() { // given PageVersionRepository repository = CreateRepository(); List <PageVersion> pageVersions = CreateTenPages(repository); int pageId = pageVersions[0].PageId; PageVersion version2 = await repository.AddNewVersionAsync(pageId, "v2 text", "editedBy", DateTime.Today.AddMinutes(10)); PageVersion version3 = await repository.AddNewVersionAsync(pageId, "v3 text", "editedBy", DateTime.Today.AddMinutes(30)); // when PageVersion latestVersion = await repository.GetLatestVersionAsync(pageId); // then latestVersion.ShouldNotBeNull(); latestVersion.ShouldBeEquivalent(version3); }
public async void AddNewVersion() { // given PageVersionRepository repository = CreateRepository(); List <PageVersion> pages = CreateTenPages(repository); PageVersion expectedPage = pages.Last(); await repository.AddNewVersionAsync(expectedPage.PageId, "v2 text", "brian"); // when PageVersion thirdVersion = await repository.AddNewVersionAsync(expectedPage.PageId, "v3 text", "author2"); // then thirdVersion.ShouldNotBeNull(); PageVersion savedVersion = await repository.GetByIdAsync(thirdVersion.Id); savedVersion.ShouldNotBeNull(); savedVersion.ShouldBeEquivalent(thirdVersion); }
public async Task FindPageVersionsByAuthor_should_be_case_insensitive_and_return_versions_sorted_by_date_desc() { // given PageVersionRepository repository = CreateRepository(); List <PageVersion> pageVersions = CreateTenPages(repository); string editedBy = "shakespeare jr"; PageVersion version2 = await repository.AddNewVersionAsync(pageVersions[0].PageId, "v2 text", editedBy); PageVersion version3 = await repository.AddNewVersionAsync(pageVersions[1].PageId, "v3 text", editedBy); // when IEnumerable <PageVersion> actualPageVersions = await repository.FindPageVersionsByAuthorAsync("SHAKESPEARE jr"); // then actualPageVersions.Count().ShouldBe(2); actualPageVersions.ShouldContain(p => p.Id == version2.Id); actualPageVersions.ShouldContain(p => p.Id == version3.Id); }
public async Task UpdateExistingVersion() { // given PageVersionRepository repository = CreateRepository(); List <PageVersion> pageVersions = CreateTenPages(repository); PageVersion newVersion = pageVersions[0]; newVersion.Text = "some new text"; newVersion.Author = "blake"; // when await repository.UpdateExistingVersionAsync(newVersion); // then PageVersion savedVersion = await repository.GetByIdAsync(newVersion.Id); savedVersion.ShouldNotBeNull(); savedVersion.ShouldBeEquivalent(newVersion); }
private List <PageVersion> CreateTenPages(PageVersionRepository repository) { IDocumentStore documentStore = DocumentStoreManager.GetMartenDocumentStore(typeof(PageVersionRepository), _outputHelper); var pageRepository = new PageRepository(documentStore); List <Page> pages = _fixture.CreateMany <Page>(10).ToList(); var pageVersions = new List <PageVersion>(); foreach (Page page in pages) { string text = _fixture.Create <string>(); string author = _fixture.Create <string>(); DateTime dateTime = DateTime.Today; Page newPage = pageRepository.AddNewPageAsync(page).GetAwaiter().GetResult(); PageVersion pageVersion = repository.AddNewVersionAsync(newPage.Id, text, author, dateTime).GetAwaiter().GetResult(); pageVersions.Add(pageVersion); } return(pageVersions); }
public async void DeleteVersion() { // given PageVersionRepository repository = CreateRepository(); List <PageVersion> pages = CreateTenPages(repository); var expectedPage = pages[0]; var version2 = await repository.AddNewVersionAsync(expectedPage.PageId, "v2", "author2"); var version3 = await repository.AddNewVersionAsync(expectedPage.PageId, "v3", "author2"); // when await repository.DeleteVersionAsync(version3.Id); // then var deletedVersion = await repository.GetByIdAsync(version3.Id); deletedVersion.ShouldBeNull(); var latestVersion = await repository.GetByIdAsync(version2.Id); latestVersion.ShouldNotBeNull(); }
public async Task FindPageVersionsByPageId_should_return_versions_sorted_by_date_desc() { // given PageVersionRepository repository = CreateRepository(); List <PageVersion> pages = CreateTenPages(repository); var firstPage = pages[0]; var version2 = await repository.AddNewVersionAsync(firstPage.PageId, "v2", "author1", DateTime.Today.AddMinutes(10)); var version3 = await repository.AddNewVersionAsync(firstPage.PageId, "v3", "author2", DateTime.Today.AddMinutes(20)); var version4 = await repository.AddNewVersionAsync(firstPage.PageId, "v4", "author3", DateTime.Today.AddMinutes(30)); // when IEnumerable <PageVersion> versions = await repository.FindPageVersionsByPageIdAsync(firstPage.PageId); // then versions.ShouldNotBeNull(); versions.ShouldNotBeEmpty(); versions.Count().ShouldBe(4); versions.First().ShouldBeEquivalent(version4); versions.Last().ShouldBeEquivalent(firstPage); }