Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
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.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
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
Loading