Ejemplo n.º 1
0
        public async void AddNewPage_should_add_page_and_increment_id()
        {
            // given
            string   createdBy = "lyon";
            DateTime createdOn = DateTime.Today;

            PageRepository repository = CreateRepository();

            Page page = _fixture.Create <Page>();

            page.Id             = -1; // should be reset
            page.CreatedBy      = createdBy;
            page.CreatedOn      = createdOn;
            page.LastModifiedBy = createdBy;
            page.LastModifiedOn = createdOn;

            // when
            await repository.AddNewPageAsync(page);

            Page actualPage = await repository.AddNewPageAsync(page);

            // then
            actualPage.ShouldNotBeNull();
            actualPage.CreatedOn.ShouldBe(createdOn);
            actualPage.CreatedBy.ShouldBe(createdBy);

            Page savedVersion = await repository.GetPageByIdAsync(actualPage.Id);

            savedVersion.ShouldNotBeNull();
            savedVersion.Id.ShouldBeGreaterThanOrEqualTo(1);
        }
Ejemplo n.º 2
0
        public async Task FindPagesContainingTag_should_find_tags_using_case_insensitive_search()
        {
            // given
            PageRepository repository = CreateRepository();

            CreateTenPages(repository);

            List <Page> pages = _fixture.CreateMany <Page>(3).ToList();

            pages.ForEach(p => p.Tags = _fixture.Create <string>() + ", facebook-data-leak");
            await repository.AddNewPageAsync(pages[0]);

            await repository.AddNewPageAsync(pages[1]);

            await repository.AddNewPageAsync(pages[2]);

            // when
            var actualPages = await repository.FindPagesContainingTagAsync("facebook-data-leak");

            // then
            actualPages.Count().ShouldBe(3);
            actualPages.First(x => x.Id == pages[0].Id).ShouldNotBeNull();
            actualPages.First(x => x.Id == pages[1].Id).ShouldNotBeNull();
            actualPages.First(x => x.Id == pages[2].Id).ShouldNotBeNull();
        }
Ejemplo n.º 3
0
        public async Task FindPagesLastModifiedBy_should_find_pages_with_case_insensitive_search()
        {
            // given
            PageRepository repository = CreateRepository();

            CreateTenPages(repository);             // add random pages

            var page1 = _fixture.Create <Page>();
            var page2 = _fixture.Create <Page>();

            page1.LastModifiedBy = "THAT guy";
            page2.LastModifiedBy = "That Guy";

            await repository.AddNewPageAsync(page1);

            await repository.AddNewPageAsync(page2);

            // when
            IEnumerable <Page> actualPages = await repository.FindPagesLastModifiedByAsync("that guy");

            // then
            actualPages.Count().ShouldBe(2);
            actualPages.First(x => x.Id == page1.Id).ShouldNotBeNull();
            actualPages.First(x => x.Id == page2.Id).ShouldNotBeNull();
        }
Ejemplo n.º 4
0
        public async Task FindPagesCreatedBy_should_find_pages_created_by_with_case_insensitive_search()
        {
            // given
            PageRepository repository = CreateRepository();

            CreateTenPages(repository);             // add random data

            var page1 = _fixture.Create <Page>();
            var page2 = _fixture.Create <Page>();

            page1.CreatedBy = "myself";
            page2.CreatedBy = "MYSELf";

            await repository.AddNewPageAsync(page1);

            await repository.AddNewPageAsync(page2);

            // when
            IEnumerable <Page> actualPages = await repository.FindPagesCreatedByAsync("myself");

            // then
            actualPages.Count().ShouldBe(2);
            actualPages.First(x => x.Id == page1.Id).ShouldNotBeNull();
            actualPages.First(x => x.Id == page2.Id).ShouldNotBeNull();
        }
Ejemplo n.º 5
0
        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}");
        }
Ejemplo n.º 6
0
        private List <Page> CreateTenPages(PageRepository repository, List <Page> pages = null)
        {
            if (pages == null)
            {
                pages = _fixture.CreateMany <Page>(10).ToList();
            }

            var newPages = new List <Page>();

            foreach (Page page in pages)
            {
                Page newPage = repository.AddNewPageAsync(page).GetAwaiter().GetResult();
                newPages.Add(newPage);
            }

            return(newPages);
        }
Ejemplo n.º 7
0
        public async void DeletePage_should_delete_specific_page()
        {
            // given
            PageRepository repository = CreateRepository();

            CreateTenPages(repository);

            var pageToDelete = _fixture.Create <Page>();
            await repository.AddNewPageAsync(pageToDelete);

            // when
            await repository.DeletePageAsync(pageToDelete.Id);

            // then
            var deletedPage = await repository.GetPageByIdAsync(pageToDelete.Id);

            deletedPage.ShouldBeNull();
        }
        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);
        }