Update core dependencies

This also removes testing on .NET Core 3.1, which is out of support.

Signed-off-by: Jon Skeet <jonskeet@google.com>
This commit is contained in:
Jon Skeet 2023-03-06 15:03:58 +00:00 committed by Jon Skeet
parent 1fe92ab054
commit 8999fce15f
11 changed files with 26 additions and 33 deletions

View File

@ -17,12 +17,6 @@ jobs:
- name: Check out our repo
uses: actions/checkout@v3
# We need the .NET Core 3.1 runtime for testing
- name: Setup .NET Core 3.1
uses: actions/setup-dotnet@v3
with:
dotnet-version: 3.1.x
# Build with .NET 6.0 SDK
- name: Setup .NET 6.0
uses: actions/setup-dotnet@v3

View File

@ -15,12 +15,6 @@ jobs:
- name: Check out our repo
uses: actions/checkout@v3
# We need the .NET Core 3.1 runtime for testing
- name: Setup .NET Core 3.1
uses: actions/setup-dotnet@v3
with:
dotnet-version: 3.1.x
# Build with .NET 6.0 SDK
- name: Setup .NET 6.0
uses: actions/setup-dotnet@v3
@ -37,4 +31,3 @@ jobs:
run: |
dotnet pack -c Release -p:ContinuousIntegrationBuild=true -o $PWD/nuget
for file in nuget/*.nupkg; do dotnet nuget push -s https://api.nuget.org/v3/index.json -k ${{secrets.NUGET_API_KEY}} $file; done

View File

@ -1,7 +1,7 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFrameworks>netcoreapp3.1;net6.0</TargetFrameworks>
<TargetFrameworks>net6.0</TargetFrameworks>
</PropertyGroup>
<ItemGroup>

View File

@ -2,7 +2,7 @@
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
<TargetFramework>net6.0</TargetFramework>
</PropertyGroup>
<ItemGroup>

View File

@ -9,9 +9,9 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="System.Memory" Version="4.5.4" />
<PackageReference Include="System.Memory" Version="4.5.5" />
<!-- Source-only package with nullable reference annotations. -->
<PackageReference Include="Nullable" Version="1.3.0" PrivateAssets="All" />
<PackageReference Include="Nullable" Version="1.3.1" PrivateAssets="All" />
</ItemGroup>
<ItemGroup>

View File

@ -1,12 +1,12 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<TargetFramework>net6.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="3.0.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.2" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" Version="6.0.14" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.5.0" />
<PackageReference Include="xunit" Version="2.4.2" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.5" />
</ItemGroup>

View File

@ -1,14 +1,13 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netcoreapp3.1</TargetFramework>
<LangVersion>8.0</LangVersion>
<TargetFramework>net6.0</TargetFramework>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.CSharp" Version="4.7.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.2.0" />
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.5.0" />
<PackageReference Include="xunit" Version="2.4.2" />
<PackageReference Include="xunit.runner.console" Version="2.4.2">
<PrivateAssets>all</PrivateAssets>

View File

@ -13,6 +13,7 @@ using System;
using System.IO;
using System.Linq;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;
using Xunit;
@ -160,12 +161,15 @@ namespace CloudNative.CloudEvents.UnitTests
{
request.Headers[header.Key] = header.Value.Single();
}
foreach (var header in message.Content.Headers)
if (message.Content?.Headers is HttpContentHeaders contentHeaders)
{
request.Headers[header.Key] = header.Value.Single();
foreach (var header in contentHeaders)
{
request.Headers[header.Key] = header.Value.Single();
}
}
var contentBytes = await message.Content.ReadAsByteArrayAsync();
var contentBytes = await (message.Content?.ReadAsByteArrayAsync() ?? Task.FromResult(Array.Empty<byte>()));
request.Body = new MemoryStream(contentBytes);
return request;
}

View File

@ -196,7 +196,7 @@ namespace CloudNative.CloudEvents.Http.UnitTests
async context => await cloudEvent.CopyToHttpListenerResponseAsync(context.Response, ContentMode.Binary, formatter));
response.EnsureSuccessStatusCode();
var content = response.Content;
Assert.Equal("text/plain", content.Headers.ContentType.MediaType);
Assert.Equal("text/plain", content.Headers.ContentType!.MediaType);
Assert.Equal("plain text", await content.ReadAsStringAsync());
Assert.Equal("1.0", response.Headers.GetValues("ce-specversion").Single());
Assert.Equal(cloudEvent.Type, response.Headers.GetValues("ce-type").Single());
@ -229,7 +229,7 @@ namespace CloudNative.CloudEvents.Http.UnitTests
var response = await GetResponseAsync(
async context => await cloudEvent.CopyToHttpListenerResponseAsync(context.Response, ContentMode.Binary, formatter));
var content = response.Content;
Assert.Equal("application/json", content.Headers.ContentType.MediaType);
Assert.Equal("application/json", content.Headers.ContentType!.MediaType);
Assert.Equal("\"plain text\"", await content.ReadAsStringAsync());
}
@ -255,7 +255,7 @@ namespace CloudNative.CloudEvents.Http.UnitTests
async context => await cloudEvent.CopyToHttpListenerResponseAsync(context.Response, ContentMode.Structured, formatter));
response.EnsureSuccessStatusCode();
var content = response.Content;
Assert.Equal(MimeUtilities.MediaType + "+json", content.Headers.ContentType.MediaType);
Assert.Equal(MimeUtilities.MediaType + "+json", content.Headers.ContentType!.MediaType);
var bytes = await content.ReadAsByteArrayAsync();
var parsed = new JsonEventFormatter().DecodeStructuredModeMessage(bytes, MimeUtilities.ToContentType(content.Headers.ContentType), extensionAttributes: null);
@ -284,7 +284,7 @@ namespace CloudNative.CloudEvents.Http.UnitTests
response.EnsureSuccessStatusCode();
var content = response.Content;
Assert.Equal(MimeUtilities.BatchMediaType + "+json", content.Headers.ContentType.MediaType);
Assert.Equal(MimeUtilities.BatchMediaType + "+json", content.Headers.ContentType!.MediaType);
var bytes = await content.ReadAsByteArrayAsync();
var parsedBatch = new JsonEventFormatter().DecodeBatchModeMessage(bytes, MimeUtilities.ToContentType(content.Headers.ContentType), extensionAttributes: null);
AssertBatchesEqual(batch, parsedBatch);
@ -299,7 +299,7 @@ namespace CloudNative.CloudEvents.Http.UnitTests
var guid = Guid.NewGuid().ToString();
request.Headers.Add(TestContextHeader, guid);
T result = default;
T result = default!;
bool executed = false;
PendingRequests[guid] = async context =>

View File

@ -84,7 +84,8 @@ namespace CloudNative.CloudEvents.Http.UnitTests
private async Task HandleContext(HttpListenerContext requestContext)
{
var ctxHeaderValue = requestContext.Request.Headers[TestContextHeader];
var ctxHeaderValue = requestContext.Request.Headers[TestContextHeader]
?? throw new InvalidOperationException("Test context header was missing");
if (PendingRequests.TryRemove(ctxHeaderValue, out var pending))
{

View File

@ -13,6 +13,8 @@ using System.Threading.Tasks;
using Xunit;
using static CloudNative.CloudEvents.UnitTests.TestHelpers;
// Type or member is obsolete - this whole file is testing WebRequest integration.
#pragma warning disable SYSLIB0014
namespace CloudNative.CloudEvents.Http.UnitTests
{
public class HttpWebExtensionsTest : HttpTestBase
@ -163,7 +165,7 @@ namespace CloudNative.CloudEvents.Http.UnitTests
var guid = Guid.NewGuid().ToString();
request.Headers.Add(TestContextHeader, guid);
T result = default;
T result = default!;
bool executed = false;
PendingRequests[guid] = async context =>