Skip to content

Commit 3de5211

Browse files
authored
feat: Add support for net8.0 (#1166)
* feat: Add support for net8.0 * Don't warn for SYSLIB0051 * Added some fixes for .net8.0
1 parent e654d6d commit 3de5211

25 files changed

Lines changed: 118 additions & 23 deletions

.github/workflows/docs-deploy.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ jobs:
6868
5.0.x
6969
6.0.x
7070
7.0.x
71+
8.0.x
7172
7273
- name: 🎨 Setup color
7374
run: |

.github/workflows/release-preview.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ jobs:
3636
5.0.x
3737
6.0.x
3838
7.0.x
39+
8.0.x
3940
4041
- name: 🎨 Setup color
4142
run: |

.github/workflows/release.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ jobs:
6767
5.0.x
6868
6.0.x
6969
7.0.x
70+
8.0.x
7071
7172
- name: 🛠️ Update changelog
7273
uses: thomaseizinger/keep-a-changelog-new-release@1.3.0

.github/workflows/verification.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ jobs:
4848
5.0.x
4949
6.0.x
5050
7.0.x
51+
8.0.x
5152
5253
- name: 🎨 Setup color
5354
if: matrix.os != 'windows-latest'

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,11 @@ All notable changes to **bUnit** will be documented in this file. The project ad
66

77
## [Unreleased]
88

9+
10+
### Added
11+
12+
- `net8.0` support
13+
914
## [1.22.19] - 2023-07-28
1015

1116
### Added

Directory.Build.props

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
<DotNet5Version>5.0.0</DotNet5Version>
77
<DotNet6Version>6.0.0</DotNet6Version>
88
<DotNet7Version>7.0.0</DotNet7Version>
9+
<DotNet8Version>8.0.0-*</DotNet8Version>
910
</PropertyGroup>
1011

1112
<!-- Solution wide properties -->
@@ -21,7 +22,7 @@
2122
<LangVersion>11.0</LangVersion>
2223
<AccelerateBuildsInVisualStudio>false</AccelerateBuildsInVisualStudio>
2324
<ImplicitUsings>enable</ImplicitUsings>
24-
<NoWarn>CA1014,NU5104,NETSDK1138</NoWarn>
25+
<NoWarn>CA1014,NU5104,NETSDK1138,SYSLIB0051</NoWarn>
2526
<CheckEolTargetFramework>false</CheckEolTargetFramework>
2627

2728
<!-- Used by code coverage -->
@@ -38,7 +39,7 @@
3839
<PropertyGroup Label="Analyzer settings">
3940
<AnalysisMode>AllEnabledByDefault</AnalysisMode>
4041
<EnableNETAnalyzers>true</EnableNETAnalyzers>
41-
<AnalysisLevel>latest</AnalysisLevel>
42+
<AnalysisLevel>7</AnalysisLevel>
4243
<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
4344
</PropertyGroup>
4445

global.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"sdk": {
33
"rollForward": "latestMajor",
4-
"allowPrerelease": false
4+
"allowPrerelease": true
55
}
66
}

