private string FormatError(StringFragmentCollection expected, StringFragmentCollection resultFragments) { var stringBuilder = new StringBuilder(); stringBuilder.AppendLine($"Expected: {expected.Aggregate("", (x, y) => x + FormatSingle(y))}"); stringBuilder.AppendLine($" Actual: {resultFragments.Aggregate("", (x, y) => x + FormatSingle(y))}"); return(stringBuilder.ToString()); }
public void TextAndBlockContentIsWrapped(StringFragmentCollection stringFragments, StringFragmentCollection expected) { var xhtml = new FakeXHtmlString(stringFragments); var result = HtmlHelperExtensions.WrapContent(xhtml, "wrapper", "blockWrapper", null); CollectionAssert.AreEqual(expected, result.Fragments, new FragmentComparer(), this.FormatError(expected, result.Fragments)); }
public static XhtmlString GetXhtmlString(string s, params IStringFragment[] additionalFragments) { if (s == null) { return(null); } Mock <IStringFragment> fragmentMock = new Mock <IStringFragment>(); fragmentMock.SetupAllProperties(); fragmentMock.Setup(m => m.ToString()).Returns(s); fragmentMock.Setup(m => m.GetViewFormat()).Returns(s); Mock <XhtmlString> xhtmlStringMock = new Mock <XhtmlString>(); StringFragmentCollection fragments = new StringFragmentCollection(); if (!String.IsNullOrWhiteSpace(s)) { fragments.Add(fragmentMock.Object); } if (additionalFragments != null && additionalFragments.Length > 0) { foreach (IStringFragment fragment in additionalFragments) { fragments.Add(fragment); } } //xhtmlStringMock.Setup(m => m.FragmentParser).Returns(new Mock<Injected<IFragmentParser>>().Object); xhtmlStringMock.Setup(m => m.Fragments).Returns(fragments); xhtmlStringMock.Setup(m => m.ToString()).Returns(s); xhtmlStringMock.Setup(m => m.ToHtmlString()).Returns(s); xhtmlStringMock.Setup(m => m.ToInternalString()).Returns(s); xhtmlStringMock.Setup(m => m.ToEditString()).Returns(s); return(xhtmlStringMock.Object); }
private static IEnumerable <TestCaseData> TestCases(bool includeTextWrappers, bool includeBlockWrappers) { var textWrapperStart = includeTextWrappers ? new StaticFragment("<div class=\"wrapper\">") : new StaticFragment(""); var textWrapperEnd = includeTextWrappers ? new StaticFragment("</div>") : new StaticFragment(""); var blockWrapperStart = includeBlockWrappers ? new StaticFragment("<section class=\"blockWrapper\">") : new StaticFragment(""); var blockWrapperEnd = includeBlockWrappers ? new StaticFragment("</section>") : new StaticFragment(""); var text = new StaticFragment("<p>text</p>"); var contentFragment = CreateContentFragmentMock(); var stringFragments = new StringFragmentCollection(new List <IStringFragment> { text }); var expected = new StringFragmentCollection(new List <IStringFragment> { textWrapperStart, text, textWrapperEnd }); yield return(new TestCaseData(stringFragments, expected).SetName( "1")); stringFragments = new StringFragmentCollection(new List <IStringFragment> { text, contentFragment, contentFragment, text, contentFragment }); expected = new StringFragmentCollection(new List <IStringFragment> { textWrapperStart, text, textWrapperEnd, blockWrapperStart, contentFragment, blockWrapperEnd, blockWrapperStart, contentFragment, blockWrapperEnd, textWrapperStart, text, textWrapperEnd, blockWrapperStart, contentFragment, blockWrapperEnd }); yield return(new TestCaseData(stringFragments, expected).SetName( "2")); stringFragments = new StringFragmentCollection(new List <IStringFragment> { contentFragment, contentFragment, contentFragment }); expected = new StringFragmentCollection(new List <IStringFragment> { blockWrapperStart, contentFragment, blockWrapperEnd, blockWrapperStart, contentFragment, blockWrapperEnd, blockWrapperStart, contentFragment, blockWrapperEnd }); yield return(new TestCaseData(stringFragments, expected).SetName( "3")); stringFragments = new StringFragmentCollection(new List <IStringFragment> { contentFragment, text, contentFragment, contentFragment }); expected = new StringFragmentCollection(new List <IStringFragment> { blockWrapperStart, contentFragment, blockWrapperEnd, textWrapperStart, text, textWrapperEnd, blockWrapperStart, contentFragment, blockWrapperEnd, blockWrapperStart, contentFragment, blockWrapperEnd }); yield return(new TestCaseData(stringFragments, expected).SetName("4")); var emptyStringFragment = new StaticFragment("\n \r\n"); stringFragments = new StringFragmentCollection(new List <IStringFragment> { contentFragment, emptyStringFragment, contentFragment }); expected = new StringFragmentCollection(new List <IStringFragment> { blockWrapperStart, contentFragment, blockWrapperEnd, blockWrapperStart, emptyStringFragment, contentFragment, blockWrapperEnd, }); yield return(new TestCaseData(stringFragments, expected).SetName("Whitespace HTML block is not wrapped")); }
public FakeXHtmlString(StringFragmentCollection fragments) { this.Fragments = fragments; }