Skip to content

Commit

Permalink
feat (Tests): adds tests for DefaultDropPictureTagHelperRenderer
Browse files Browse the repository at this point in the history
  • Loading branch information
jamiepollock committed Jan 26, 2024
1 parent db8235e commit 9000e9e
Showing 1 changed file with 84 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
namespace Rhythm.Drop.Web.Tests.TagHelperRenderers.Images;

using Rhythm.Drop.Web.Infrastructure.TagHelperRenderers.Images;
using Rhythm.Drop.Web.Infrastructure;
using Rhythm.Drop.Web.TagHelperRenderers.Images;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Rhythm.Drop.Models.Images;
using Microsoft.AspNetCore.Html;

[TestFixture]
public class DefaultPictureTagHelperRendererTests : TagHelperRendererTestsBase
{
private const string PictureTagName = "picture";

private static readonly IHtmlContent _imgHtmlContent = new HtmlString("<img class=\"test\" />");

[Test]
public async Task RenderAsync_With_No_Existing_Img_Tag_Should_Return_Output_With_Modified_Content()
{
// arrange
var tagHelperRenderer = new DefaultDropPictureTagHelperRenderer();
var image = new Image("/image.gif", "Test", 200, 200);
var rendererContext = new DropImageTagHelperRendererContext(image, LoadingMode.Default);
var context = CreateTagHelperContext(PictureTagName);
var output = CreateTagHelperOutput(PictureTagName);

await tagHelperRenderer.RenderAsync(rendererContext, context, output);

Assert.That(output.Content.IsModified, Is.True);
}

[Test]
public async Task RenderAsync_With_Existing_Img_Tag_Should_Return_Output_With_No_Modified_Content()
{
// arrange
var tagHelperRenderer = new DefaultDropPictureTagHelperRenderer();
var image = new Image("/image.gif", "Test", 200, 200);
var rendererContext = new DropImageTagHelperRendererContext(image, LoadingMode.Default);
var context = CreateTagHelperContext(PictureTagName);
var output = CreateTagHelperOutput(PictureTagName, _imgHtmlContent);

await tagHelperRenderer.RenderAsync(rendererContext, context, output);

Assert.That(output.Content.IsModified, Is.False);
}

[Test]
public async Task RenderAsync_With_Img_And_Source_Tag_Should_Return_Output_With_Modified_PreContent()
{
// arrange
var tagHelperRenderer = new DefaultDropPictureTagHelperRenderer();
var image = new Image("/image.gif", "Test", 200, 200, [ new ImageSource("/image2.gif")]);
var rendererContext = new DropImageTagHelperRendererContext(image, LoadingMode.Default);
var context = CreateTagHelperContext(PictureTagName);
var output = CreateTagHelperOutput(PictureTagName, _imgHtmlContent);

await tagHelperRenderer.RenderAsync(rendererContext, context, output);

Assert.That(output.PreContent.IsModified, Is.True);
}

[Test]
public async Task RenderAsync_With_No_Img_Should_Return_Surpressed_Output()
{
// arrange
var tagHelperRenderer = new DefaultDropPictureTagHelperRenderer();
var rendererContext = new DropImageTagHelperRendererContext(default, LoadingMode.Default);
var context = CreateTagHelperContext(PictureTagName);
var output = CreateTagHelperOutput(PictureTagName, _imgHtmlContent);

await tagHelperRenderer.RenderAsync(rendererContext, context, output);

Assert.Multiple(() =>
{
Assert.That(output.TagName, Is.Default);
Assert.That(output.PreContent.IsEmptyOrWhiteSpace, Is.True);
Assert.That(output.Content.IsEmptyOrWhiteSpace, Is.True);
});
}
}

0 comments on commit 9000e9e

Please sign in to comment.