Files
simulation_core/lib/CxxDemangler/Tests/Parsing/LocalName.cs

84 lines
2.4 KiB
C#

using Microsoft.VisualStudio.TestTools.UnitTesting;
namespace CxxDemangler.Tests.Parsing
{
[TestClass]
public class LocalName : TestBase
{
[TestMethod]
public void LocalNameRelative()
{
Verify("Z3abcE3def_0...",
new Parsers.LocalName.Relative(
new Parsers.SourceName.Identifier("abc"),
new Parsers.SourceName.Identifier("def"),
new Parsers.Discriminator(0)));
}
[TestMethod]
public void LocalNameRelative2()
{
Verify("Z3abcE3def...",
new Parsers.LocalName.Relative(
new Parsers.SourceName.Identifier("abc"),
new Parsers.SourceName.Identifier("def"),
discriminator: null));
}
[TestMethod]
public void LocalNameRelative3()
{
Verify("Z3abcEs_0...",
new Parsers.LocalName.Relative(
new Parsers.SourceName.Identifier("abc"),
null,
new Parsers.Discriminator(0)));
}
[TestMethod]
public void LocalNameRelative4()
{
Verify("Z3abcEs...",
new Parsers.LocalName.Relative(
new Parsers.SourceName.Identifier("abc"),
null,
null));
}
[TestMethod]
public void LocalNameDefault()
{
Verify("Z3abcEd1_3abc...",
new Parsers.LocalName.Default(
new Parsers.SourceName.Identifier("abc"),
1,
new Parsers.SourceName.Identifier("abc")));
}
[TestMethod]
public void LocalNameDefault2()
{
Verify("Z3abcEd_3abc...",
new Parsers.LocalName.Default(
new Parsers.SourceName.Identifier("abc"),
null,
new Parsers.SourceName.Identifier("abc")));
}
[TestMethod]
public void LocalNameFailures()
{
Assert.IsNull(Parse("A"));
Assert.IsNull(Parse("Z1a"));
Assert.IsNull(Parse("Z1aE"));
Assert.IsNull(Parse("Z"));
Assert.IsNull(Parse(""));
}
internal override IParsingResult Parse(ParsingContext context)
{
return Parsers.LocalName.Parse(context);
}
}
}