Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/pr-validation-maui.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,4 +39,4 @@ jobs:
run: dotnet build src/ClientApp/ClientApp.csproj

- name: Test
run: dotnet test tests/ClientApp.UnitTests/ClientApp.UnitTests.csproj
run: dotnet test --project tests/ClientApp.UnitTests/ClientApp.UnitTests.csproj --no-progress --output detailed
2 changes: 1 addition & 1 deletion .github/workflows/pr-validation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,4 @@ jobs:
- name: Build
run: dotnet build eShop.Web.slnf
- name: Test
run: dotnet test eShop.Web.slnf
run: dotnet test --solution eShop.Web.slnf --no-build --no-progress --output detailed
8 changes: 2 additions & 6 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,7 @@
<PackageVersion Include="Microsoft.Extensions.Identity.Stores" Version="10.0.0" />
<PackageVersion Include="Microsoft.Extensions.Http.Resilience" Version="10.0.0" />
<PackageVersion Include="Microsoft.OpenApi" Version="2.3.2" />
<PackageVersion Include="MSTest.TestFramework" Version="3.10.4" />
<PackageVersion Include="MSTest.TestAdapter" Version="3.10.4" />
<PackageVersion Include="MSTest" Version="4.0.2" />
<!-- Version together with EF -->
<PackageVersion Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="10.0.0" />
<PackageVersion Include="Microsoft.EntityFrameworkCore.Tools" Version="10.0.0" />
Expand Down Expand Up @@ -76,8 +75,6 @@
<PackageVersion Include="Duende.IdentityServer.EntityFramework" Version="7.3.2" />
<PackageVersion Include="Duende.IdentityServer.EntityFramework.Storage" Version="7.3.2" />
<PackageVersion Include="Duende.IdentityServer.Storage" Version="7.3.2" />
<!-- VS Test -->
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
<!-- Scaffolding -->
<PackageVersion Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="8.0.0-rc.1.23461.3" />
<!-- Grpc -->
Expand All @@ -91,8 +88,7 @@
<PackageVersion Include="Google.Protobuf" Version="3.33.0" />
<PackageVersion Include="Microsoft.Web.LibraryManager.Build" Version="3.0.71" />
<PackageVersion Include="System.Reflection.TypeExtensions" Version="4.7.0" />
<PackageVersion Include="xunit" Version="2.9.3" />
<PackageVersion Include="xunit.runner.visualstudio" Version="3.1.4" />
<PackageVersion Include="xunit.v3.mtp-v2" Version="3.2.1" />
<PackageVersion Include="IdentityModel" Version="7.0.0" />
<PackageVersion Include="Scalar.AspNetCore" Version="2.8.6" />
<!-- Before license change -->
Expand Down
8 changes: 7 additions & 1 deletion global.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,13 @@
{
"sdk": {
"version": "10.0.100-rc.1.25451.107",
"version": "10.0.100",
"rollForward": "latestFeature",
"allowPrerelease": true
},
"test": {
"runner": "Microsoft.Testing.Platform"
},
"msbuild-sdks": {
"MSTest.Sdk": "4.0.2"
}
}
6 changes: 2 additions & 4 deletions tests/Basket.UnitTests/Basket.UnitTests.csproj
Original file line number Diff line number Diff line change
@@ -1,18 +1,16 @@
<Project Sdk="Microsoft.NET.Sdk">
<Project Sdk="MSTest.Sdk">

