dbMango/Tests.Rms.Risk.Mango/RstToMarkdownConverterTests.cs
Alexander Shabarshov 2a7a24c9e7 Initial contribution
2025-11-03 14:43:26 +00:00

132 lines
3.3 KiB
C#

/*
* dbMango
*
* Copyright 2025 Deutsche Bank AG
* SPDX-License-Identifier: Apache-2.0
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
namespace Tests.Rms.Risk.Mango;
[TestFixture]
public class RstToMarkdownConverterTests
{
private RstToMarkdownConverter _converter = null!;
[SetUp]
public void SetUp()
{
_converter = new RstToMarkdownConverter();
}
[Test]
public void Convert_EmptyInput_ReturnsEmptyString()
{
// Arrange
var lines = new string[0];
// Act
var result = _converter.Convert(lines);
// Assert
Assert.AreEqual(string.Empty, result);
}
[Test]
public void Convert_BoldText_ReturnsMarkdownBold()
{
// Arrange
var lines = new[] { "**bold text**" };
// Act
var result = _converter.Convert(lines);
// Assert
Assert.AreEqual("**bold text**", result);
}
[Test]
public void Convert_ItalicText_ReturnsMarkdownItalic()
{
// Arrange
var lines = new[] { "*italic text*" };
// Act
var result = _converter.Convert(lines);
// Assert
Assert.AreEqual("_italic text_", result);
}
[Test]
public void Convert_Heading_ReturnsMarkdownHeading()
{
// Arrange
var lines = new[] { "Heading", "======" };
// Act
var result = _converter.Convert(lines);
// Assert
Assert.AreEqual("# Heading", result);
}
[Test]
public void Convert_CodeBlock_ReturnsMarkdownCodeBlock()
{
// Arrange
var lines = new[] { ".. code-block:: csharp", " Console.WriteLine(\"Hello World\");" };
// Act
var result = _converter.Convert(lines).Replace("\r", "");
// Assert
Assert.AreEqual("```csharp\n Console.WriteLine(\"Hello World\");\n```", result);
}
[Test]
public void Convert_UnknownTags_SkipsUnknownTags()
{
// Arrange
var lines = new[] { ".. include:: file.rst" };
// Act
var result = _converter.Convert(lines);
// Assert
Assert.AreEqual(string.Empty, result);
}
[Test]
public void Convert_MixedContent_ConvertsCorrectly()
{
// Arrange
var lines = new[]
{
"Heading",
"======",
"**bold text**",
"*italic text*",
".. code-block:: csharp",
" Console.WriteLine(\"Hello World\");",
".. include:: file.rst"
};
// Act
var result = _converter.Convert(lines).Replace("\r", "");
// Assert
var expected = "# Heading\n**bold text**\n_italic text_\n```csharp\n Console.WriteLine(\"Hello World\");\n```\n";
Assert.AreEqual(expected, result);
}
}