ProSol.Html.TagsProvider/tests/TagsProvider_NamedListeners_Tests.cs
Alexander Kozachenko fc19e6e4e1 Release v1.0.2
- moved folders around
- provided readme
2023-11-07 16:51:25 +03:00

61 lines
1.6 KiB
C#

using ProSol.Html;
using ProSol.Html.Tests.TestHelpers;
namespace ProSol.Html.Tests;
public class TagsProvider_NamedListeners_Tests
{
[Test]
public void Process_Single_Named_Tag()
{
var expected = new string[] { "Rock", "Paper", "Scissors" };
var tagsProvider = new TagsProvider();
var listener = new TagsProviderListener();
tagsProvider.Subscribe(listener, "li");
var html = """
<ul>
<li>Rock</li>
<li>Paper</li>
<li>Scissors</li>
</ul>
""";
tagsProvider.Process(html);
var result = GetText(listener, html);
Assert.That(result, Is.EquivalentTo(expected));
}
[Test]
public void Process_Multiple_Named_Tag()
{
var expected = new string[] { "Terminal", "tasks", "any", "close" };
var tagsProvider = new TagsProvider();
var listener = new TagsProviderListener();
tagsProvider.Subscribe(listener, "i", "b");
var html = """
<p>
<b>Terminal</b> will be reused by <b>tasks</b>, press <i>any</i> key to <i>close</i> it.
</p>
""";
tagsProvider.Process(html);
var result = GetText(listener, html);
Assert.That(result, Is.EquivalentTo(expected));
}
static string[] GetText(TagsProviderListener listener, string html)
{
return listener.ProcessedTags
.Select(x => html[x.InnerTextRange]
.ToString())
.ToArray();
}
}