Skip to content

Commit 87488db

Browse files
Update date formatting tests to handle culture-specific formats - Inline Data Approach
To main PR - Update date formatting tests to handle culture-specific formats - Inline Data Approach
2 parents 48c5743 + be5c60c commit 87488db

File tree

5 files changed

+29
-19
lines changed

5 files changed

+29
-19
lines changed

tests/Sitecore.AspNetCore.SDK.RenderingEngine.Integration.Tests/Fixtures/Binding/ViewFieldsBindingFixture.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using System.Net;
1+
using System.Globalization;
2+
using System.Net;
23
using FluentAssertions;
34
using HtmlAgilityPack;
45
using Microsoft.AspNetCore.TestHost;
@@ -75,7 +76,8 @@ public async Task SitecoreLayoutModelBinders_BindDataCorrectly()
7576
sectionNode.ChildNodes.First(n => n.Name.Equals("p", StringComparison.OrdinalIgnoreCase)).InnerText
7677
.Should().BeEmpty();
7778

78-
sectionNode.ChildNodes.First(n => n.Name.Equals("textarea", StringComparison.OrdinalIgnoreCase)).InnerText.Should().Contain("12/12/2019");
79+
DateTime expectedDate = DateTime.Parse("12.12.19", CultureInfo.InvariantCulture);
80+
sectionNode.ChildNodes.First(n => n.Name.Equals("textarea", StringComparison.OrdinalIgnoreCase)).InnerText.Should().Contain(expectedDate.ToString("MM/dd/yyyy", CultureInfo.CurrentCulture));
7981

8082
sectionNode.ChildNodes.First(n => n.Name.Equals("span", StringComparison.OrdinalIgnoreCase)).InnerHtml
8183
.Should().Be(TestConstants.TestMultilineFieldValue.Replace(Environment.NewLine, "<br>", StringComparison.OrdinalIgnoreCase));

tests/Sitecore.AspNetCore.SDK.RenderingEngine.Integration.Tests/Fixtures/TagHelpers/AllFieldTagHelpersFixture.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ public async Task ComponentWithAllFieldTypes_RendersFieldsCorrectly()
8282
sectionNode.ChildNodes.First(n => n.Name.Equals("div", StringComparison.OrdinalIgnoreCase) && n.Id.Equals("div5", StringComparison.OrdinalIgnoreCase)).InnerHtml
8383
.Should().Be(TestConstants.AllFieldsImageValue);
8484
sectionNode.ChildNodes.First(n => n.Name.Equals("div", StringComparison.OrdinalIgnoreCase) && n.Id.Equals("div6", StringComparison.OrdinalIgnoreCase)).InnerHtml
85-
.Should().Be(TestConstants.DateFieldValue);
85+
.Should().Be(TestConstants.DateTimeValue.ToString("MM/dd/yyyy", CultureInfo.CurrentCulture));
8686
sectionNode.ChildNodes.First(n => n.Name.Equals("div", StringComparison.OrdinalIgnoreCase) && n.Id.Equals("div7", StringComparison.OrdinalIgnoreCase)).InnerHtml
8787
.Should().Be(TestConstants.MediaLibraryItemImageFieldValue);
8888
sectionNode.ChildNodes.First(n => n.Name.Equals("div", StringComparison.OrdinalIgnoreCase) && n.Id.Equals("div8", StringComparison.OrdinalIgnoreCase)).InnerHtml

tests/Sitecore.AspNetCore.SDK.RenderingEngine.Integration.Tests/Fixtures/TagHelpers/DateFieldTagHelperFixture.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,8 @@ public async Task DateTagHelper_GeneratesProperDate()
9393
HtmlNode? sectionNode = doc.DocumentNode.ChildNodes.First(n => n.HasClass("component-with-dates"));
9494

9595
// Assert
96-
sectionNode.ChildNodes[1].InnerHtml.Should().Be("05/04/2012");
97-
sectionNode.ChildNodes[3].InnerHtml.Should().Be("05/04/2012 00:00:00");
96+
sectionNode.ChildNodes[1].InnerHtml.Should().Be(TestConstants.DateTimeValue.ToString("MM/dd/yyyy", CultureInfo.CurrentCulture));
97+
sectionNode.ChildNodes[3].InnerHtml.Should().Be(TestConstants.DateTimeValue.ToString("MM/dd/yyyy HH:mm:ss", CultureInfo.CurrentCulture));
9898
sectionNode.ChildNodes[5].InnerHtml.Should().Be(TestConstants.DateTimeValue.ToString(CultureInfo.CurrentCulture));
9999
sectionNode.ChildNodes[9].InnerHtml.Should().Contain("04.05.2012");
100100
}