<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
<GenerateErrorForMissingTargetingPacks>false</GenerateErrorForMissingTargetingPacks>
<IsPublishable>false</IsPublishable>
<IsPackable>false</IsPackable>
<OutputType>Exe</OutputType>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" />
<PackageReference Include="Microsoft.Extensions.Identity.Stores" />
<PackageReference Include="Microsoft.NET.Test.Sdk" />
<PackageReference Include="MSTest.TestAdapter" />
<PackageReference Include="MSTest.TestFramework" />
<PackageReference Include="NSubstitute" />
<PackageReference Include="NSubstitute.Analyzers.CSharp">
<PrivateAssets>all</PrivateAssets>
Expand Down
14 changes: 8 additions & 6 deletions tests/Basket.UnitTests/BasketServiceTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,20 @@ namespace eShop.Basket.UnitTests;
[TestClass]
public class BasketServiceTests
{
public TestContext TestContext { get; set; }

[TestMethod]
public async Task GetBasketReturnsEmptyForNoUser()
{
var mockRepository = Substitute.For<IBasketRepository>();
var service = new BasketService(mockRepository, NullLogger<BasketService>.Instance);
var serverCallContext = TestServerCallContext.Create();
var serverCallContext = TestServerCallContext.Create(cancellationToken: TestContext.CancellationToken);
serverCallContext.SetUserState("__HttpContext", new DefaultHttpContext());

var response = await service.GetBasket(new GetBasketRequest(), serverCallContext);

Assert.IsInstanceOfType<CustomerBasketResponse>(response);
Assert.AreEqual(response.Items.Count(), 0);
Assert.IsEmpty(response.Items);
}

[TestMethod]
Expand All @@ -32,15 +34,15 @@ public async Task GetBasketReturnsItemsForValidUserId()
List<BasketItem> items = [new BasketItem { Id = "some-id" }];
mockRepository.GetBasketAsync("1").Returns(Task.FromResult(new CustomerBasket { BuyerId = "1", Items = items }));
var service = new BasketService(mockRepository, NullLogger<BasketService>.Instance);
var serverCallContext = TestServerCallContext.Create();
var serverCallContext = TestServerCallContext.Create(cancellationToken: TestContext.CancellationToken);
var httpContext = new DefaultHttpContext();
httpContext.User = new ClaimsPrincipal(new ClaimsIdentity([new Claim("sub", "1")]));
serverCallContext.SetUserState("__HttpContext", httpContext);

var response = await service.GetBasket(new GetBasketRequest(), serverCallContext);

Assert.IsInstanceOfType<CustomerBasketResponse>(response);
Assert.AreEqual(response.Items.Count(), 1);
Assert.HasCount(1, response.Items);
}

[TestMethod]
Expand All @@ -50,13 +52,13 @@ public async Task GetBasketReturnsEmptyForInvalidUserId()
List<BasketItem> items = [new BasketItem { Id = "some-id" }];
mockRepository.GetBasketAsync("1").Returns(Task.FromResult(new CustomerBasket { BuyerId = "1", Items = items }));
var service = new BasketService(mockRepository, NullLogger<BasketService>.Instance);
var serverCallContext = TestServerCallContext.Create();
var serverCallContext = TestServerCallContext.Create(cancellationToken: TestContext.CancellationToken);
var httpContext = new DefaultHttpContext();
serverCallContext.SetUserState("__HttpContext", httpContext);

var response = await service.GetBasket(new GetBasketRequest(), serverCallContext);

Assert.IsInstanceOfType<CustomerBasketResponse>(response);
Assert.AreEqual(response.Items.Count(), 0);
Assert.IsEmpty(response.Items);
}
}
6 changes: 5 additions & 1 deletion tests/Basket.UnitTests/GlobalUsings.cs
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
global using System.Collections.Generic;
global using System;
global using System.Collections.Generic;
global using System.Threading;
global using System.Threading.Tasks;
global using Microsoft.AspNetCore.Http;
global using Microsoft.AspNetCore.Mvc;
global using NSubstitute;
global using Microsoft.VisualStudio.TestTools.UnitTesting;

[assembly: Parallelize(Workers = 0, Scope = ExecutionScope.MethodLevel)]
2 changes: 1 addition & 1 deletion tests/Basket.UnitTests/Helpers/TestServerCallContext.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using Grpc.Core;
using Grpc.Core;

namespace eShop.Basket.UnitTests.Helpers;

Expand Down
8 changes: 2 additions & 6 deletions tests/Catalog.FunctionalTests/Catalog.FunctionalTests.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -4,19 +4,15 @@
<TargetFramework>net10.0</TargetFramework>
<IsPublishable>false</IsPublishable>
<IsPackable>false</IsPackable>
<OutputType>Exe</OutputType>
</PropertyGroup>

<ItemGroup>
<PackageReference Include="Asp.Versioning.Http.Client" />
<PackageReference Include="Aspire.Hosting.PostgreSQL" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Testing" />
<PackageReference Include="Microsoft.AspNetCore.TestHost" />
<PackageReference Include="Microsoft.NET.Test.Sdk" />
<PackageReference Include="xunit.runner.visualstudio">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers</IncludeAssets>
</PackageReference>
<PackageReference Include="xunit" />
<PackageReference Include="xunit.v3.mtp-v2" />
</ItemGroup>

<ItemGroup>
Expand Down
6 changes: 5 additions & 1 deletion tests/Catalog.FunctionalTests/CatalogApiFixture.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
using System.Reflection;

using Aspire.Hosting;
using Aspire.Hosting.ApplicationModel;

using Microsoft.AspNetCore.Mvc.Testing;

namespace eShop.Catalog.FunctionalTests;
Expand Down Expand Up @@ -46,7 +50,7 @@ protected override IHost CreateHost(IHostBuilder builder)
}
}

public async Task InitializeAsync()
public async ValueTask InitializeAsync()
{
await _app.StartAsync();
_postgresConnectionString = await Postgres.Resource.GetConnectionStringAsync();
Expand Down
Loading