public void WhenGettingQualifiedNameFromITypeSymbolWithAssemblyInfoThenReturnsNameWithNamespaceAndAssembly()
{
var containingAssembly = new Mock<IAssemblySymbol>();
containingAssembly.SetupGet(x => x.Name).Returns("MyAssembly");
var globalNamespace = new Mock<INamespaceSymbol>();
globalNamespace.SetupGet(x => x.Kind).Returns(SymbolKind.Namespace);
globalNamespace.SetupGet(x => x.IsGlobalNamespace).Returns(true);
globalNamespace.SetupGet(x => x.ContainingAssembly).Returns(containingAssembly.Object);
var containingNamespace = new Mock<INamespaceSymbol>();
containingNamespace.SetupGet(x => x.Name).Returns("MyNamespace");
containingNamespace.SetupGet(x => x.IsGlobalNamespace).Returns(false);
containingNamespace.SetupGet(x => x.Kind).Returns(SymbolKind.Namespace);
containingNamespace.SetupGet(x => x.ContainingSymbol).Returns(globalNamespace.Object);
var mockTypeParameter = new Mock<ITypeParameterSymbol>();
mockTypeParameter.SetupGet(x => x.Name).Returns("object");
var readOnlyArray = ImmutableArray.Create(mockTypeParameter.Object);
var mockTypeSymbol = new Mock<INamedTypeSymbol>();
mockTypeSymbol.SetupGet(x => x.Name).Returns("TypeName");
mockTypeSymbol.SetupGet(x => x.ContainingSymbol).Returns(containingNamespace.Object);
mockTypeSymbol.SetupGet(x => x.TypeParameters).Returns(readOnlyArray);
const string ExpectedQualifiedName = "MyNamespace.TypeName<object>, MyAssembly";
var actualQualifiedName = mockTypeSymbol.Object.GetQualifiedName();
Assert.Equal(ExpectedQualifiedName, actualQualifiedName.ToString());
}
}