tests/Sitecore.AspNetCore.SDK.RenderingEngine.Integration.Tests/Fixtures/TagHelpers/RichTextFieldTagHelperFixture.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using System.Net;
1+
using System.Globalization;
2+
using System.Net;
23
using System.Text.Encodings.Web;
34
using FluentAssertions;
45
using HtmlAgilityPack;
@@ -70,7 +71,8 @@ public async Task RichTextFieldTagHelper_DoesNotResetOtherTagHelperOutput()
7071

7172
// Assert
7273
// check scenario that RichTextTagHelper does not reset values of another helpers.
73-
sectionNode.ChildNodes.First(n => n.Name.Equals("textarea", StringComparison.OrdinalIgnoreCase)).InnerText.Should().Contain("12/12/2019");
74+
DateTime expectedDate = DateTime.Parse("12.12.19", CultureInfo.InvariantCulture);
75+
sectionNode.ChildNodes.First(n => n.Name.Equals("textarea", StringComparison.OrdinalIgnoreCase)).InnerText.Should().Contain(expectedDate.ToString("MM/dd/yyyy", CultureInfo.CurrentCulture));
7476
}
7577

7678
[Fact]

tests/Sitecore.AspNetCore.SDK.RenderingEngine.Tests/TagHelpers/Fields/DateTagHelperFixture.cs

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -123,23 +123,26 @@ public void Process_ScDateTagWithEmptyValueInForAttribute_GeneratesEmptyOutput(
123123
}
124124

125125
[Theory]
126-
[AutoNSubstituteData]
127-
public void Process_ScDateTagWithCustomFormat_GeneratesCustomDateFormatOutput(
128-
DateTagHelper sut,
129-
TagHelperContext tagHelperContext,
130-
TagHelperOutput tagHelperOutput)
126+
[InlineAutoNSubstituteData("en-US")]
127+
[InlineAutoNSubstituteData("da-DK")]
128+
[InlineAutoNSubstituteData("uk-UA")]
129+
public void Process_ScDateTagWithCustomFormat_GeneratesCustomDateFormatOutput(string cultureName, DateTagHelper sut, TagHelperContext tagHelperContext, TagHelperOutput tagHelperOutput)
131130
{
132131
// Arrange
132+
CultureInfo testCulture = new CultureInfo(cultureName);
133133
const string dateFormat = "MM/dd/yyyy H:mm";
134+
134135
tagHelperOutput.TagName = RenderingEngineConstants.SitecoreTagHelpers.DateHtmlTag;
135136
sut.DateFormat = dateFormat;
137+
sut.Culture = cultureName;
136138
sut.For = GetModelExpression(new DateField(_date));
137139

138140
// Act
139141
sut.Process(tagHelperContext, tagHelperOutput);
140142

141143
// Assert
142-
tagHelperOutput.Content.GetContent().Should().Be(_date.ToString(dateFormat, CultureInfo.InvariantCulture));
144+
string expected = _date.ToString(dateFormat, testCulture);
145+
tagHelperOutput.Content.GetContent().Should().Be(expected);
143146
}
144147

145148
[Theory]
@@ -258,23 +261,26 @@ public void Process_ScDateTagWithAspDataAttributeWithEmptyValueInForAttribute_Ge
258261
}
259262

260263
[Theory]
261-
[AutoNSubstituteData]
262-
public void Process_ScDateTagWithAspDataAttributeWithCustomFormat_GeneratesCustomDateFormatOutput(
263-
DateTagHelper sut,
264-
TagHelperContext tagHelperContext,
265-
TagHelperOutput tagHelperOutput)
264+
[InlineAutoNSubstituteData("en-US")]
265+
[InlineAutoNSubstituteData("da-DK")]
266+
[InlineAutoNSubstituteData("uk-UA")]
267+
public void Process_ScDateTagWithAspDataAttributeWithCustomFormat_GeneratesCustomDateFormatOutput(string cultureName, DateTagHelper sut, TagHelperContext tagHelperContext, TagHelperOutput tagHelperOutput)
266268
{
267269
// Arrange
270+
CultureInfo testCulture = new CultureInfo(cultureName);
268271
string dateFormat = "MM/dd/yyyy H:mm";
272+
269273
tagHelperOutput.TagName = RenderingEngineConstants.SitecoreTagHelpers.DateHtmlTag;
270274
sut.DateFormat = dateFormat;
275+
sut.Culture = cultureName;
271276
sut.DateModel = new DateField(_date);
272277

273278
// Act
274279
sut.Process(tagHelperContext, tagHelperOutput);
275280

276281
// Assert
277-
tagHelperOutput.Content.GetContent().Should().Be(_date.ToString(dateFormat, CultureInfo.InvariantCulture));
282+
string expected = _date.ToString(dateFormat, testCulture);
283+
tagHelperOutput.Content.GetContent().Should().Be(expected);
278284
}
279285

280286
[Theory]

0 commit comments

Comments
 (0)