Skip to content

Commit eebb726

Browse files
committed
Added more tests
1 parent 2407ffd commit eebb726

File tree

4 files changed

+65
-10
lines changed

4 files changed

+65
-10
lines changed

LinkDotNet.Blog.IntegrationTests/Infrastructure/Persistence/Sql/SqlRepositoryTests.cs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,5 +83,26 @@ public async Task ShouldBeUpdateable()
8383
var blogPostAfterSave = await DbContext.BlogPosts.AsNoTracking().SingleAsync(b => b.Id == blogPostFromDb.Id);
8484
blogPostAfterSave.Title.Should().Be("New Title");
8585
}
86+
87+
[Fact]
88+
public async Task ShouldFilterAndOrder()
89+
{
90+
var olderPost = new BlogPostBuilder().Build();
91+
var newerPost = new BlogPostBuilder().Build();
92+
var filteredOutPost = new BlogPostBuilder().WithTitle("FilterOut").Build();
93+
await BlogPostRepository.StoreAsync(olderPost);
94+
await BlogPostRepository.StoreAsync(newerPost);
95+
await BlogPostRepository.StoreAsync(filteredOutPost);
96+
97+
var blogPosts = await BlogPostRepository.GetAllAsync(
98+
bp => bp.Title != "FilterOut",
99+
bp => bp.UpdatedDate,
100+
false);
101+
102+
var retrievedPosts = blogPosts.ToList();
103+
retrievedPosts.Any(b => b.Id == filteredOutPost.Id).Should().BeFalse();
104+
retrievedPosts[0].Id.Should().Be(olderPost.Id);
105+
retrievedPosts[1].Id.Should().Be(newerPost.Id);
106+
}
86107
}
87108
}

LinkDotNet.Blog.TestUtilities/BlogPostBuilder.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using LinkDotNet.Domain;
1+
using System;
2+
using LinkDotNet.Domain;
23

34
namespace LinkDotNet.Blog.TestUtilities
45
{
@@ -9,6 +10,7 @@ public class BlogPostBuilder
910
private string content = "Some Content";
1011
private string url = "localhost";
1112
private string[] tags;
13+
private DateTime updatedDate;
1214

1315
public BlogPostBuilder WithTitle(string title)
1416
{
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
using System.Linq;
2+
using Bunit;
3+
using FluentAssertions;
4+
using LinkDotNet.Blog.TestUtilities;
5+
using LinkDotNet.Blog.Web.Shared;
6+
using Xunit;
7+
8+
namespace LinkDotNet.Blog.UnitTests.Web.Shared
9+
{
10+
public class ShortBlogPostTests
11+
{
12+
[Fact]
13+
public void ShouldOpenBlogPost()
14+
{
15+
using var ctx = new TestContext();
16+
var blogPost = new BlogPostBuilder().Build();
17+
blogPost.Id = "SomeId";
18+
var cut = ctx.RenderComponent<ShortBlogPost>(
19+
p => p.Add(c => c.BlogPost, blogPost));
20+
21+
var readMore = cut.Find(".read-more a");
22+
23+
readMore.Attributes.Single(a => a.Name == "href").Value.Should().Be("/blogPost/SomeId");
24+
}
25+
26+
[Fact]
27+
public void ShouldNavigateToEscapedTagSiteWhenClickingOnTag()
28+
{
29+
using var ctx = new TestContext();
30+
var blogPost = new BlogPostBuilder().WithTags("Tag 1").Build();
31+
var cut = ctx.RenderComponent<ShortBlogPost>(
32+
p => p.Add(c => c.BlogPost, blogPost));
33+
34+
var searchByTagLink = cut.Find(".goto-tag");
35+
36+
searchByTagLink.Attributes.Single(a => a.Name == "href").Value.Should().Be("/searchByTag/Tag%201");
37+
}
38+
}
39+
}

LinkDotNet.Blog.Web/Shared/ShortBlogPost.razor

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
@using LinkDotNet.Domain
22
@using System.Net
33
@using System.Web
4-
@inject NavigationManager _navigationManager
54
@inherits MarkdownComponentBase
65
<article>
76
<div class="blog-card @AltCssClass">
@@ -15,7 +14,7 @@
1514
<ul>
1615
@foreach (var tag in BlogPost.Tags.Select(t => t.Content))
1716
{
18-
<li><a href="/searchByTag/@(Uri.EscapeDataString(tag))">@tag</a></li>
17+
<li><a class="goto-tag" href="/searchByTag/@(Uri.EscapeDataString(tag))">@tag</a></li>
1918
}
2019
</ul>
2120
</li>
@@ -27,7 +26,7 @@
2726
<h2></h2>
2827
<p>@RenderMarkupString(BlogPost.ShortDescription)</p>
2928
<p class="read-more">
30-
<a href="#" @onclick="@OpenBlogPost">Read More</a>
29+
<a href="/blogPost/@BlogPost.Id">Read More</a>
3130
</p>
3231
</div>
3332
</div>
@@ -40,10 +39,4 @@
4039
public bool UseAlternativeStyle { get; set; }
4140

4241
private string AltCssClass => UseAlternativeStyle ? "alt" : string.Empty;
43-
44-
private void OpenBlogPost()
45-
{
46-
_navigationManager.NavigateTo($"/blogPost/{BlogPost.Id}");
47-
}
48-
4942
}

0 commit comments

Comments
 (0)