|
| 1 | +// MarkdownExtraTests.cs |
| 2 | +using NUnit.Framework; |
| 3 | +using FluentAssertions; |
| 4 | +using Markdown; |
| 5 | + |
| 6 | +namespace Markdown.tests |
| 7 | +{ |
| 8 | + [TestFixture] |
| 9 | + public class MarkdownExtraTests |
| 10 | + { |
| 11 | + private Md md; |
| 12 | + |
| 13 | + [SetUp] |
| 14 | + public void Setup() |
| 15 | + { |
| 16 | + md = new Md(); |
| 17 | + } |
| 18 | + |
| 19 | + [Test] |
| 20 | + public void MarkdownSpec_ShouldReturnNull_WhenInputIsNull() |
| 21 | + { |
| 22 | + md.Render(null).Should().Be(null); |
| 23 | + } |
| 24 | + |
| 25 | + [TestCase("#НеЗаголовок", "#НеЗаголовок", TestName = "Без пробела # не заголовок")] |
| 26 | + [TestCase("_пример число12 текста_", "_пример число12 текста_", TestName = "Числа не выделяются em")] |
| 27 | + [TestCase("__пример число12 текста__", "__пример число12 текста__", TestName = "Числа не выделяются strong")] |
| 28 | + [TestCase("текст_нет выделения_конец", "текст_нет выделения_конец", TestName = "Раздельные части не выделяются")] |
| 29 | + [TestCase("____", "____", TestName = "Пустая строка не выделяется strong")] |
| 30 | + [TestCase("__", "__", TestName = "Пустая строка не выделяется em")] |
| 31 | + public void MarkdownSpec_ShouldReturnExpectedValue_WhenNoChangesExpected(string input, string expected) |
| 32 | + { |
| 33 | + md.Render(input).Should().Be(expected); |
| 34 | + } |
| 35 | + [TestCase("_выделение_конец", "<em>выделение</em>конец", TestName = "Выделение в начале em")] |
| 36 | + [TestCase("текст_выделение_конец", "текст<em>выделение</em>конец", TestName = "Выделение в середине em")] |
| 37 | + [TestCase("текст_выделение_", "текст<em>выделение</em>", TestName = "Выделение в конце em")] |
| 38 | + [TestCase("_а__б__с_", "<em>а__б__с</em>", TestName = "<strong> не работает в em")] |
| 39 | + [TestCase("_а_ _б_", "<em>а</em> <em>б</em>", TestName = "Два тега em")] |
| 40 | + [TestCase("_пример _текста_ пример_", "_пример <em>текста</em> пример_", TestName = "Нет вложенных em")] |
| 41 | + [TestCase("a_b c_d_", "a_b c<em>d</em>", TestName = "Пробел блокирует выделение em")] |
| 42 | + public void MarkdownSpec_ShouldReturnExpectedValue_WhenEmExpected(string input, string expected) |
| 43 | + { |
| 44 | + md.Render(input).Should().Be(expected); |
| 45 | + } |
| 46 | + [TestCase("__выделение__конец", "<strong>выделение</strong>конец", TestName = "Выделение в начале strong")] |
| 47 | + [TestCase("текст__выделение__конец", "текст<strong>выделение</strong>конец", TestName = "Выделение в середине strong")] |
| 48 | + [TestCase("текст__выделение__", "текст<strong>выделение</strong>", TestName = "Выделение в конце strong")] |
| 49 | + [TestCase("__а__ __б__", "<strong>а</strong> <strong>б</strong>", TestName = "Два тега strong")] |
| 50 | + [TestCase("__пример __текста__ пример__", "__пример <strong>текста</strong> пример__", TestName = "Нет вложенных strong")] |
| 51 | + [TestCase("a__b c__d__", "a__b c<strong>d</strong>", TestName = "Пробел блокирует выделение strong")] |
| 52 | + public void MarkdownSpec_ShouldReturnExpectedValue_WhenStrongExpected(string input, string expected) |
| 53 | + { |
| 54 | + md.Render(input).Should().Be(expected); |
| 55 | + } |
| 56 | + [TestCase("__а_b_в__", "<strong>а<em>b</em>в</strong>",TestName = "em разрешено в strong")] |
| 57 | + [TestCase("__a__ _b_", "<strong>a</strong> <em>b</em>")] |
| 58 | + public void MarkdownSpec_ShouldReturnExpectedValue_WhenStrongAndEmExpected(string input, string expected) |
| 59 | + { |
| 60 | + md.Render(input).Should().Be(expected); |
| 61 | + } |
| 62 | + |
| 63 | + [TestCase(@"\\_а_", @"\<em>а</em>", TestName = @"Экранироание \")] |
| 64 | + [TestCase(@"\# Заголовок", "# Заголовок", TestName = "Экранирование #")] |
| 65 | + [TestCase(@"\_пример 1 текста_", "_пример 1 текста_", TestName = "Экранирование без пары")] |
| 66 | + [TestCase(@"\_x_", "_x_", TestName = "Экранирование em")] |
| 67 | + [TestCase(@"\__x__", "__x__", TestName = "Экранирование strong")] |
| 68 | + public void MarkdownSpec_ShouldReturnExpectedValue_WhenEscapingExpected(string input, string expected) |
| 69 | + { |
| 70 | + md.Render(input).Should().Be(expected); |
| 71 | + } |
| 72 | + |
| 73 | + [TestCase("# Заголовок", "<h1>Заголовок</h1>", TestName = "Базовый заголовок")] |
| 74 | + [TestCase("# Заголовок __bold__", "<h1>Заголовок <strong>bold</strong></h1>", TestName = "Заголовок strong")] |
| 75 | + [TestCase("# Заголовок _cursive_", "<h1>Заголовок <em>cursive</em></h1>", TestName = "Заголовок em")] |
| 76 | + |
| 77 | + public void MarkdownSpec_ShouldReturnExpectedValue_WhenHeaderExpected(string input, string expected) |
| 78 | + { |
| 79 | + md.Render(input).Should().Be(expected); |
| 80 | + } |
| 81 | + |
| 82 | + } |
| 83 | +} |
0 commit comments