132 lines
3.3 KiB
C#
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);
|
|
}
|
|
} |