-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat (Tests): adds tests for default image THR
- Loading branch information
1 parent
fbfaac0
commit a554487
Showing
1 changed file
with
104 additions
and
0 deletions.
There are no files selected for viewing
104 changes: 104 additions & 0 deletions
104
tests/Rhythm.Drop.Web.Tests/TagHelperRenderers/Images/DefaultImageTagHelperRendererTests.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,104 @@ | ||
namespace Rhythm.Drop.Web.Tests.TagHelperRenderers.Images; | ||
|
||
using Microsoft.AspNetCore.Razor.TagHelpers; | ||
using Rhythm.Drop.Models.Images; | ||
using Rhythm.Drop.Web.Infrastructure; | ||
using Rhythm.Drop.Web.Infrastructure.TagHelperRenderers.Images; | ||
using Rhythm.Drop.Web.TagHelperRenderers.Images; | ||
using System.Threading.Tasks; | ||
|
||
[TestFixture] | ||
public class DefaultImageTagHelperRendererTests : TagHelperRendererTestsBase | ||
{ | ||
[Test] | ||
public async Task RenderAsync_With_No_Image_Returns_No_Output() | ||
{ | ||
// arrange | ||
var tagHelperRenderer = new DefaultDropImageTagHelperRenderer(); | ||
var rendererContext = new DropImageTagHelperRendererContext(default, RenderMode.Default); | ||
var context = CreateTagHelperContext(DefaultTagName); | ||
var output = CreateTagHelperOutput(DefaultTagName); | ||
|
||
// act | ||
await tagHelperRenderer.RenderAsync(rendererContext, context, output); | ||
|
||
// assert | ||
Assert.Multiple(() => | ||
{ | ||
Assert.That(output.TagName, Is.Not.EqualTo(DefaultTagName)); | ||
Assert.That(output.Content.IsModified, Is.False); | ||
}); | ||
} | ||
|
||
[Test] | ||
public async Task RenderAsync_With_Simple_Image_Returns_Output_With_Img_TagName() | ||
{ | ||
// arrange | ||
var tagHelperRenderer = new DefaultDropImageTagHelperRenderer(); | ||
var image = new Image("/image.gif", "Test"); | ||
var rendererContext = new DropImageTagHelperRendererContext(image, RenderMode.Default); | ||
var context = CreateTagHelperContext(DefaultTagName); | ||
var output = CreateTagHelperOutput(DefaultTagName); | ||
|
||
// act | ||
await tagHelperRenderer.RenderAsync(rendererContext, context, output); | ||
|
||
// assert | ||
Assert.Multiple(() => | ||
{ | ||
Assert.That(output.TagName, Is.EqualTo("img")); | ||
Assert.That(output.Content.IsModified, Is.False); | ||
|
||
Assert.That(output.Attributes, Has.One.Matches<TagHelperAttribute>(x => x.Name == "src" && x.Value.ToString() == image.Url)); | ||
Assert.That(output.Attributes, Has.One.Matches<TagHelperAttribute>(x => x.Name == "alt" && x.Value.ToString() == image.AltText)); | ||
}); | ||
} | ||
|
||
public async Task RenderAsync_With_Simple_Image_And_Dimensions_Returns_Output_With_Img_TagName_And_Attributes() | ||
{ | ||
// arrange | ||
var tagHelperRenderer = new DefaultDropImageTagHelperRenderer(); | ||
var image = new Image("/image.gif", "Test", 200, 200); | ||
var rendererContext = new DropImageTagHelperRendererContext(image, RenderMode.Default); | ||
var context = CreateTagHelperContext(DefaultTagName); | ||
var output = CreateTagHelperOutput(DefaultTagName); | ||
|
||
// act | ||
await tagHelperRenderer.RenderAsync(rendererContext, context, output); | ||
|
||
// assert | ||
Assert.Multiple(() => | ||
{ | ||
Assert.That(output.TagName, Is.EqualTo("img")); | ||
Assert.That(output.Content.IsModified, Is.False); | ||
|
||
Assert.That(output.Attributes, Has.One.Matches<TagHelperAttribute>(x => x.Name == "src" && x.Value.ToString() == image.Url)); | ||
Assert.That(output.Attributes, Has.One.Matches<TagHelperAttribute>(x => x.Name == "alt" && x.Value.ToString() == image.AltText)); | ||
|
||
Assert.That(output.Attributes, Has.One.Matches<TagHelperAttribute>(x => x.Name == "width" && x.Value.ToString() == image.Width.ToString())); | ||
Assert.That(output.Attributes, Has.One.Matches<TagHelperAttribute>(x => x.Name == "height" && x.Value.ToString() == image.Height.ToString())); | ||
}); | ||
} | ||
|
||
|
||
[Test] | ||
public async Task RenderAsync_With_Image_That_Has_Sources_Returns_Output_With_Picture_TagName() | ||
{ | ||
// arrange | ||
var tagHelperRenderer = new DefaultDropImageTagHelperRenderer(); | ||
var image = new Image("/image.gif", "Test", default, default, [new ImageSource("/image2.gif")]); | ||
var rendererContext = new DropImageTagHelperRendererContext(image, RenderMode.Default); | ||
var context = CreateTagHelperContext(DefaultTagName); | ||
var output = CreateTagHelperOutput(DefaultTagName); | ||
|
||
// act | ||
await tagHelperRenderer.RenderAsync(rendererContext, context, output); | ||
|
||
// assert | ||
Assert.Multiple(() => | ||
{ | ||
Assert.That(output.TagName, Is.EqualTo("picture")); | ||
Assert.That(output.Content.IsModified, Is.True); | ||
}); | ||
} | ||
} |