src/bunit.core/Rendering/TestRenderer.cs

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@ public class TestRenderer : Renderer, ITestRenderer
1212
{
1313
private static readonly Type RendererType = typeof(Renderer);
1414
private static readonly FieldInfo IsBatchInProgressField = RendererType.GetField("_isBatchInProgress", BindingFlags.Instance | BindingFlags.NonPublic)!;
15+
#if !NET8_0_OR_GREATER
1516
private static readonly MethodInfo GetRequiredComponentStateMethod = RendererType.GetMethod("GetRequiredComponentState", BindingFlags.Instance | BindingFlags.NonPublic)!;
17+
#endif
1618

1719
private readonly object renderTreeUpdateLock = new();
1820
private readonly Dictionary<int, IRenderedFragmentBase> renderedComponents = new();
@@ -96,7 +98,11 @@ public IRenderedComponentBase<TComponent> RenderComponent<TComponent>(ComponentP
9698
EventArgs eventArgs) => DispatchEventAsync(eventHandlerId, fieldInfo, eventArgs, ignoreUnknownEventHandlers: false);
9799

98100
/// <inheritdoc/>
101+
#if !NET8_0_OR_GREATER
99102
public Task DispatchEventAsync(
103+
#else
104+
public new Task DispatchEventAsync(
105+
#endif
100106
ulong eventHandlerId,
101107
EventFieldInfo fieldInfo,
102108
EventArgs eventArgs,
@@ -188,6 +194,17 @@ public void DisposeComponents()
188194
AssertNoUnhandledExceptions();
189195
}
190196
}
197+
198+
#if NET8_0_OR_GREATER
199+
/// <inheritdoc/>
200+
protected override IComponent ResolveComponentForRenderMode(Type componentType, int? parentComponentId,
201+
IComponentActivator componentActivator, IComponentRenderMode renderMode)
202+
203+
{
204+
ArgumentNullException.ThrowIfNull(componentActivator);
205+
return componentActivator.CreateInstance(componentType);
206+
}
207+
#endif
191208

192209
/// <inheritdoc/>
193210
internal void SetDirectParameters(IRenderedFragmentBase renderedComponent, ParameterView parameters)
@@ -207,9 +224,14 @@ internal void SetDirectParameters(IRenderedFragmentBase renderedComponent, Param
207224
try
208225
{
209226
IsBatchInProgress = true;
210-
227+
228+
#if NET8_0_OR_GREATER
229+
var setDirectParametersMethod = typeof(ComponentState).GetMethod("SetDirectParameters", BindingFlags.NonPublic | BindingFlags.Instance)!;
230+
var componentState = GetComponentState(renderedComponent.ComponentId);
231+
#else
211232
var componentState = GetRequiredComponentStateMethod.Invoke(this, new object[] { renderedComponent.ComponentId })!;
212233
var setDirectParametersMethod = componentState.GetType().GetMethod("SetDirectParameters", BindingFlags.Public | BindingFlags.Instance)!;
234+
#endif
213235
setDirectParametersMethod.Invoke(componentState, new object[] { parameters });
214236
}
215237
catch (TargetInvocationException ex) when (ex.InnerException is not null)

src/bunit.core/bunit.core.csproj

Lines changed: 7 additions & 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>netstandard2.1;net5.0;net6.0;net7.0</TargetFrameworks>
4+
<TargetFrameworks>netstandard2.1;net5.0;net6.0;net7.0;net8.0</TargetFrameworks>
55
<RootNamespace>Bunit</RootNamespace>
66
<AssemblyName>Bunit.Core</AssemblyName>
77
</PropertyGroup>
@@ -38,4 +38,10 @@
3838
<PackageReference Include="Microsoft.AspNetCore.Components" Version="$(DotNet7Version)" />
3939
</ItemGroup>
4040

41+
<ItemGroup Condition="'$(TargetFramework)' == 'net8.0'">
42+
<PackageReference Include="Microsoft.Extensions.Logging" Version="$(DotNet8Version)" />
43+
<PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="$(DotNet8Version)" />
44+
<PackageReference Include="Microsoft.AspNetCore.Components" Version="$(DotNet8Version)" />
45+
</ItemGroup>
46+
4147
</Project>

src/bunit.web.testcomponents/bunit.web.testcomponents.csproj

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,6 @@
3333
<PackageReference Include="System.Reflection.Metadata" Version="$(DotNet5Version)" />
3434
</ItemGroup>
3535

36-
<ItemGroup Condition="'$(TargetFramework)' == 'net6.0'">
37-
<PackageReference Include="System.Reflection.Metadata" Version="$(DotNet6Version)" />
38-
</ItemGroup>
39-
4036
<ItemGroup>
4137
<ProjectReference Include="..\bunit.web\bunit.web.csproj" />
4238
</ItemGroup>

0 commit comments

Comments
 (0)