Completion\CompletionProviders\ExtensionMethodImportCompletionProviderTests.cs (111)
43foreach (var refKind in Enum.GetValues(typeof(ReferenceType)))
54=> (new[] { ReferenceType.None, ReferenceType.Project, ReferenceType.Metadata }).Select(refType => new[] { (object)refType });
79private static string GetMarkup(string current, string referenced, ReferenceType refType,
84ReferenceType.None => CreateMarkupForSingleProject(current, referenced, currentLanguage),
85ReferenceType.Project => GetMarkupWithReference(current, referenced, currentLanguage, referencedLanguage, true),
86ReferenceType.Metadata => GetMarkupWithReference(current, referenced, currentLanguage, referencedLanguage, false),
94public async Task TestPredefinedType(string type1, string type2, ReferenceType refType)
133public async Task UsingAliasInDeclaration(ReferenceType refType)
172public async Task UsingAliasInDeclaration_PrimitiveType(ReferenceType refType)
211public async Task UsingAliasInDeclaration_RegularType(ReferenceType refType)
250public async Task UsingAliasInDeclaration_GenericType(ReferenceType refType)
289public async Task UsingAliasInDeclaration_RegularTypeWithSameSimpleName(ReferenceType refType)
327public async Task UsingAliasInDeclaration_Namespace(ReferenceType refType)
367public async Task UsingAliasInUsage(ReferenceType refType)
406public async Task RegularType(string typeKind, ReferenceType refType)
445public async Task ObjectType(string typeKind, ReferenceType refType)
492public async Task ValueTupleType(string tupleType, ReferenceType refType)
532public async Task RegularTypeAsBase(string baseType, ReferenceType refType)
581public async Task BoundedGenericType(string type, ReferenceType refType)
628public async Task MatchingTypeParameter(string type, ReferenceType refType)
669[InlineData(ReferenceType.Project)]
670[InlineData(ReferenceType.Metadata)]
671public async Task TestInternalExtensionMethods_NoIVT_InReference(ReferenceType refType)
737var markup = GetMarkup(file2, file1, ReferenceType.None);
747[InlineData(ReferenceType.None)]
748[InlineData(ReferenceType.Project)]
749public async Task TestInternalExtensionMethods_WithIVT(ReferenceType refType)
785public async Task UserDefinedGenericType(ReferenceType refType)
857var markup = GetMarkup(file2, file1, ReferenceType.None);
925var markup = GetMarkup(file2, file1, ReferenceType.Project, currentLanguage: LanguageNames.CSharp, referencedLanguage: LanguageNames.VisualBasic);
1038var markup = GetMarkup(file2, file1, ReferenceType.None);
1089var markup = GetMarkup(file2, file1, ReferenceType.None);
1132var markup = GetMarkup(file2, file1, ReferenceType.None);
1169var markup = GetMarkup(file2, file1, ReferenceType.None);
1230[InlineData(ReferenceType.Project, "public")]
1231[InlineData(ReferenceType.Project, "internal")]
1232[InlineData(ReferenceType.Metadata, "public")] // We don't support internal extension method from non-source references.
1234public async Task TestExtensionMethodsInConflictingTypes(ReferenceType refType, string accessibility)
1274ReferenceType.Project => CreateMarkupForProjectWithProjectReference(srcDoc, refDoc, LanguageNames.CSharp, LanguageNames.CSharp),
1275ReferenceType.Metadata => CreateMarkupForProjectWithMetadataReference(srcDoc, refDoc, LanguageNames.CSharp, LanguageNames.CSharp),
1404[InlineData(ReferenceType.Project, "[]", "ExtentionMethod2")]
1405[InlineData(ReferenceType.Project, "[][]", "ExtentionMethod3")]
1406[InlineData(ReferenceType.Project, "[,]", "ExtentionMethod4")]
1407[InlineData(ReferenceType.Project, "[][,]", "ExtentionMethod5")]
1408[InlineData(ReferenceType.Metadata, "[]", "ExtentionMethod2")]
1409[InlineData(ReferenceType.Metadata, "[][]", "ExtentionMethod3")]
1410[InlineData(ReferenceType.Metadata, "[,]", "ExtentionMethod4")]
1411[InlineData(ReferenceType.Metadata, "[][,]", "ExtentionMethod5")]
1412public async Task TestExtensionMethodsForSimpleArrayType(ReferenceType refType, string rank, string expectedName)
1453ReferenceType.Project => CreateMarkupForProjectWithProjectReference(srcDoc, refDoc, LanguageNames.CSharp, LanguageNames.CSharp),
1454ReferenceType.Metadata => CreateMarkupForProjectWithMetadataReference(srcDoc, refDoc, LanguageNames.CSharp, LanguageNames.CSharp),
1466[InlineData(ReferenceType.Project, "[]", "ExtentionMethod2")]
1467[InlineData(ReferenceType.Project, "[][]", "ExtentionMethod3")]
1468[InlineData(ReferenceType.Project, "[,]", "ExtentionMethod4")]
1469[InlineData(ReferenceType.Project, "[][,]", "ExtentionMethod5")]
1470[InlineData(ReferenceType.Metadata, "[]", "ExtentionMethod2")]
1471[InlineData(ReferenceType.Metadata, "[][]", "ExtentionMethod3")]
1472[InlineData(ReferenceType.Metadata, "[,]", "ExtentionMethod4")]
1473[InlineData(ReferenceType.Metadata, "[][,]", "ExtentionMethod5")]
1474public async Task TestExtensionMethodsForGenericArrayType(ReferenceType refType, string rank, string expectedName)
1515ReferenceType.Project => CreateMarkupForProjectWithProjectReference(srcDoc, refDoc, LanguageNames.CSharp, LanguageNames.CSharp),
1516ReferenceType.Metadata => CreateMarkupForProjectWithMetadataReference(srcDoc, refDoc, LanguageNames.CSharp, LanguageNames.CSharp),
1529[InlineData(ReferenceType.Project)]
1530[InlineData(ReferenceType.Metadata)]
1531public async Task TestGenericReceiverTypeWithConstraint(ReferenceType refType)
1564ReferenceType.Project => CreateMarkupForProjectWithProjectReference(srcDoc, refDoc, LanguageNames.CSharp, LanguageNames.CSharp),
1565ReferenceType.Metadata => CreateMarkupForProjectWithMetadataReference(srcDoc, refDoc, LanguageNames.CSharp, LanguageNames.CSharp),
1577[InlineData(ReferenceType.Project, "(int,int)")]
1578[InlineData(ReferenceType.Project, "(int,int,int,int,int,int,int,int,int,int)")] // more than 8 tuple elements
1579[InlineData(ReferenceType.Metadata, "(int,int)")]
1580[InlineData(ReferenceType.Metadata, "(int,int,int,int,int,int,int,int,int,int)")] // more than 8 tuple elements
1581public async Task TestTupleArray(ReferenceType refType, string tupleType)
1609ReferenceType.Project => CreateMarkupForProjectWithProjectReference(srcDoc, refDoc, LanguageNames.CSharp, LanguageNames.CSharp),
1610ReferenceType.Metadata => CreateMarkupForProjectWithMetadataReference(srcDoc, refDoc, LanguageNames.CSharp, LanguageNames.CSharp),
1622[InlineData(ReferenceType.Project, "(int[],int[])")]
1623[InlineData(ReferenceType.Project, "(int[],int[],int[],int[],int[],int[],int[],int[],int[],int[])")] // more than 8 tuple elements
1624[InlineData(ReferenceType.Metadata, "(int[],int[])")]
1625[InlineData(ReferenceType.Metadata, "(int[],int[],int[],int[],int[],int[],int[],int[],int[],int[])")] // more than 8 tuple elements
1626public async Task TestArrayTuple(ReferenceType refType, string tupleType)
1654ReferenceType.Project => CreateMarkupForProjectWithProjectReference(srcDoc, refDoc, LanguageNames.CSharp, LanguageNames.CSharp),
1655ReferenceType.Metadata => CreateMarkupForProjectWithMetadataReference(srcDoc, refDoc, LanguageNames.CSharp, LanguageNames.CSharp),
1667[InlineData(ReferenceType.Project)]
1668[InlineData(ReferenceType.Metadata)]
1669public async Task TestDescriptionOfGenericReceiverType(ReferenceType refType)
1697ReferenceType.Project => CreateMarkupForProjectWithProjectReference(srcDoc, refDoc, LanguageNames.CSharp, LanguageNames.CSharp),
1698ReferenceType.Metadata => CreateMarkupForProjectWithMetadataReference(srcDoc, refDoc, LanguageNames.CSharp, LanguageNames.CSharp),
1712[InlineData(ReferenceType.Project)]
1713[InlineData(ReferenceType.Metadata)]
1714public async Task TestDescriptionOfOverloads(ReferenceType refType)
1747ReferenceType.Project => CreateMarkupForProjectWithProjectReference(srcDoc, refDoc, LanguageNames.CSharp, LanguageNames.CSharp),
1748ReferenceType.Metadata => CreateMarkupForProjectWithMetadataReference(srcDoc, refDoc, LanguageNames.CSharp, LanguageNames.CSharp),
1768[InlineData(ReferenceType.Project)]
1769[InlineData(ReferenceType.Metadata)]
1771public async Task TestBrowsableAlways(ReferenceType refType)
1802ReferenceType.Project => CreateMarkupForProjectWithProjectReference(srcDoc, refDoc, LanguageNames.CSharp, LanguageNames.CSharp),
1803ReferenceType.Metadata => CreateMarkupForProjectWithMetadataReference(srcDoc, refDoc, LanguageNames.CSharp, LanguageNames.CSharp),
1814[InlineData(ReferenceType.Project)]
1815[InlineData(ReferenceType.Metadata)]
1817public async Task TestBrowsableNever(ReferenceType refType)
1848ReferenceType.Project => (CreateMarkupForProjectWithProjectReference(srcDoc, refDoc, LanguageNames.CSharp, LanguageNames.CSharp), true),
1849ReferenceType.Metadata => (CreateMarkupForProjectWithMetadataReference(srcDoc, refDoc, LanguageNames.CSharp, LanguageNames.CSharp), false),
1870[InlineData(ReferenceType.Project, true)]
1871[InlineData(ReferenceType.Project, false)]
1872[InlineData(ReferenceType.Metadata, true)]
1873[InlineData(ReferenceType.Metadata, false)]
1875public async Task TestBrowsableAdvanced(ReferenceType refType, bool hideAdvanced)
1908(ReferenceType.Project, _) => (CreateMarkupForProjectWithProjectReference(srcDoc, refDoc, LanguageNames.CSharp, LanguageNames.CSharp), true),
1909(ReferenceType.Metadata, true) => (CreateMarkupForProjectWithMetadataReference(srcDoc, refDoc, LanguageNames.CSharp, LanguageNames.CSharp), false),
1910(ReferenceType.Metadata, false) => (CreateMarkupForProjectWithMetadataReference(srcDoc, refDoc, LanguageNames.CSharp, LanguageNames.CSharp), true),