public async Task GetById_RandomIdReturnsNull()
        {
            var pageId    = Guid.NewGuid();
            var retrieved = await PageRepository.GetById <MyPage>(pageId).ConfigureAwait(false);

            Assert.IsNull(retrieved);
        }
        public async Task GetById_PageWithBlocks()
        {
            var siteId = await MakeSite().ConfigureAwait(false);

            MyPage page = await MakePageWithBlocks(siteId).ConfigureAwait(false);

            var pageId    = page.Id;
            var retrieved = await PageRepository.GetById <MyPage>(pageId).ConfigureAwait(false);

            Assert.AreEqual(2, retrieved.Blocks.Count);
        }
        public async Task GetById()
        {
            var siteId = await MakeSite().ConfigureAwait(false);

            MyPage page = await MakePage(siteId).ConfigureAwait(false);

            var pageId = page.Id;

            Assert.AreNotEqual(Guid.Empty, pageId);
            var retrieved = await PageRepository.GetById <MyPage>(pageId).ConfigureAwait(false);

            Assert.AreEqual(pageId, retrieved.Id);
            Assert.AreEqual(siteId, retrieved.SiteId);
            Assert.AreEqual("Startpage", retrieved.Title);
            Assert.AreEqual("Welcome", retrieved.Text.Value);
        }
        public async Task Save_AfterChange()
        {
            var siteId = await MakeSite().ConfigureAwait(false);

            MyPage page = await MakePage(siteId).ConfigureAwait(false);

            var    pageId  = page.Id;
            string newText = $"Welcome at {DateTime.Now}";

            page.Text = newText;
            await PageRepository.Save(page).ConfigureAwait(false);

            var retrieved = await PageRepository.GetById <MyPage>(pageId).ConfigureAwait(false);

            Assert.AreEqual(newText, retrieved.Text.Value);
        }