public void WhenGettingNameFromNestedTypeDeclarationSyntaxThenGetsFullName()
{
const string ContainerName = "ContainerType";
const string InnerName = "InnerType";
var innerType = SyntaxFactory.TypeDeclaration(SyntaxKind.ClassDeclaration, SyntaxFactory.Identifier(InnerName));
var declaration = SyntaxFactory.TypeDeclaration(
SyntaxKind.ClassDeclaration,
SyntaxFactory.List<AttributeListSyntax>(),
SyntaxFactory.TokenList(SyntaxFactory.Token(SyntaxKind.PublicKeyword)),
SyntaxFactory.Token(SyntaxKind.ClassKeyword),
SyntaxFactory.Identifier(ContainerName),
SyntaxFactory.TypeParameterList(),
SyntaxFactory.BaseList(),
SyntaxFactory.List<TypeParameterConstraintClauseSyntax>(),
SyntaxFactory.Token(SyntaxKind.OpenBraceToken),
SyntaxFactory.List<MemberDeclarationSyntax>(new[] { innerType }),
SyntaxFactory.Token(SyntaxKind.CloseBraceToken),
SyntaxFactory.Token(SyntaxKind.SemicolonToken));
var actualName = declaration.DescendantNodes().OfType<TypeDeclarationSyntax>().First().GetName();
Assert.Equal(string.Concat(ContainerName, ".", InnerName), actualName);
}