Skip to content
This repository was archived by the owner on Dec 10, 2025. It is now read-only.

Commit 5fd5d49

Browse files
authored
Merge pull request #74 from TestCentric/issue-1334
Eliminate .NET Framework 2.0 build
2 parents 38b6cd4 + 5a11dbe commit 5fd5d49

File tree

15 files changed

+51
-268
lines changed

15 files changed

+51
-268
lines changed

build.cake

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,6 @@ BuildSettings.Packages.Add(new NuGetPackage(
1919
source: "nuget/TestCentric.Extensibility.nuspec",
2020
checks: new PackageCheck[] {
2121
HasFiles("LICENSE.txt", "README.md", "testcentric.png"),
22-
//HasDirectory("lib/net20")
23-
// .WithFiles("TestCentric.Extensibility.dll", "TestCentric.Extensibility.api.dll", "nunit.engine.api.dll"),
2422
HasDirectory("lib/net462")
2523
.WithFiles("testcentric.extensibility.dll", "TestCentric.Extensibility.api.dll", "nunit.engine.api.dll"),
2624
HasDirectory("lib/netstandard2.0")
@@ -49,7 +47,6 @@ BuildSettings.Packages.Add(new NuGetPackage(
4947
checks: new PackageCheck[] {
5048
HasFiles(
5149
"LICENSE.txt", "README.md", "testcentric.png",
52-
"lib/net20/testcentric.extensibility.api.dll",
5350
"lib/net462/testcentric.extensibility.api.dll",
5451
"lib/netstandard2.0/testcentric.extensibility.api.dll") }));
5552

nuget/TestCentric.Extensibility.Api.nuspec

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
<file src="../../README.md" />
1919
<file src="../../LICENSE.txt" />
2020
<file src="../../testcentric.png" />
21-
<file src="net20/TestCentric.Extensibility.Api.dll" target="lib/net20" />
2221
<file src="net462/TestCentric.Extensibility.Api.dll" target="lib/net462" />
2322
<file src="netstandard2.0/TestCentric.Extensibility.Api.dll" target="lib/netstandard2.0" />
2423
</files>

nuget/TestCentric.Extensibility.nuspec

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,6 @@
2222
<file src="../../README.md" />
2323
<file src="../../LICENSE.txt" />
2424
<file src="../../testcentric.png" />
25-
<!--<file src="net20/TestCentric.Extensibility.dll" target="lib/net20" />
26-
<file src="net20/TestCentric.Extensibility.pdb" target="lib/net20" />
27-
<file src="net20/TestCentric.Extensibility.Api.dll" target="lib/net20" />
28-
<file src="net20/TestCentric.Extensibility.Api.pdb" target="lib/net20" />
29-
<file src="net20/nunit.engine.api.dll" target="lib/net20" />-->
3025
<file src="net462/TestCentric.Extensibility.dll" target="lib/net462" />
3126
<file src="net462/TestCentric.Extensibility.pdb" target="lib/net462" />
3227
<file src="net462/TestCentric.Extensibility.Api.dll" target="lib/net462" />

src/testcentric.extensibility.api/testcentric.extensibility.api.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>net20;net462;netstandard2.0</TargetFrameworks>
4+
<TargetFrameworks>net462;netstandard2.0</TargetFrameworks>
55
<RootNamespace>TestCentric.Extensibility</RootNamespace>
66
<Nullable>enable</Nullable>
77
</PropertyGroup>

src/testcentric.extensibility.fakes/FakeExtensions.cs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,4 +123,13 @@ public void OnTestEvent(string text)
123123
throw new System.NotImplementedException();
124124
}
125125
}
126+
127+
[NUnit.Extensibility.Extension]
128+
public class FakeNUnit4Listener : NUnit.Engine.ITestEventListener
129+
{
130+
public void OnTestEvent(string text)
131+
{
132+
throw new System.NotImplementedException();
133+
}
134+
}
126135
}

src/testcentric.extensibility.fakes/TestCentric.Extensibility.FakeExtensions.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>net20;net462;netstandard2.0</TargetFrameworks>
4+
<TargetFrameworks>net462;netstandard2.0</TargetFrameworks>
55
<RootNamespace>TestCentric.Extensibility</RootNamespace>
66
<SignAssembly>true</SignAssembly>
77
<AssemblyOriginatorKeyFile>testcentric.snk</AssemblyOriginatorKeyFile>

