public void GivenAGenericList_WhenRenderingUsingTypeTemplate_ThenTheExpectedOutcomeIsRendered() { // Arrange var parser = new TemplateParser(); var template = parser.Parse("[foreach]{}[/]"); var source = new List <int>() { 1, 2, 3 }; // Act var testProxy = new TestProxy(); testProxy.WriteTemplate(template, source); var preTemplateResult = testProxy.ToString(); parser.AddTypeTemplate <int>("{v}", t => new{ v = (10 - t).ToString() }); var testProxy2 = new TestProxy(); testProxy2.WriteTemplate(template, source); var postTemplateResult = testProxy2.ToString(); // Assert Assert.Equal("123", preTemplateResult); Assert.Equal("987", postTemplateResult); }
public void GivenATemplateWithAUnknownObjectType_WhenWritingTheTemplate_ThenTheValueShouldEvaluateToTrue() { // Arrange var proxy = new TestProxy(); // Act var actual = proxy.WriteTemplate("[if]true[/][ifnot]false[/]", new { }); // Assert Assert.Equal("true", actual.ToString()); }
public void GivenATemplateWithAUnknownParameter_WhenWritingTheTemplate_ThenTheValueShouldEvaluateToFalse() { // Arrange var proxy = new TestProxy(); // Act var actual = proxy.WriteTemplate("[if:source]true[/][ifnot:source]false[/]", new { }); // Assert Assert.Equal("false", actual.ToString()); }
public void GivenATemplateWithRepeater_WhenGivenSimpleValue_ThenJustTheValueIsRendred() { // Arrange var proxy = new TestProxy(); // Act var actual = proxy.WriteTemplate("start|[ForEach:test]{}[/]|end", new { test = true }); // Assert Assert.Equal("start|True|end", actual.ToString()); }
public void GivenATemplateWithRepeater_WhenGivenArray_ThenValuesAreRenderd() { // Arrange var proxy = new TestProxy(); // Act var actual = proxy.WriteTemplate("start|[ForEach:Test]'{}'[/]|end", new { Test = new[] { "A", "B", "C" } }); // Assert Assert.Equal("start|'A''B''C'|end", actual.ToString()); }
public void GivenATemplateWithRepeater_WhenGivenEmptyArray_ThenNoRenderIsDone() { // Arrange var proxy = new TestProxy(); // Act var actual = proxy.WriteTemplate("start|[ForEach:Test]t[/]|end", new { Test = new string[0] }); // Assert Assert.Equal("start||end", actual.ToString()); }
public void GivenATemplateWithRepeater_WhenGivenANull_ThenNoRenderingIsDone() { // Arrange var proxy = new TestProxy(); // Act var actual = proxy.WriteTemplate("start|[ForEach:test]t[/]|end", null); // Assert Assert.Equal("start||end", actual.ToString()); }
public void GivenATemplateWithRepeater_WhenGivenUnknownValue_ThenNoRenderIsDone() { // Arrange var proxy = new TestProxy(); // Act var actual = proxy.WriteTemplate("start|[ForEach:Unknown]{}[/]|end", new { }); // Assert Assert.Equal("start||end", actual.ToString()); }
public void GivenATemplateColor_WhenRendering_ThenExpectedColorCommandShouldBeRendered(string source, string expected) { // Arrange var proxy = new TestProxy(); // Act var actual = proxy.WriteTemplate(source, null).ToString(); // Assert Assert.Equal(expected, actual); }
public void GivenAObject_WhenTestingForTruthy_ThenExpectedResultShouldBeReturned(object source, string expected) { // Arrange var proxy = new TestProxy(); // Act var actual = proxy.WriteTemplate("[if:source]true[/][ifnot:source]false[/]", new { source }); // Assert Assert.Equal(expected, actual.ToString()); }
public void GivenTemplateWithClearLine_WhenRender_ThenClearRemandingIsRendered() { // Arrange var proxy = new TestProxy(); // Act var actual = proxy.WriteTemplate("[ClearLine/]", new { Test = "test" }); // Assert Assert.Equal($"{new string(' ', 80)}", actual.ToString()); }
public void GivenAEmptyConfig_WhenRendering_ThenSubstituteWithObjectValue() { // Arrange var proxy = new TestProxy(); // Act var actual = proxy.WriteTemplate("{}", new SimpleObject(), CultureInfo.CurrentUICulture); // Assert Assert.Equal("SimpleObject", actual.ToString()); }
public void GivenTextNestedWithinHr_WhenRenderHr_ThenNestedIsIgnored() { // Arrange var proxy = new TestProxy(); // Act var actual = proxy.WriteTemplate("start|[hr]test[/]|end", new { Test = "test" }); // Assert Assert.Equal("start|\n" + new string('-', 80) + "|end", actual.ToString()); }
public void GivenATemplateWithUnknownStyle_WhenRender_ThenRenderNoStyle() { // Arrange var proxy = new TestProxy(); // Act var actual = proxy.WriteTemplate("start|[s:test]test[/]|end", new { Test = "test" }); // Assert Assert.Equal("start|test|end", actual.ToString()); }
public void GivenAConfigWithOnlyFormat_WhenRendering_ThenSubstituteUsesFormatter() { // Arrange var proxy = new TestProxy(); // Act var actual = proxy.WriteTemplate("{:format}", new FormattalbeObject(), new CultureInfo("da-DK")); // Assert Assert.Equal("format|da-DK", actual.ToString()); }
public void GivenTemplateWithUnknownSub_WhenRender_ThenRenderNothing() { // Arrange var proxy = new TestProxy(); // Act var actual = proxy.WriteTemplate("start|{Unknown}|end", new { Name = "Tom" }); // Assert Assert.Equal("start||end", actual.ToString()); }
public void GivenTemplateWithSub_WhenRenderWithNullObject_ThenRenderNothing() { // Arrange var proxy = new TestProxy(); // Act var actual = proxy.WriteTemplate("start|{Unknown}|end", null); // Assert Assert.Equal("start||end", actual.ToString()); }
public void GivenATemplateContainingWith_WhenGivenUnknownValue_ThenNoRender() { // Arrange var proxy = new TestProxy(); // Act var actual = proxy.WriteTemplate("start|[with:unknown]T[/]|end", new { }); // Assert Assert.Equal("start||end", actual.ToString()); }
public void GivenTemplateWithSimpleSub_WhenRender_ThenRenderExpected() { // Arrange var proxy = new TestProxy(); // Act var actual = proxy.WriteTemplate("start|{Name}|end", new { Name = "Tom" }); // Assert Assert.Equal("start|Tom|end", actual.ToString()); }
public void GivenABlankLineWithStartStopTag_WhenRenderHr_ThenRenderFullLine() { // Arrange var proxy = new TestProxy(); // Act var actual = proxy.WriteTemplate("[hr][/]", null); // Assert Assert.Equal(new string('-', 80), actual.ToString()); }
public void GivenATemplateContainingWith_WhenGivenKnownValue_ThenRenderValue() { // Arrange var proxy = new TestProxy(); // Act var actual = proxy.WriteTemplate("start|[with:Test]{Length}[/]|end", new { Test = "test" }); // Assert Assert.Equal("start|4|end", actual.ToString()); }
public void GivenAExistingText_WhenRenderHr_ThenRenderNewLineFirst() { // Arrange var proxy = new TestProxy(); // Act var actual = proxy.WriteTemplate("start|[hr/]|end", new { Test = "test" }); // Assert Assert.Equal("start|\n" + new string('-', 80) + "|end", actual.ToString()); }
public void GivenATemplateWithLineBreak_WhenRendering_ThenRenderLineBreak() { // Arrange var proxy = new TestProxy(); // Act var actual = proxy.WriteTemplate("[br][/][br/]", null); // Assert Assert.Equal("\n\n", actual.ToString()); }
public void GivenTextNestedWithinBr_WhenRendering_ThenNestedTextIsIgnored() { // Arrange var proxy = new TestProxy(); // Act var actual = proxy.WriteTemplate("start|[br]Tester[/]|end", null); // Assert Assert.Equal("start|\n|end", actual.ToString()); }
public void GivenTemplateWithClearLineWithContent_WhenRender_ThenContentIsIgnored() { // Arrange var proxy = new TestProxy(); // Act var actual = proxy.WriteTemplate("start|[ClearLine]Tester[/]|end", new { Test = "test" }); // Assert Assert.Equal($"start|{new string(' ', 74)}|end", actual.ToString()); }
public void GivenATemplateWithRepeater_WhenGivenIEnumerable_ThenValuesAreRenderd() { // Arrange var proxy = new TestProxy(); // Act var enumeration = Enumerable.Range(0, 10); var actual = proxy.WriteTemplate("start|[ForEach:Test]{}[/]|end", new { Test = enumeration.AsEnumerable() }); // Assert Assert.Equal("start|0123456789|end", actual.ToString()); }
public void GivenTemplateWithSub_WhenRenderWithSpecificCulture_ThenUseCultureToRender() { // Arrange var proxyDk = new TestProxy(); var proxyUs = new TestProxy(); // Act var actualDk = proxyDk.WriteTemplate("start|{number}|end", new { number = 1.2 }, new CultureInfo("da-dk")); var actualUs = proxyUs.WriteTemplate("start|{number}|end", new { number = 1.2 }, new CultureInfo("en-us")); // Assert Assert.Equal("start|1,2|end", actualDk.ToString()); Assert.Equal("start|1.2|end", actualUs.ToString()); }
public void GivenATemplateWithKnownStyle_WhenRender_ThenRenderColorSettings() { // Arrange var parser = new TemplateParser(); var template = parser.Parse("start|[s:test]test[/s]|end"); template.Styles.Add("test", new ConsoleStyle("test", ConsoleColor.Green, ConsoleColor.Red)); var proxy = new TestProxy(); // Act var actual = proxy.WriteTemplate(template, new { Test = "test" }); // Assert Assert.Equal("start|[SetColor:F=Green|B=Red]test[SetColor:F=Black|B=Black]|end", actual.ToString()); }
public void GivenAObjectWithNoSubTemplate_WhenRegisteringATemplate_ThenTheRegisteredTemplateShouldBeUsed() { // Arrange var parser = new TemplateParser(); var template = parser.Parse("{}"); // Act var testProxy = new TestProxy(); testProxy.WriteTemplate(template, this); var preTemplateResult = testProxy.ToString(); parser.AddTypeTemplate <SubTemplateTests>("Replaced with template"); var testProxy2 = new TestProxy(); testProxy2.WriteTemplate(template, this); var postTemplateResult = testProxy2.ToString(); // Assert Assert.Equal("ConsoleExtensions.Templating.Tests.SubTemplateTests", preTemplateResult); Assert.Equal("Replaced with template", postTemplateResult); }
public void GivenATypeTemplateWithTypeConverter_WhenRenderingAValue_ThenTheValueIsConverted() { // Arrange var parser = new TemplateParser(); var template = parser.Parse("{}"); // Act var testProxy = new TestProxy(); testProxy.WriteTemplate(template, this); var preTemplateResult = testProxy.ToString(); parser.AddTypeTemplate <SubTemplateTests>("{}", tests => new string(tests.GetType().Name.Reverse().ToArray())); var testProxy2 = new TestProxy(); testProxy2.WriteTemplate(template, this); var postTemplateResult = testProxy2.ToString(); // Assert Assert.Equal("ConsoleExtensions.Templating.Tests.SubTemplateTests", preTemplateResult); Assert.Equal("stseTetalpmeTbuS", postTemplateResult); }