public void DateNumberIsParsedAsSeconds() { var input = NumberValue.Create(12345); var format = new FilterArguments(new StringValue("%s")); var context = new TemplateContext(); var result = MiscFilters.Date(input, format, context); Assert.Equal("12345", result.ToStringValue()); }
public async Task NoTimeZoneIsParsedAsLocal() { var input = StringValue.Create("1970-01-01 00:00:00"); var format = new FilterArguments(new StringValue("%a %b %e %H:%M:%S %Y %z")); var context = new TemplateContext { TimeZone = Pacific }; var result = await MiscFilters.Date(input, format, context); Assert.Equal("Thu Jan 1 00:00:00 1970 -0800", result.ToStringValue()); }
public void Date(string format, string expected) { var input = new DateTimeValue(new DateTimeOffset(new DateTime(2017, 8, 1, 17, 4, 36, 123), TimeSpan.FromHours(8))); var arguments = new FilterArguments(new StringValue(format)); var context = new TemplateContext(); context.CultureInfo = new CultureInfo("en-US"); var result = MiscFilters.Date(input, arguments, context); Assert.Equal(expected, result.ToStringValue()); }
public void Time12hFormatFormDateTimeOffset(string dateTimeOffset, string format, string expected) { var input = new DateTimeValue(DateTimeOffset.Parse(dateTimeOffset)); var arguments = new FilterArguments(new StringValue(format)); var context = new TemplateContext(); context.CultureInfo = CultureInfo.InvariantCulture; var result = MiscFilters.Date(input, arguments, context); Assert.Equal(expected, result.ToStringValue().Trim()); }
public async Task DateNumberIsParsedAsSeconds(long number, string expected) { // Converting to Unix time should not vary by TimeSone var input = NumberValue.Create(number); var format = new FilterArguments(new StringValue("%s")); var context = new TemplateContext { TimeZone = Eastern }; var result = await MiscFilters.Date(input, format, context); Assert.Equal(expected, result.ToStringValue()); }
public async Task DefaultTimeZoneIsSetWhenNotParsed() { // This test ensures that when a TZ is specified it uses it instead of the settings one var input = StringValue.Create("1970-01-01 00:00:00"); var format = new FilterArguments(new StringValue("%s")); var context = new TemplateContext { TimeZone = Eastern }; var result = await MiscFilters.Date(input, format, context); Assert.Equal("18000", result.ToStringValue()); }
public void DateIsParsed() { var input = new StringValue("08/01/2017"); var format = "%D"; var arguments = new FilterArguments(new StringValue(format)); var context = new TemplateContext(); context.CultureInfo = CultureInfo.InvariantCulture; var result = MiscFilters.Date(input, arguments, context); Assert.Equal("08/01/2017", result.ToStringValue()); }
public void DateResolvesToday() { var input = new StringValue("today"); var format = "%D"; var arguments = new FilterArguments(new StringValue(format)); var context = new TemplateContext(); context.Now = () => new DateTimeOffset(new DateTime(2017, 8, 1, 5, 4, 36, 123), new TimeSpan(0)); context.CultureInfo = CultureInfo.InvariantCulture; var result = MiscFilters.Date(input, arguments, context); Assert.Equal("08/01/2017", result.ToStringValue()); }
public async Task Time12hFormatFormDateTimeOffset(string dateTimeOffset, string format, string expected) { var input = new DateTimeValue(DateTimeOffset.Parse(dateTimeOffset)); var arguments = new FilterArguments(new StringValue(format)); var options = new TemplateOptions() { CultureInfo = CultureInfo.InvariantCulture }; var context = new TemplateContext(options); var result = await MiscFilters.Date(input, arguments, context); Assert.Equal(expected, result.ToStringValue().Trim()); }
public void ChangeTimeZoneAndApply12hFormat(string initialDateTime, string timeZone, string format, string expected) { var input = new DateTimeValue(DateTimeOffset.Parse(initialDateTime)); var timeZoneArgument = new FilterArguments(new StringValue(timeZone)); var formatArgument = new FilterArguments(new StringValue(format)); var context = new TemplateContext { CultureInfo = CultureInfo.InvariantCulture }; var result = MiscFilters.ChangeTimeZone(input, timeZoneArgument, context); result = MiscFilters.Date(result, formatArgument, context); Assert.Equal(expected, result.ToStringValue().Trim()); }
public async Task DateNumberIsParsedInLocalTimeZone() { // This test is issued from a template running in Ruby on a system with -5 TZ // {{ 0 | date: '%c' }} var input = NumberValue.Create(0); var format = new FilterArguments(new StringValue("%+")); var context = new TemplateContext { TimeZone = Eastern }; var result = await MiscFilters.Date(input, format, context); Assert.Equal("Wed Dec 31 19:00:00 -05:00 1969", result.ToStringValue()); }
public async Task Date(string format, string expected) { var input = new DateTimeValue(new DateTimeOffset( new DateTime(2017, 8, 1, 17, 4, 36, 123), TimeSpan.FromHours(8))); var arguments = new FilterArguments(new StringValue(format)); var options = new TemplateOptions() { CultureInfo = new CultureInfo("en-US"), TimeZone = TimeZoneInfo.Utc }; var context = new TemplateContext(options); var result = await MiscFilters.Date(input, arguments, context); Assert.Equal(expected, result.ToStringValue()); }
public async Task DateIsParsed() { var input = new StringValue("08/01/2017"); var format = "%D"; var arguments = new FilterArguments(new StringValue(format)); var options = new TemplateOptions() { CultureInfo = CultureInfo.InvariantCulture, TimeZone = TimeZoneInfo.Utc }; var context = new TemplateContext(options); var result = await MiscFilters.Date(input, arguments, context); Assert.Equal("08/01/17", result.ToStringValue()); }
public void DateIsParsedWithCulture() { var input = new StringValue("08/01/2017"); var format = "%d/%m/%Y"; var arguments = new FilterArguments(new StringValue(format)); var context = new TemplateContext(); context.CultureInfo = new CultureInfo("fr-FR"); var resultFR = MiscFilters.Date(input, arguments, context); context.CultureInfo = new CultureInfo("en-US"); var resultUS = MiscFilters.Date(input, arguments, context); Assert.Equal("08/01/2017", resultFR.ToStringValue()); Assert.Equal("01/08/2017", resultUS.ToStringValue()); }
public void DateIsRenderedWithCulture() { var input = new StringValue("08/01/2017"); var format = "%c"; var arguments = new FilterArguments(new StringValue(format)); var context = new TemplateContext(); context.CultureInfo = new CultureInfo("fr-FR"); var resultFR = MiscFilters.Date(input, arguments, context); context.CultureInfo = new CultureInfo("en-US"); var resultUS = MiscFilters.Date(input, arguments, context); Assert.Equal("dimanche 8 janvier 2017 00:00:00", resultFR.ToStringValue()); Assert.Equal("Tuesday, August 1, 2017 12:00:00 AM", resultUS.ToStringValue()); }
public async Task DateResolvesToday() { var input = new StringValue("today"); var format = "%D"; var arguments = new FilterArguments(new StringValue(format)); var options = new TemplateOptions() { CultureInfo = CultureInfo.InvariantCulture, Now = () => new DateTimeOffset(new DateTime(2017, 8, 1, 5, 4, 36, 123), new TimeSpan(0)) }; var context = new TemplateContext(options); var result = await MiscFilters.Date(input, arguments, context); Assert.Equal("08/01/17", result.ToStringValue()); }
public async Task DateIsParsedWithCulture() { var input = new StringValue("08/01/2017"); var format = "%d/%m/%Y"; var arguments = new FilterArguments(new StringValue(format)); var context = new TemplateContext(new TemplateOptions { CultureInfo = new CultureInfo("fr-FR"), TimeZone = TimeZoneInfo.Utc }); var resultFR = await MiscFilters.Date(input, arguments, context); context = new TemplateContext(new TemplateOptions { CultureInfo = new CultureInfo("en-US"), TimeZone = TimeZoneInfo.Utc }); var resultUS = await MiscFilters.Date(input, arguments, context); Assert.Equal("08/01/2017", resultFR.ToStringValue()); Assert.Equal("01/08/2017", resultUS.ToStringValue()); }
public async Task DefaultTimeZoneAppliesDaylightSaving() { // This test ensures that the DST is respected when TZ is rendered var input = StringValue.Create("2021-01-01 00:00:00"); var format = new FilterArguments(new StringValue("%z")); var context = new TemplateContext { TimeZone = Pacific }; var result = await MiscFilters.Date(input, format, context); Assert.Equal("-0800", result.ToStringValue()); input = StringValue.Create("2021-06-01 00:00:00"); result = await MiscFilters.Date(input, format, context); Assert.Equal("-0700", result.ToStringValue()); }