src/testcentric.extensibility.tests/ExtensionAssemblyTests.cs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,7 @@ public void TargetFramework()
5555
{
5656
var framework = _ea.FrameworkName;
5757
Assert.That(_ea.FrameworkName.Identifier, Is.EqualTo(".NETFramework"));
58-
#if NET20 || NET35
59-
Assert.That(_ea.FrameworkName.Version, Is.EqualTo(new Version(2, 0)));
60-
#else
6158
Assert.That(_ea.FrameworkName.Version, Is.EqualTo(new Version(4, 6, 2)));
62-
#endif
6359
}
6460
#endif
6561
}

src/testcentric.extensibility.tests/ExtensionManagerTests.cs

Lines changed: 37 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -122,39 +122,54 @@ internal class ThisIsNotAnExtensionPoint
122122
"TestCentric.Engine.Extensibility.FakeTestEventListener",
123123
"TestCentric.Engine.Extensibility.FakeProjectLoader",
124124
"TestCentric.Engine.Extensibility.FakeResultWriter",
125-
"TestCentric.Engine.Extensibility.FakeNUnitExtension_ThrowsInConstructor"
125+
"TestCentric.Engine.Extensibility.FakeNUnitExtension_ThrowsInConstructor",
126+
"TestCentric.Engine.Extensibility.FakeNUnit4Listener"
126127
];
127128

128-
[Test]
129+
private static string[] KnownExtensionPaths =
130+
[
131+
"/TestCentric/Engine/AgentLaunchers",
132+
"/TestCentric/Engine/AgentLaunchers",
133+
"/TestCentric/Engine/TestEventListeners",
134+
"/TestCentric/Engine/ProjectLoaders",
135+
"/TestCentric/Engine/ResultWriters",
136+
"/TestCentric/Engine/TestEventListeners",
137+
"/TestCentric/Engine/TestEventListeners"
138+
];
139+
140+
private const string INITIALLY_DISABLED_EXTENSION = "TestCentric.Engine.Extensibility.FakeTestEventListener";
141+
[Test, Order(1)]
129142
public void AllExtensionsAreKnown()
130143
{
131144
Assert.That(ExtensionManager.Extensions.Select(ep => ep.TypeName), Is.EquivalentTo(KnownExtensionTypeNames));
132145
}
133146

134-
// Run this first as subsequent test will enable the extension
135-
[Test, Order(1)]
136-
public void ExtensionMayBeDisabledByDefault()
147+
[TestCaseSource(nameof(KnownExtensionTypeNames)), Order(2)]
148+
public void ExtensionStatusIsCorrect(string typeName)
137149
{
138-
Assert.That(ExtensionManager.Extensions,
139-
Has.One.Property(nameof(ExtensionNode.TypeName)).EqualTo("TestCentric.Engine.Extensibility.FakeTestEventListener")
140-
.And.Property(nameof(ExtensionNode.Enabled)).False);
150+
Assert.That(GetExtensionNode(typeName).Status, Is.EqualTo(ExtensionStatus.Unloaded));
141151
}
142152

143-
[Test]
144-
public void DisabledExtensionMayBeEnabled()
153+
[Test, Sequential, Order(3)]
154+
public void ExtensionsAreEnabledAsExpected(
155+
[ValueSource(nameof(KnownExtensionTypeNames))] string typeName,
156+
[Values(true, false, false, true, true, false, true)] bool enabled)
145157
{
146-
ExtensionManager.EnableExtension("TestCentric.Engine.Extensibility.FakeTestEventListener", true);
158+
Assert.That(GetExtensionNode(typeName).Enabled, Is.EqualTo(enabled));
159+
}
147160

148-
Assert.That(ExtensionManager.Extensions,
149-
Has.One.Property(nameof(ExtensionNode.TypeName)).EqualTo("TestCentric.Engine.Extensibility.FakeTestEventListener")
150-
.And.Property(nameof(ExtensionNode.Enabled)).True);
161+
[Test, Order(4)]
162+
public void ExtensionMayBeDisabledByDefault()
163+
{
164+
Assert.That(GetExtensionNode(INITIALLY_DISABLED_EXTENSION).Enabled, Is.False);
165+
ExtensionManager.EnableExtension(INITIALLY_DISABLED_EXTENSION, true);
166+
Assert.That(GetExtensionNode(INITIALLY_DISABLED_EXTENSION).Enabled, Is.True);
151167
}
152168

