public void WhenGettingNameFromGenericTypeDeclarationSyntaxThenIncludesTypeParameters()
{
const string ContainerName = "ContainerType";
var clause = SyntaxFactory.TypeParameter("object");
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.SeparatedList(new[] { clause })),
SyntaxFactory.BaseList(),
SyntaxFactory.List<TypeParameterConstraintClauseSyntax>(),
SyntaxFactory.Token(SyntaxKind.OpenBraceToken),
SyntaxFactory.List<MemberDeclarationSyntax>(),
SyntaxFactory.Token(SyntaxKind.CloseBraceToken),
SyntaxFactory.Token(SyntaxKind.SemicolonToken));
var actualName = declaration.GetName();
Assert.Equal(string.Concat(ContainerName, "<object>"), actualName);
}