From d20850202fc5318fd372bc8060faab12da2a9ac1 Mon Sep 17 00:00:00 2001 From: Viktor Hofer Date: Fri, 8 Feb 2019 13:56:54 +0100 Subject: [PATCH] Remove InternalsVisibleTo from S.C.C.Registration (dotnet/corefx#35144) * Remove InternalsVisibleTo from S.C.C.Registration * Disable failing uapaot tests Commit migrated from https://github.com/dotnet/corefx/commit/ef534fccfbafe75a75f88a5d78d6bfddcf44f2f3 --- .../src/Properties/InternalsVisibleTo.cs | 7 --- ....ComponentModel.Composition.Registration.csproj | 2 - .../tests/InternalCalls.cs | 68 ++++++++++++++++++++++ ...nentModel.Composition.Registration.Tests.csproj | 6 +- .../Composition/Registration/ExportBuilderTests.cs | 1 + .../Registration/ExportBuilderUnitTests.cs | 4 ++ .../Composition/Registration/ImportBuilderTests.cs | 1 + .../Registration/PartBuilderInheritanceTests.cs | 12 ++-- .../Registration/PartBuilderInterfaceTests.cs | 2 + .../Registration/PartBuilderOfTInheritanceTests.cs | 11 ++-- .../Registration/PartBuilderOfTTests.cs | 41 ++++++++----- .../Composition/Registration/PartBuilderTests.cs | 45 +++++++++----- .../Registration/PartBuilderUnitTests.cs | 6 ++ .../RegistrationBuilderExportFuncTests.cs | 1 + .../Registration/RegistrationBuilderTests.cs | 6 ++ 15 files changed, 159 insertions(+), 54 deletions(-) delete mode 100644 src/libraries/System.ComponentModel.Composition.Registration/src/Properties/InternalsVisibleTo.cs create mode 100644 src/libraries/System.ComponentModel.Composition.Registration/tests/InternalCalls.cs diff --git a/src/libraries/System.ComponentModel.Composition.Registration/src/Properties/InternalsVisibleTo.cs b/src/libraries/System.ComponentModel.Composition.Registration/src/Properties/InternalsVisibleTo.cs deleted file mode 100644 index ec092ec..0000000 --- a/src/libraries/System.ComponentModel.Composition.Registration/src/Properties/InternalsVisibleTo.cs +++ /dev/null @@ -1,7 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System.Runtime.CompilerServices; - -[assembly: InternalsVisibleTo("System.ComponentModel.Composition.Registration.Tests, PublicKey=00240000048000009400000006020000002400005253413100040000010001004b86c4cb78549b34bab61a3b1800e23bfeb5b3ec390074041536a7e3cbd97f5f04cf0f857155a8928eaa29ebfd11cfbbad3ba70efea7bda3226c6a8d370a4cd303f714486b6ebc225985a638471e6ef571cc92a4613c00b8fa65d61ccee0cbe5f36330c9a01f4183559f1bef24cc2917c6d913e3a541333a1d05d9bed22b38cb")] diff --git a/src/libraries/System.ComponentModel.Composition.Registration/src/System.ComponentModel.Composition.Registration.csproj b/src/libraries/System.ComponentModel.Composition.Registration/src/System.ComponentModel.Composition.Registration.csproj index 9867c0b..cfbb9e8 100644 --- a/src/libraries/System.ComponentModel.Composition.Registration/src/System.ComponentModel.Composition.Registration.csproj +++ b/src/libraries/System.ComponentModel.Composition.Registration/src/System.ComponentModel.Composition.Registration.csproj @@ -5,9 +5,7 @@ SR.PlatformNotSupported_ComponentModel_Composition_Registration netcoreapp-Debug;netcoreapp-Release;netstandard-Debug;netstandard-Release;uap-Debug;uap-Release - - diff --git a/src/libraries/System.ComponentModel.Composition.Registration/tests/InternalCalls.cs b/src/libraries/System.ComponentModel.Composition.Registration/tests/InternalCalls.cs new file mode 100644 index 0000000..da1de87 --- /dev/null +++ b/src/libraries/System.ComponentModel.Composition.Registration/tests/InternalCalls.cs @@ -0,0 +1,68 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Collections.Generic; +using System.Reflection; + +namespace System.ComponentModel.Composition.Registration.Tests +{ + public static class InternalCalls + { + public static void BuildAttributes(this ExportBuilder builder, Type type, ref List attributes) + { + builder.GetType() + .GetMethod(nameof(BuildAttributes), BindingFlags.NonPublic | BindingFlags.Instance) + .Invoke(builder, new object[] { type, attributes }); + } + + public static void BuildAttributes(this ImportBuilder builder, Type type, ref List attributes) + { + builder.GetType() + .GetMethod(nameof(BuildAttributes), BindingFlags.NonPublic | BindingFlags.Instance) + .Invoke(builder, new object[] { type, attributes }); + } + + public static PartBuilder PartBuilder(Predicate selectType) + { + return (PartBuilder)typeof(PartBuilder) + .GetConstructor(BindingFlags.NonPublic | BindingFlags.Instance, null, new Type[] { typeof(Predicate) }, null) + .Invoke(new object[] { selectType }); + } + + public static PartBuilder PartBuilder(Predicate selectType) + { + return (PartBuilder)typeof(PartBuilder) + .GetConstructor(BindingFlags.NonPublic | BindingFlags.Instance, null, new Type[] { typeof(Predicate) }, null) + .Invoke(new object[] { selectType }); + } + + public static IEnumerable BuildTypeAttributes(this PartBuilder builder, Type type) + { + return (IEnumerable)builder.GetType() + .GetMethod(nameof(BuildTypeAttributes), BindingFlags.NonPublic | BindingFlags.Instance) + .Invoke(builder, new object[] { type }); + } + + public static bool BuildConstructorAttributes(this PartBuilder builder, Type type, ref List>> configuredMembers) + { + return (bool)builder.GetType() + .GetMethod(nameof(BuildConstructorAttributes), BindingFlags.NonPublic | BindingFlags.Instance) + .Invoke(builder, new object[] { type, configuredMembers }); + } + + public static void BuildPropertyAttributes(this PartBuilder builder, Type type, ref List>> configuredMembers) + { + builder.GetType() + .GetMethod(nameof(BuildPropertyAttributes), BindingFlags.NonPublic | BindingFlags.Instance) + .Invoke(builder, new object[] { type, configuredMembers }); + } + + public static void PartBuilder_BuildDefaultConstructorAttributes(Type type, ref List>> configuredMembers) + { + typeof(PartBuilder) + .GetMethod("BuildDefaultConstructorAttributes", BindingFlags.NonPublic | BindingFlags.Static) + .Invoke(null, new object[] { type, configuredMembers }); + } + } +} diff --git a/src/libraries/System.ComponentModel.Composition.Registration/tests/System.ComponentModel.Composition.Registration.Tests.csproj b/src/libraries/System.ComponentModel.Composition.Registration/tests/System.ComponentModel.Composition.Registration.Tests.csproj index 7907b51..c691136 100644 --- a/src/libraries/System.ComponentModel.Composition.Registration/tests/System.ComponentModel.Composition.Registration.Tests.csproj +++ b/src/libraries/System.ComponentModel.Composition.Registration/tests/System.ComponentModel.Composition.Registration.Tests.csproj @@ -5,11 +5,7 @@ netcoreapp-Debug;netcoreapp-Release;uap-Debug;uap-Release - - - - - + diff --git a/src/libraries/System.ComponentModel.Composition.Registration/tests/System/ComponentModel/Composition/Registration/ExportBuilderTests.cs b/src/libraries/System.ComponentModel.Composition.Registration/tests/System/ComponentModel/Composition/Registration/ExportBuilderTests.cs index 37a098c..a36f852 100644 --- a/src/libraries/System.ComponentModel.Composition.Registration/tests/System/ComponentModel/Composition/Registration/ExportBuilderTests.cs +++ b/src/libraries/System.ComponentModel.Composition.Registration/tests/System/ComponentModel/Composition/Registration/ExportBuilderTests.cs @@ -7,6 +7,7 @@ using Xunit; namespace System.ComponentModel.Composition.Registration.Tests { + [SkipOnTargetFramework(TargetFrameworkMonikers.UapAot, "Reflection based tests")] public class ExportBuilderTests { interface IFoo { } diff --git a/src/libraries/System.ComponentModel.Composition.Registration/tests/System/ComponentModel/Composition/Registration/ExportBuilderUnitTests.cs b/src/libraries/System.ComponentModel.Composition.Registration/tests/System/ComponentModel/Composition/Registration/ExportBuilderUnitTests.cs index 1b7ac8d..a0451d3 100644 --- a/src/libraries/System.ComponentModel.Composition.Registration/tests/System/ComponentModel/Composition/Registration/ExportBuilderUnitTests.cs +++ b/src/libraries/System.ComponentModel.Composition.Registration/tests/System/ComponentModel/Composition/Registration/ExportBuilderUnitTests.cs @@ -68,6 +68,7 @@ namespace System.ComponentModel.Composition.Registration.Tests } [Fact] + [ActiveIssue(35144, TargetFrameworkMonikers.UapAot)] public void ExportInterfaceWithTypeOf1() { var ctx = new RegistrationBuilder(); @@ -83,6 +84,7 @@ namespace System.ComponentModel.Composition.Registration.Tests } [Fact] + [ActiveIssue(35144, TargetFrameworkMonikers.UapAot)] public void ExportInterfaceWithTypeOf2() { var ctx = new RegistrationBuilder(); @@ -98,6 +100,7 @@ namespace System.ComponentModel.Composition.Registration.Tests } [Fact] + [ActiveIssue(35144, TargetFrameworkMonikers.UapAot)] public void ExportInheritedInterfaceWithImplements1() { var ctx = new RegistrationBuilder(); @@ -113,6 +116,7 @@ namespace System.ComponentModel.Composition.Registration.Tests } [Fact] + [ActiveIssue(35144, TargetFrameworkMonikers.UapAot)] public void ExportInheritedInterfaceWithImplements2() { var ctx = new RegistrationBuilder(); diff --git a/src/libraries/System.ComponentModel.Composition.Registration/tests/System/ComponentModel/Composition/Registration/ImportBuilderTests.cs b/src/libraries/System.ComponentModel.Composition.Registration/tests/System/ComponentModel/Composition/Registration/ImportBuilderTests.cs index 41290bd..d005b62 100644 --- a/src/libraries/System.ComponentModel.Composition.Registration/tests/System/ComponentModel/Composition/Registration/ImportBuilderTests.cs +++ b/src/libraries/System.ComponentModel.Composition.Registration/tests/System/ComponentModel/Composition/Registration/ImportBuilderTests.cs @@ -7,6 +7,7 @@ using Xunit; namespace System.ComponentModel.Composition.Registration.Tests { + [SkipOnTargetFramework(TargetFrameworkMonikers.UapAot, "Reflection based tests")] public class ImportBuilderTests { interface IFoo { } diff --git a/src/libraries/System.ComponentModel.Composition.Registration/tests/System/ComponentModel/Composition/Registration/PartBuilderInheritanceTests.cs b/src/libraries/System.ComponentModel.Composition.Registration/tests/System/ComponentModel/Composition/Registration/PartBuilderInheritanceTests.cs index e193655..a1cccc2 100644 --- a/src/libraries/System.ComponentModel.Composition.Registration/tests/System/ComponentModel/Composition/Registration/PartBuilderInheritanceTests.cs +++ b/src/libraries/System.ComponentModel.Composition.Registration/tests/System/ComponentModel/Composition/Registration/PartBuilderInheritanceTests.cs @@ -8,6 +8,7 @@ using Xunit; namespace System.ComponentModel.Composition.Registration.Tests { + [SkipOnTargetFramework(TargetFrameworkMonikers.UapAot, "Reflection based tests")] public class PartBuilderInheritanceTests { private abstract class BaseClass @@ -26,7 +27,7 @@ namespace System.ComponentModel.Composition.Registration.Tests [Fact] public void ImportPropertyTargetingBaseClass_ShouldGenerateImportForPropertySelected() { - var builder = new PartBuilder(t => true); + var builder = InternalCalls.PartBuilder(t => true); builder.ImportProperties(p => p.Name == "P2"); // P2 is string IEnumerable typeAtts; @@ -51,7 +52,7 @@ namespace System.ComponentModel.Composition.Registration.Tests [Fact] public void ImportPropertyTargetingBaseClass_ShouldGenerateImportManyForPropertySelected() { - var builder = new PartBuilder(t => true); + var builder = InternalCalls.PartBuilder(t => true); builder.ImportProperties(p => p.Name == "P3"); // P3 is IEnumerable IEnumerable typeAtts; @@ -76,7 +77,7 @@ namespace System.ComponentModel.Composition.Registration.Tests [Fact] public void ImportPropertyTargetingDerivedClass_ShouldGenerateImportForPropertySelected() { - var builder = new PartBuilder(t => true); + var builder = InternalCalls.PartBuilder(t => true); builder.ImportProperties(p => p.Name == "P4"); // P4 is string IEnumerable typeAtts; @@ -101,7 +102,7 @@ namespace System.ComponentModel.Composition.Registration.Tests [Fact] public void ExportPropertyTargetingDerivedClass_ShouldGenerateExportForPropertySelected() { - var builder = new PartBuilder(t => true); + var builder = InternalCalls.PartBuilder(t => true); builder.ExportProperties(p => p.Name == "P4"); // P4 is string IEnumerable typeAtts; @@ -126,7 +127,7 @@ namespace System.ComponentModel.Composition.Registration.Tests [Fact] public void ExportPropertyTargetingBaseClass_ShouldGenerateExportForPropertySelected() { - var builder = new PartBuilder(t => true); + var builder = InternalCalls.PartBuilder(t => true); builder.ExportProperties(p => p.Name == "P2"); // P2 is string IEnumerable typeAtts; @@ -148,7 +149,6 @@ namespace System.ComponentModel.Composition.Registration.Tests Assert.Null(exportAttribute.ContractType); } - private static void GetConfiguredMembers(PartBuilder builder, out List>> configuredMembers, out IEnumerable typeAtts, Type targetType) diff --git a/src/libraries/System.ComponentModel.Composition.Registration/tests/System/ComponentModel/Composition/Registration/PartBuilderInterfaceTests.cs b/src/libraries/System.ComponentModel.Composition.Registration/tests/System/ComponentModel/Composition/Registration/PartBuilderInterfaceTests.cs index 4992206..62014e8 100644 --- a/src/libraries/System.ComponentModel.Composition.Registration/tests/System/ComponentModel/Composition/Registration/PartBuilderInterfaceTests.cs +++ b/src/libraries/System.ComponentModel.Composition.Registration/tests/System/ComponentModel/Composition/Registration/PartBuilderInterfaceTests.cs @@ -48,6 +48,7 @@ namespace System.ComponentModel.Composition.Registration.Tests } [Fact] + [ActiveIssue(35144, TargetFrameworkMonikers.UapAot)] public void StandardExportInterfacesShouldWork() { var builder = new RegistrationBuilder(); @@ -82,6 +83,7 @@ namespace System.ComponentModel.Composition.Registration.Tests } [Fact] + [ActiveIssue(35144, TargetFrameworkMonikers.UapAot)] public void StandardExportInterfacesDefaultContractShouldWork() { //Same test as above only using default export builder var builder = new RegistrationBuilder(); diff --git a/src/libraries/System.ComponentModel.Composition.Registration/tests/System/ComponentModel/Composition/Registration/PartBuilderOfTInheritanceTests.cs b/src/libraries/System.ComponentModel.Composition.Registration/tests/System/ComponentModel/Composition/Registration/PartBuilderOfTInheritanceTests.cs index e108a6b..c64e4bc 100644 --- a/src/libraries/System.ComponentModel.Composition.Registration/tests/System/ComponentModel/Composition/Registration/PartBuilderOfTInheritanceTests.cs +++ b/src/libraries/System.ComponentModel.Composition.Registration/tests/System/ComponentModel/Composition/Registration/PartBuilderOfTInheritanceTests.cs @@ -8,6 +8,7 @@ using Xunit; namespace System.ComponentModel.Composition.Registration.Tests { + [SkipOnTargetFramework(TargetFrameworkMonikers.UapAot, "Reflection based tests")] public class PartBuilderOfTInheritanceTests { private abstract class BaseClass @@ -26,7 +27,7 @@ namespace System.ComponentModel.Composition.Registration.Tests [Fact] public void ImportPropertyTargetingBaseClass_ShouldGenerateImportForPropertySelected() { - var builder = new PartBuilder(t => true); + var builder = InternalCalls.PartBuilder(t => true); builder.ImportProperty(p => p.P2); // P2 is string IEnumerable typeAtts; @@ -51,7 +52,7 @@ namespace System.ComponentModel.Composition.Registration.Tests [Fact] public void ImportPropertyTargetingBaseClass_ShouldGenerateImportManyForPropertySelected() { - var builder = new PartBuilder(t => true); + var builder = InternalCalls.PartBuilder(t => true); builder.ImportProperty(p => p.P3); // P3 is IEnumerable IEnumerable typeAtts; @@ -76,7 +77,7 @@ namespace System.ComponentModel.Composition.Registration.Tests [Fact] public void ImportPropertyTargetingDerivedClass_ShouldGenerateImportForPropertySelected() { - var builder = new PartBuilder(t => true); + var builder = InternalCalls.PartBuilder(t => true); builder.ImportProperty(p => p.P4); // P4 is string IEnumerable typeAtts; @@ -101,7 +102,7 @@ namespace System.ComponentModel.Composition.Registration.Tests [Fact] public void ExportPropertyTargetingDerivedClass_ShouldGenerateExportForPropertySelected() { - var builder = new PartBuilder(t => true); + var builder = InternalCalls.PartBuilder(t => true); builder.ExportProperty(p => p.P4); // P4 is string IEnumerable typeAtts; @@ -126,7 +127,7 @@ namespace System.ComponentModel.Composition.Registration.Tests [Fact] public void ExportPropertyTargetingBaseClass_ShouldGenerateExportForPropertySelected() { - var builder = new PartBuilder(t => true); + var builder = InternalCalls.PartBuilder(t => true); builder.ExportProperty(p => p.P2); // P2 is string IEnumerable typeAtts; diff --git a/src/libraries/System.ComponentModel.Composition.Registration/tests/System/ComponentModel/Composition/Registration/PartBuilderOfTTests.cs b/src/libraries/System.ComponentModel.Composition.Registration/tests/System/ComponentModel/Composition/Registration/PartBuilderOfTTests.cs index f4eecd2..b0af90f 100644 --- a/src/libraries/System.ComponentModel.Composition.Registration/tests/System/ComponentModel/Composition/Registration/PartBuilderOfTTests.cs +++ b/src/libraries/System.ComponentModel.Composition.Registration/tests/System/ComponentModel/Composition/Registration/PartBuilderOfTTests.cs @@ -30,9 +30,10 @@ namespace System.ComponentModel.Composition.Registration.Tests } [Fact] + [SkipOnTargetFramework(TargetFrameworkMonikers.UapAot, "Reflection based tests")] public void NoOperations_ShouldGenerateNoAttributes() { - var builder = new PartBuilder(t => true); + var builder = InternalCalls.PartBuilder(t => true); IEnumerable typeAtts; List>> configuredMembers; @@ -43,9 +44,10 @@ namespace System.ComponentModel.Composition.Registration.Tests } [Fact] + [SkipOnTargetFramework(TargetFrameworkMonikers.UapAot, "Reflection based tests")] public void ExportSelf_ShouldGenerateSingleExportAttribute() { - var builder = new PartBuilder(t => true); + var builder = InternalCalls.PartBuilder(t => true); builder.Export(); IEnumerable typeAtts; @@ -60,9 +62,10 @@ namespace System.ComponentModel.Composition.Registration.Tests } [Fact] + [SkipOnTargetFramework(TargetFrameworkMonikers.UapAot, "Reflection based tests")] public void ExportOfT_ShouldGenerateSingleExportAttributeWithContractType() { - var builder = new PartBuilder(t => true); + var builder = InternalCalls.PartBuilder(t => true); builder.Export(); IEnumerable typeAtts; @@ -77,9 +80,10 @@ namespace System.ComponentModel.Composition.Registration.Tests } [Fact] + [SkipOnTargetFramework(TargetFrameworkMonikers.UapAot, "Reflection based tests")] public void AddMetadata_ShouldGeneratePartMetadataAttribute() { - var builder = new PartBuilder(t => true); + var builder = InternalCalls.PartBuilder(t => true); builder.Export().AddMetadata("name", "value"); IEnumerable typeAtts; @@ -98,9 +102,10 @@ namespace System.ComponentModel.Composition.Registration.Tests } [Fact] + [SkipOnTargetFramework(TargetFrameworkMonikers.UapAot, "Reflection based tests")] public void AddMetadataWithFunc_ShouldGeneratePartMetadataAttribute() { - var builder = new PartBuilder(t => true); + var builder = InternalCalls.PartBuilder(t => true); builder.Export().AddMetadata("name", t => t.Name); IEnumerable typeAtts; @@ -119,9 +124,10 @@ namespace System.ComponentModel.Composition.Registration.Tests } [Fact] + [SkipOnTargetFramework(TargetFrameworkMonikers.UapAot, "Reflection based tests")] public void ExportProperty_ShouldGenerateExportForPropertySelected() { - var builder = new PartBuilder(t => true); + var builder = InternalCalls.PartBuilder(t => true); builder.ExportProperty(p => p.P1).Export(); IEnumerable typeAtts; @@ -143,9 +149,10 @@ namespace System.ComponentModel.Composition.Registration.Tests } [Fact] + [SkipOnTargetFramework(TargetFrameworkMonikers.UapAot, "Reflection based tests")] public void ImportProperty_ShouldGenerateImportForPropertySelected() { - var builder = new PartBuilder(t => true); + var builder = InternalCalls.PartBuilder(t => true); builder.ImportProperty(p => p.P2).Export(); // P2 is string IEnumerable typeAtts; @@ -168,9 +175,10 @@ namespace System.ComponentModel.Composition.Registration.Tests } [Fact] + [SkipOnTargetFramework(TargetFrameworkMonikers.UapAot, "Reflection based tests")] public void ImportProperty_ShouldGenerateImportForPropertySelected_And_ApplyImportMany() { - var builder = new PartBuilder(t => true); + var builder = InternalCalls.PartBuilder(t => true); builder.ImportProperty(p => p.P3).Export(); // P3 is IEnumerable IEnumerable typeAtts; @@ -193,9 +201,10 @@ namespace System.ComponentModel.Composition.Registration.Tests } [Fact] + [SkipOnTargetFramework(TargetFrameworkMonikers.UapAot, "Reflection based tests")] public void ExportPropertyWithConfiguration_ShouldGenerateExportForPropertySelected() { - var builder = new PartBuilder(t => true); + var builder = InternalCalls.PartBuilder(t => true); builder.ExportProperty(p => p.P1, c => c.AsContractName("hey")) .Export(); @@ -218,9 +227,10 @@ namespace System.ComponentModel.Composition.Registration.Tests } [Fact] + [SkipOnTargetFramework(TargetFrameworkMonikers.UapAot, "Reflection based tests")] public void ExportPropertyOfT_ShouldGenerateExportForPropertySelectedWithTAsContractType() { - var builder = new PartBuilder(t => true); + var builder = InternalCalls.PartBuilder(t => true); builder. ExportProperty(p => p.P1). Export(); @@ -244,9 +254,10 @@ namespace System.ComponentModel.Composition.Registration.Tests } [Fact] + [SkipOnTargetFramework(TargetFrameworkMonikers.UapAot, "Reflection based tests")] public void ConventionSelectsConstructor_SelectsTheOneWithMostParameters() { - var builder = new PartBuilder(t => true); + var builder = InternalCalls.PartBuilder(t => true); builder.Export(); IEnumerable typeAtts; @@ -277,9 +288,10 @@ namespace System.ComponentModel.Composition.Registration.Tests } [Fact] + [SkipOnTargetFramework(TargetFrameworkMonikers.UapAot, "Reflection based tests")] public void ManuallySelectingConstructor_SelectsTheExplicitOne() { - var builder = new PartBuilder(t => true); + var builder = InternalCalls.PartBuilder(t => true); builder. SelectConstructor(param => new FooImplWithConstructors(param.Import>())). Export(); @@ -305,9 +317,10 @@ namespace System.ComponentModel.Composition.Registration.Tests } [Fact] + [SkipOnTargetFramework(TargetFrameworkMonikers.UapAot, "Reflection based tests")] public void ManuallySelectingConstructor_SelectsTheExplicitOne_IEnumerableParameterBecomesImportMany() { - var builder = new PartBuilder(t => true); + var builder = InternalCalls.PartBuilder(t => true); builder. SelectConstructor(param => new FooImplWithConstructors(param.Import>())). Export(); @@ -341,7 +354,7 @@ namespace System.ComponentModel.Composition.Registration.Tests typeAtts = builder.BuildTypeAttributes(targetType); if (!builder.BuildConstructorAttributes(targetType, ref configuredMembers)) { - PartBuilder.BuildDefaultConstructorAttributes(targetType, ref configuredMembers); + InternalCalls.PartBuilder_BuildDefaultConstructorAttributes(targetType, ref configuredMembers); } builder.BuildPropertyAttributes(targetType, ref configuredMembers); } diff --git a/src/libraries/System.ComponentModel.Composition.Registration/tests/System/ComponentModel/Composition/Registration/PartBuilderTests.cs b/src/libraries/System.ComponentModel.Composition.Registration/tests/System/ComponentModel/Composition/Registration/PartBuilderTests.cs index abc4253..e464e3f 100644 --- a/src/libraries/System.ComponentModel.Composition.Registration/tests/System/ComponentModel/Composition/Registration/PartBuilderTests.cs +++ b/src/libraries/System.ComponentModel.Composition.Registration/tests/System/ComponentModel/Composition/Registration/PartBuilderTests.cs @@ -53,9 +53,10 @@ namespace System.ComponentModel.Composition.Registration.Tests } [Fact] + [SkipOnTargetFramework(TargetFrameworkMonikers.UapAot, "Reflection based tests")] public void NoOperations_ShouldGenerateNoAttributes() { - var builder = new PartBuilder(t => true); + var builder = InternalCalls.PartBuilder(t => true); IEnumerable typeAtts; List>> configuredMembers; @@ -66,9 +67,10 @@ namespace System.ComponentModel.Composition.Registration.Tests } [Fact] + [SkipOnTargetFramework(TargetFrameworkMonikers.UapAot, "Reflection based tests")] public void ExportSelf_ShouldGenerateSingleExportAttribute() { - var builder = new PartBuilder(t => true); + var builder = InternalCalls.PartBuilder(t => true); builder.Export(); IEnumerable typeAtts; @@ -83,9 +85,10 @@ namespace System.ComponentModel.Composition.Registration.Tests } [Fact] + [SkipOnTargetFramework(TargetFrameworkMonikers.UapAot, "Reflection based tests")] public void ExportOfT_ShouldGenerateSingleExportAttributeWithContractType() { - var builder = new PartBuilder(t => true); + var builder = InternalCalls.PartBuilder(t => true); builder.Export(); IEnumerable typeAtts; @@ -100,9 +103,10 @@ namespace System.ComponentModel.Composition.Registration.Tests } [Fact] + [SkipOnTargetFramework(TargetFrameworkMonikers.UapAot, "Reflection based tests")] public void AddMetadata_ShouldGeneratePartMetadataAttribute() { - var builder = new PartBuilder(t => true); + var builder = InternalCalls.PartBuilder(t => true); builder.Export().AddMetadata("name", "value"); IEnumerable typeAtts; @@ -121,9 +125,10 @@ namespace System.ComponentModel.Composition.Registration.Tests } [Fact] + [SkipOnTargetFramework(TargetFrameworkMonikers.UapAot, "Reflection based tests")] public void AddMetadataWithFunc_ShouldGeneratePartMetadataAttribute() { - var builder = new PartBuilder(t => true); + var builder = InternalCalls.PartBuilder(t => true); builder.Export().AddMetadata("name", t => t.Name); IEnumerable typeAtts; @@ -142,9 +147,10 @@ namespace System.ComponentModel.Composition.Registration.Tests } [Fact] + [SkipOnTargetFramework(TargetFrameworkMonikers.UapAot, "Reflection based tests")] public void ExportProperty_ShouldGenerateExportForPropertySelected() { - var builder = new PartBuilder(t => true); + var builder = InternalCalls.PartBuilder(t => true); builder.Export(). ExportProperties(p => p.Name == "P1"); @@ -167,9 +173,10 @@ namespace System.ComponentModel.Composition.Registration.Tests } [Fact] + [SkipOnTargetFramework(TargetFrameworkMonikers.UapAot, "Reflection based tests")] public void ImportProperty_ShouldGenerateImportForPropertySelected() { - var builder = new PartBuilder(t => true); + var builder = InternalCalls.PartBuilder(t => true); builder.Export(). ImportProperties(p => p.Name == "P2"); // P3 is string @@ -193,9 +200,10 @@ namespace System.ComponentModel.Composition.Registration.Tests } [Fact] + [SkipOnTargetFramework(TargetFrameworkMonikers.UapAot, "Reflection based tests")] public void ImportProperties_ShouldGenerateImportForPropertySelected_And_ApplyImportMany() { - var builder = new PartBuilder(t => true); + var builder = InternalCalls.PartBuilder(t => true); builder.Export(). ImportProperties(p => p.Name == "P3"); // P3 is IEnumerable @@ -219,9 +227,10 @@ namespace System.ComponentModel.Composition.Registration.Tests } [Fact] + [SkipOnTargetFramework(TargetFrameworkMonikers.UapAot, "Reflection based tests")] public void ExportPropertyWithConfiguration_ShouldGenerateExportForPropertySelected() { - var builder = new PartBuilder(t => true); + var builder = InternalCalls.PartBuilder(t => true); builder.Export(). ExportProperties(p => p.Name == "P1", (p, c) => c.AsContractName("hey")); @@ -244,9 +253,10 @@ namespace System.ComponentModel.Composition.Registration.Tests } [Fact] + [SkipOnTargetFramework(TargetFrameworkMonikers.UapAot, "Reflection based tests")] public void ExportPropertyOfT_ShouldGenerateExportForPropertySelectedWithTAsContractType() { - var builder = new PartBuilder(t => true); + var builder = InternalCalls.PartBuilder(t => true); builder.Export(). ExportProperties(p => p.Name == "P1"); @@ -269,9 +279,10 @@ namespace System.ComponentModel.Composition.Registration.Tests } [Fact] + [SkipOnTargetFramework(TargetFrameworkMonikers.UapAot, "Reflection based tests")] public void SetCreationPolicy_ShouldGeneratePartCreationPolicyAttributeForType() { - var builder = new PartBuilder(t => true); + var builder = InternalCalls.PartBuilder(t => true); builder.Export().SetCreationPolicy(CreationPolicy.NonShared); IEnumerable typeAtts; @@ -286,9 +297,10 @@ namespace System.ComponentModel.Composition.Registration.Tests } [Fact] + [SkipOnTargetFramework(TargetFrameworkMonikers.UapAot, "Reflection based tests")] public void ConventionSelectsConstructor_SelectsTheOneWithMostParameters() { - var builder = new PartBuilder(t => true); + var builder = InternalCalls.PartBuilder(t => true); builder.Export(); IEnumerable typeAtts; @@ -319,9 +331,10 @@ namespace System.ComponentModel.Composition.Registration.Tests } [Fact] + [SkipOnTargetFramework(TargetFrameworkMonikers.UapAot, "Reflection based tests")] public void ManuallySelectingConstructor_SelectsTheExplicitOne() { - var builder = new PartBuilder(t => true); + var builder = InternalCalls.PartBuilder(t => true); builder.Export().SelectConstructor((cis) => cis[1]); IEnumerable typeAtts; @@ -345,9 +358,10 @@ namespace System.ComponentModel.Composition.Registration.Tests } [Fact] + [SkipOnTargetFramework(TargetFrameworkMonikers.UapAot, "Reflection based tests")] public void ManuallySelectingConstructor_SelectsTheExplicitOne_IEnumerableParameterBecomesImportMany() { - var builder = new PartBuilder(t => true); + var builder = InternalCalls.PartBuilder(t => true); builder.Export().SelectConstructor((cis) => cis[1]); IEnumerable typeAtts; @@ -379,7 +393,7 @@ namespace System.ComponentModel.Composition.Registration.Tests typeAtts = builder.BuildTypeAttributes(targetType); if (!builder.BuildConstructorAttributes(targetType, ref configuredMembers)) { - PartBuilder.BuildDefaultConstructorAttributes(targetType, ref configuredMembers); + InternalCalls.PartBuilder_BuildDefaultConstructorAttributes(targetType, ref configuredMembers); } builder.BuildPropertyAttributes(targetType, ref configuredMembers); } @@ -416,6 +430,7 @@ namespace System.ComponentModel.Composition.Registration.Tests } [Fact] + [ActiveIssue(35144, TargetFrameworkMonikers.UapAot)] public void InsideTheLambdaCallGetCustomAttributesShouldSucceed() { //Same test as above only using default export builder diff --git a/src/libraries/System.ComponentModel.Composition.Registration/tests/System/ComponentModel/Composition/Registration/PartBuilderUnitTests.cs b/src/libraries/System.ComponentModel.Composition.Registration/tests/System/ComponentModel/Composition/Registration/PartBuilderUnitTests.cs index 849f711..61bf17a 100644 --- a/src/libraries/System.ComponentModel.Composition.Registration/tests/System/ComponentModel/Composition/Registration/PartBuilderUnitTests.cs +++ b/src/libraries/System.ComponentModel.Composition.Registration/tests/System/ComponentModel/Composition/Registration/PartBuilderUnitTests.cs @@ -126,6 +126,7 @@ namespace System.ComponentModel.Composition.Registration.Tests public class PartBuilderUnitTests { [Fact] + [ActiveIssue(35144, TargetFrameworkMonikers.UapAot)] public void ManyConstructorsControllerFindLongestConstructor_ShouldSucceed() { var ctx = new RegistrationBuilder(); @@ -154,6 +155,7 @@ namespace System.ComponentModel.Composition.Registration.Tests } [Fact] + [ActiveIssue(35144, TargetFrameworkMonikers.UapAot)] public void ManyConstructorsControllerFindLongestConstructorAndImportByName_ShouldSucceed() { var ctx = new RegistrationBuilder(); @@ -191,6 +193,7 @@ namespace System.ComponentModel.Composition.Registration.Tests } [Fact] + [ActiveIssue(35144, TargetFrameworkMonikers.UapAot)] public void LongestConstructorWithAttribute_ShouldSucceed() { var ctx = new RegistrationBuilder(); @@ -210,6 +213,7 @@ namespace System.ComponentModel.Composition.Registration.Tests } [Fact] + [ActiveIssue(35144, TargetFrameworkMonikers.UapAot)] public void LongestConstructorShortestWithAttribute_ShouldSucceed() { var ctx = new RegistrationBuilder(); @@ -229,6 +233,7 @@ namespace System.ComponentModel.Composition.Registration.Tests } [Fact] + [ActiveIssue(35144, TargetFrameworkMonikers.UapAot)] public void AmbiguousConstructorWithAttributeAppliedToOne_ShouldSucceed() { var ctx = new RegistrationBuilder(); @@ -250,6 +255,7 @@ namespace System.ComponentModel.Composition.Registration.Tests [Fact] + [ActiveIssue(35144, TargetFrameworkMonikers.UapAot)] public void AmbiguousConstructor_ShouldFail() { var ctx = new RegistrationBuilder(); diff --git a/src/libraries/System.ComponentModel.Composition.Registration/tests/System/ComponentModel/Composition/Registration/RegistrationBuilderExportFuncTests.cs b/src/libraries/System.ComponentModel.Composition.Registration/tests/System/ComponentModel/Composition/Registration/RegistrationBuilderExportFuncTests.cs index fdc84d0..552bc6e 100644 --- a/src/libraries/System.ComponentModel.Composition.Registration/tests/System/ComponentModel/Composition/Registration/RegistrationBuilderExportFuncTests.cs +++ b/src/libraries/System.ComponentModel.Composition.Registration/tests/System/ComponentModel/Composition/Registration/RegistrationBuilderExportFuncTests.cs @@ -22,6 +22,7 @@ namespace System.ComponentModel.Composition.Registration.Tests } [Fact] + [ActiveIssue(35144, TargetFrameworkMonikers.UapAot)] public void RegistrationBuilder_WithExportDelegatesShouldNotThrow() { var rb = new RegistrationBuilder(); diff --git a/src/libraries/System.ComponentModel.Composition.Registration/tests/System/ComponentModel/Composition/Registration/RegistrationBuilderTests.cs b/src/libraries/System.ComponentModel.Composition.Registration/tests/System/ComponentModel/Composition/Registration/RegistrationBuilderTests.cs index 09a6d2f..ac83f09 100644 --- a/src/libraries/System.ComponentModel.Composition.Registration/tests/System/ComponentModel/Composition/Registration/RegistrationBuilderTests.cs +++ b/src/libraries/System.ComponentModel.Composition.Registration/tests/System/ComponentModel/Composition/Registration/RegistrationBuilderTests.cs @@ -46,6 +46,7 @@ namespace System.ComponentModel.Composition.Registration.Tests } [Fact] + [SkipOnTargetFramework(TargetFrameworkMonikers.UapAot, "MakeGenericType can only accept Type objects created by the runtime.")] public void ShouldSucceed() { var rb = new RegistrationBuilder(); @@ -175,6 +176,7 @@ namespace System.ComponentModel.Composition.Registration.Tests private class ClassExportingInterface : IGenericInterface { } [Fact] + [SkipOnTargetFramework(TargetFrameworkMonikers.UapAot, "MakeGenericType can only accept Type objects created by the runtime.")] public void GenericInterfaceExportInRegistrationBuilder() { CompositionContainer container = CreateRegistrationBuilderContainer(typeof(ClassExportingInterface<>)); @@ -188,6 +190,7 @@ namespace System.ComponentModel.Composition.Registration.Tests private class ClassExportingBaseClass : GenericBaseClass { } [Fact] + [SkipOnTargetFramework(TargetFrameworkMonikers.UapAot, "MakeGenericType can only accept Type objects created by the runtime.")] public void GenericBaseClassExportInRegistrationBuilder() { CompositionContainer container = CreateRegistrationBuilderContainer(typeof(ClassExportingBaseClass<>)); @@ -199,6 +202,7 @@ namespace System.ComponentModel.Composition.Registration.Tests private class GenericClass { } [Fact] + [ActiveIssue(35144, TargetFrameworkMonikers.UapAot)] public void GenericExportInRegistrationBuilder() { CompositionContainer container = CreateRegistrationBuilderContainer(typeof(GenericClass<>)); @@ -210,6 +214,7 @@ namespace System.ComponentModel.Composition.Registration.Tests private class ExplicitGenericClass { } [Fact] + [SkipOnTargetFramework(TargetFrameworkMonikers.UapAot, "MakeGenericType can only accept Type objects created by the runtime.")] public void ExplicitGenericExportInRegistrationBuilder() { CompositionContainer container = CreateRegistrationBuilderContainer(typeof(ExplicitGenericClass<>)); @@ -221,6 +226,7 @@ namespace System.ComponentModel.Composition.Registration.Tests private class ExplicitGenericClass { } [Fact] + [SkipOnTargetFramework(TargetFrameworkMonikers.UapAot, "MakeGenericType can only accept Type objects created by the runtime.")] public void ExplicitGenericArity2ExportInRegistrationBuilder() { CompositionContainer container = CreateRegistrationBuilderContainer(typeof(ExplicitGenericClass<,>)); -- 2.7.4