153169
[Test]
154170
public void NUnitExtensionThrowsInConstructor()
155171
{
156-
string typeName = "TestCentric.Engine.Extensibility.FakeNUnitExtension_ThrowsInConstructor";
157-
var exNode = ExtensionManager.Extensions.Where(n => n.TypeName == typeName).Single();
172+
var exNode = GetExtensionNode("TestCentric.Engine.Extensibility.FakeNUnitExtension_ThrowsInConstructor");
158173

159174
// Although the constructor throws, we don't get an exception.
160175
// However, the node contains the error information.
@@ -178,25 +193,19 @@ public void TestCentricExtensionThrowsInConstructor()
178193
Assert.That(exNode.Exception.InnerException, Is.InstanceOf<NotImplementedException>());
179194
}
180195

181-
#if NETCOREAPP
182-
[TestCase("netstandard2.0", ExpectedResult = true)]
183-
[TestCase("net462", ExpectedResult = false)]
184-
[TestCase("net20", ExpectedResult = false)]
185-
#elif NET40_OR_GREATER
196+
#if NETFRAMEWORK
186197
[TestCase("netstandard2.0", ExpectedResult = false)]
187198
[TestCase("net462", ExpectedResult = true)]
188-
[TestCase("net20", ExpectedResult = true)]
189199
#else
190-
[TestCase("netstandard2.0", ExpectedResult = false)]
200+
[TestCase("netstandard2.0", ExpectedResult = true)]
191201
[TestCase("net462", ExpectedResult = false)]
192-
[TestCase("net20", ExpectedResult = true)]
193202
#endif
194203
public bool LoadTargetFramework(string tfm)
195204
{
196205
return ExtensionManager.CanLoadTargetFramework(THIS_ASSEMBLY, FakeExtensions(tfm));
197206
}
198207

199-
#endregion
208+
#endregion
200209

201210
private const string FAKE_EXTENSIONS_FILENAME = "TestCentric.Extensibility.FakeExtensions.dll";
202211
private static readonly string FAKE_EXTENSIONS_PARENT_DIRECTORY =
@@ -213,5 +222,8 @@ private static ExtensionAssembly FakeExtensions(string tfm)
213222
return new ExtensionAssembly(
214223
Path.Combine(FAKE_EXTENSIONS_PARENT_DIRECTORY, Path.Combine(tfm, FAKE_EXTENSIONS_FILENAME)), false);
215224
}
225+
226+
private ExtensionNode GetExtensionNode(string typeName) =>
227+
ExtensionManager.Extensions.Where(n => n.TypeName == typeName).Single();
216228
}
217229
}

src/testcentric.extensibility.tests/testcentric.extensibility.tests.csproj

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
4-
<TargetFrameworks>net35;net462;net6.0</TargetFrameworks>
4+
<TargetFrameworks>net462;net6.0</TargetFrameworks>
55
<RootNamespace>TestCentric.Extensibility</RootNamespace>
66
<SignAssembly>true</SignAssembly>
77
<AssemblyOriginatorKeyFile>testcentric.snk</AssemblyOriginatorKeyFile>
@@ -16,10 +16,6 @@
1616
<ProjectReference Include="..\TestCentric.Extensibility.Api\TestCentric.Extensibility.Api.csproj" />
1717
</ItemGroup>
1818

19-
<ItemGroup Condition="'$(TargetFramework)'=='net35'">
20-
<PackageReference Include="NSubstitute" Version="2.0.3" />
21-
</ItemGroup>
22-
2319
<ItemGroup Condition="'$(TargetFramework)'=='net462'">
2420
<PackageReference Include="NSubstitute" Version="5.1.0" />
2521
</ItemGroup>

src/testcentric.extensibility/Compatibility/System.Runtime.CompilerServices/ExtensionAttribute.cs

Lines changed: 0 additions & 18 deletions
This file was deleted.

0 commit comments

Comments
 (0)