internal static IEnumerable <PostTagEntity> Convert(this PostHeaderEntity ent, IEnumerable <Tag> ents) { return(ents.Select(t => new PostTagEntity { PostId = ent.Id, TagId = t.Id })); }
internal static Post Convert(this PostBodyEntity ent, PostHeaderEntity ent2) { if (ent == null || ent2 == null) { return(null); } return(new Post { Header = ent2.Convert(), Body = ent.Markdown }); }
public async Task GetMetaTagsTest() { //Arrange var tagText = TestConstants.GuidString; using (var ctx = new BlogContext(_opts)) { var tag = new TagEntity { Text = tagText }; var header = new PostHeaderEntity { Title = TestConstants.GuidString, Body = new PostBodyEntity { Markdown = TestConstants.GuidString } }; var header2 = new PostHeaderEntity { Title = TestConstants.GuidString, Body = new PostBodyEntity { Markdown = TestConstants.GuidString } }; await ctx.Tags.AddAsync(tag); await ctx.Headers.AddAsync(header); await ctx.Headers.AddAsync(header2); await ctx.SaveChangesAsync(); await ctx.PostTags.AddAsync(new PostTagEntity { PostId = header.Id, TagId = tag.Id }); await ctx.PostTags.AddAsync(new PostTagEntity { PostId = header2.Id, TagId = tag.Id }); await ctx.SaveChangesAsync(); } var accessor = new BlogAccessor(_opts); //Act var results = await accessor.GetTagList(); var match = results.FirstOrDefault(t => t.Tag.Equals(tagText)); //Assert Assert.IsNotNull(results, "Should never be null"); Assert.IsInstanceOfType(results, typeof(IEnumerable <MetaTag>)); Assert.IsTrue(results.Any()); Assert.IsNotNull(match, "Should be at least one match"); Assert.IsInstanceOfType(match, typeof(MetaTag)); Assert.AreEqual(2, match.Count, "Should be equal"); Assert.AreEqual(tagText, match.Tag, "Should be equal"); }
public static void Init(TestContext tctx) { _opts = new DbContextOptionsBuilder() .UseNpgsql($"Server={TestConstants.Server};Port=5432;Database={TestConstants.GuidString};User Id=user1;Password=password1;") .Options; _testTag = TestConstants.GuidString; _testTitle = TestConstants.GuidString; _testBody = TestConstants.GuidString; using (var ctx = new BlogContext(_opts)) { ctx.Database.EnsureCreated(); var tag1 = new TagEntity { Text = _testTag }; //Add a tag ctx.Tags.Add(tag1); ctx.SaveChanges(); var body = new PostBodyEntity { Markdown = _testBody }; //add body ctx.Bodies.Add(body); ctx.SaveChanges(); var header = new PostHeaderEntity { BodyId = body.Id, Title = _testTitle }; //add header ctx.Headers.Add(header); ctx.SaveChanges(); var join = new PostTagEntity { TagId = tag1.Id, PostId = header.Id }; ctx.PostTags.Add(join); ctx.SaveChanges(); } }
public async Task GetPostTest() { //Arrange var bodyId = -1; var bodyText = TestConstants.GuidString; using (var ctx = new BlogContext(_opts)) { var tags = new [] { new PostTagEntity { Tag = new TagEntity { Text = TestConstants.GuidString } }, new PostTagEntity { Tag = new TagEntity { Text = TestConstants.GuidString } } }; var body = new PostBodyEntity { Markdown = bodyText }; var header = new PostHeaderEntity { Title = TestConstants.GuidString, Body = body }; foreach (var pt in tags) { pt.Post = header; } await ctx.Headers.AddAsync(header); await ctx.SaveChangesAsync(); bodyId = body.Id; } var accessor = new BlogAccessor(_opts); //Act var result = await accessor.GetPostById(bodyId); //Assert Assert.IsTrue(bodyId > 0, "Should be at least 1"); Assert.IsNotNull(result, "Should never be null"); Assert.IsInstanceOfType(result, typeof(Post)); Assert.AreEqual(bodyText, result.Body, "Should contain the test body text"); }
internal static PostHeader Convert(this PostHeaderEntity ent) { if (ent == null) { return(null); } return(new PostHeader { Id = ent.Id, BodyId = ent.BodyId, Title = ent.Title, Tags = ent.PostTags.Select(e => e.Tag).Convert() }); }