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),
95public async Task TestPredefinedType(string type1, string type2, ReferenceType refType)
133public async Task UsingAliasInDeclaration(ReferenceType refType)
173public async Task UsingAliasInDeclaration_PrimitiveType(ReferenceType refType)
213public async Task UsingAliasInDeclaration_RegularType(ReferenceType refType)
253public async Task UsingAliasInDeclaration_GenericType(ReferenceType refType)
293public async Task UsingAliasInDeclaration_RegularTypeWithSameSimpleName(ReferenceType refType)
332public async Task UsingAliasInDeclaration_Namespace(ReferenceType refType)
373public async Task UsingAliasInUsage(ReferenceType refType)
413public async Task RegularType(string typeKind, ReferenceType refType)
452public async Task ObjectType(string typeKind, ReferenceType refType)
499public async Task ValueTupleType(string tupleType, ReferenceType refType)
538public async Task RegularTypeAsBase(string baseType, ReferenceType refType)
587public async Task BoundedGenericType(string type, ReferenceType refType)
634public async Task MatchingTypeParameter(string type, ReferenceType refType)
673[InlineData(ReferenceType.Project)]
674[InlineData(ReferenceType.Metadata)]
676public async Task TestInternalExtensionMethods_NoIVT_InReference(ReferenceType refType)
742var markup = GetMarkup(file2, file1, ReferenceType.None);
751[InlineData(ReferenceType.None)]
752[InlineData(ReferenceType.Project)]
754public async Task TestInternalExtensionMethods_WithIVT(ReferenceType refType)
791public async Task UserDefinedGenericType(ReferenceType refType)
862var markup = GetMarkup(file2, file1, ReferenceType.None);
929var markup = GetMarkup(file2, file1, ReferenceType.Project, currentLanguage: LanguageNames.CSharp, referencedLanguage: LanguageNames.VisualBasic);
1042var markup = GetMarkup(file2, file1, ReferenceType.None);
1092var markup = GetMarkup(file2, file1, ReferenceType.None);
1134var markup = GetMarkup(file2, file1, ReferenceType.None);
1171var markup = GetMarkup(file2, file1, ReferenceType.None);
1232[InlineData(ReferenceType.Project, "public")]
1233[InlineData(ReferenceType.Project, "internal")]
1234[InlineData(ReferenceType.Metadata, "public")] // We don't support internal extension method from non-source references.
1236public async Task TestExtensionMethodsInConflictingTypes(ReferenceType refType, string accessibility)
1275ReferenceType.Project => CreateMarkupForProjectWithProjectReference(srcDoc, refDoc, LanguageNames.CSharp, LanguageNames.CSharp),
1276ReferenceType.Metadata => CreateMarkupForProjectWithMetadataReference(srcDoc, refDoc, LanguageNames.CSharp, LanguageNames.CSharp),
1402[InlineData(ReferenceType.Project, "[]", "ExtentionMethod2")]
1403[InlineData(ReferenceType.Project, "[][]", "ExtentionMethod3")]
1404[InlineData(ReferenceType.Project, "[,]", "ExtentionMethod4")]
1405[InlineData(ReferenceType.Project, "[][,]", "ExtentionMethod5")]
1406[InlineData(ReferenceType.Metadata, "[]", "ExtentionMethod2")]
1407[InlineData(ReferenceType.Metadata, "[][]", "ExtentionMethod3")]
1408[InlineData(ReferenceType.Metadata, "[,]", "ExtentionMethod4")]
1409[InlineData(ReferenceType.Metadata, "[][,]", "ExtentionMethod5")]
1411public async Task TestExtensionMethodsForSimpleArrayType(ReferenceType refType, string rank, string expectedName)
1450ReferenceType.Project => CreateMarkupForProjectWithProjectReference(srcDoc, refDoc, LanguageNames.CSharp, LanguageNames.CSharp),
1451ReferenceType.Metadata => CreateMarkupForProjectWithMetadataReference(srcDoc, refDoc, LanguageNames.CSharp, LanguageNames.CSharp),
1462[InlineData(ReferenceType.Project, "[]", "ExtentionMethod2")]
1463[InlineData(ReferenceType.Project, "[][]", "ExtentionMethod3")]
1464[InlineData(ReferenceType.Project, "[,]", "ExtentionMethod4")]
1465[InlineData(ReferenceType.Project, "[][,]", "ExtentionMethod5")]
1466[InlineData(ReferenceType.Metadata, "[]", "ExtentionMethod2")]
1467[InlineData(ReferenceType.Metadata, "[][]", "ExtentionMethod3")]
1468[InlineData(ReferenceType.Metadata, "[,]", "ExtentionMethod4")]
1469[InlineData(ReferenceType.Metadata, "[][,]", "ExtentionMethod5")]
1471public async Task TestExtensionMethodsForGenericArrayType(ReferenceType refType, string rank, string expectedName)
1510ReferenceType.Project => CreateMarkupForProjectWithProjectReference(srcDoc, refDoc, LanguageNames.CSharp, LanguageNames.CSharp),
1511ReferenceType.Metadata => CreateMarkupForProjectWithMetadataReference(srcDoc, refDoc, LanguageNames.CSharp, LanguageNames.CSharp),
1523[InlineData(ReferenceType.Project)]
1524[InlineData(ReferenceType.Metadata)]
1526public async Task TestGenericReceiverTypeWithConstraint(ReferenceType refType)
1559ReferenceType.Project => CreateMarkupForProjectWithProjectReference(srcDoc, refDoc, LanguageNames.CSharp, LanguageNames.CSharp),
1560ReferenceType.Metadata => CreateMarkupForProjectWithMetadataReference(srcDoc, refDoc, LanguageNames.CSharp, LanguageNames.CSharp),
1571[InlineData(ReferenceType.Project, "(int,int)")]
1572[InlineData(ReferenceType.Project, "(int,int,int,int,int,int,int,int,int,int)")] // more than 8 tuple elements
1573[InlineData(ReferenceType.Metadata, "(int,int)")]
1574[InlineData(ReferenceType.Metadata, "(int,int,int,int,int,int,int,int,int,int)")] // more than 8 tuple elements
1576public async Task TestTupleArray(ReferenceType refType, string tupleType)
1602ReferenceType.Project => CreateMarkupForProjectWithProjectReference(srcDoc, refDoc, LanguageNames.CSharp, LanguageNames.CSharp),
1603ReferenceType.Metadata => CreateMarkupForProjectWithMetadataReference(srcDoc, refDoc, LanguageNames.CSharp, LanguageNames.CSharp),
1614[InlineData(ReferenceType.Project, "(int[],int[])")]
1615[InlineData(ReferenceType.Project, "(int[],int[],int[],int[],int[],int[],int[],int[],int[],int[])")] // more than 8 tuple elements
1616[InlineData(ReferenceType.Metadata, "(int[],int[])")]
1617[InlineData(ReferenceType.Metadata, "(int[],int[],int[],int[],int[],int[],int[],int[],int[],int[])")] // more than 8 tuple elements
1619public async Task TestArrayTuple(ReferenceType refType, string tupleType)
1645ReferenceType.Project => CreateMarkupForProjectWithProjectReference(srcDoc, refDoc, LanguageNames.CSharp, LanguageNames.CSharp),
1646ReferenceType.Metadata => CreateMarkupForProjectWithMetadataReference(srcDoc, refDoc, LanguageNames.CSharp, LanguageNames.CSharp),
1657[InlineData(ReferenceType.Project)]
1658[InlineData(ReferenceType.Metadata)]
1660public async Task TestDescriptionOfGenericReceiverType(ReferenceType refType)
1688ReferenceType.Project => CreateMarkupForProjectWithProjectReference(srcDoc, refDoc, LanguageNames.CSharp, LanguageNames.CSharp),
1689ReferenceType.Metadata => CreateMarkupForProjectWithMetadataReference(srcDoc, refDoc, LanguageNames.CSharp, LanguageNames.CSharp),
1702[InlineData(ReferenceType.Project)]
1703[InlineData(ReferenceType.Metadata)]
1705public async Task TestDescriptionOfOverloads(ReferenceType refType)
1738ReferenceType.Project => CreateMarkupForProjectWithProjectReference(srcDoc, refDoc, LanguageNames.CSharp, LanguageNames.CSharp),
1739ReferenceType.Metadata => CreateMarkupForProjectWithMetadataReference(srcDoc, refDoc, LanguageNames.CSharp, LanguageNames.CSharp),
1759[InlineData(ReferenceType.Project)]
1760[InlineData(ReferenceType.Metadata)]
1762public async Task TestBrowsableAlways(ReferenceType refType)
1793ReferenceType.Project => CreateMarkupForProjectWithProjectReference(srcDoc, refDoc, LanguageNames.CSharp, LanguageNames.CSharp),
1794ReferenceType.Metadata => CreateMarkupForProjectWithMetadataReference(srcDoc, refDoc, LanguageNames.CSharp, LanguageNames.CSharp),
1805[InlineData(ReferenceType.Project)]
1806[InlineData(ReferenceType.Metadata)]
1808public async Task TestBrowsableNever(ReferenceType refType)
1839ReferenceType.Project => (CreateMarkupForProjectWithProjectReference(srcDoc, refDoc, LanguageNames.CSharp, LanguageNames.CSharp), true),
1840ReferenceType.Metadata => (CreateMarkupForProjectWithMetadataReference(srcDoc, refDoc, LanguageNames.CSharp, LanguageNames.CSharp), false),
1861[InlineData(ReferenceType.Project, true)]
1862[InlineData(ReferenceType.Project, false)]
1863[InlineData(ReferenceType.Metadata, true)]
1864[InlineData(ReferenceType.Metadata, false)]
1866public async Task TestBrowsableAdvanced(ReferenceType refType, bool hideAdvanced)
1899(ReferenceType.Project, _) => (CreateMarkupForProjectWithProjectReference(srcDoc, refDoc, LanguageNames.CSharp, LanguageNames.CSharp), true),
1900(ReferenceType.Metadata, true) => (CreateMarkupForProjectWithMetadataReference(srcDoc, refDoc, LanguageNames.CSharp, LanguageNames.CSharp), false),
1901(ReferenceType.Metadata, false) => (CreateMarkupForProjectWithMetadataReference(srcDoc, refDoc, LanguageNames.CSharp, LanguageNames.CSharp), true),