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
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<TargetFramework>net10.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<DebugType>None</DebugType>
<DebugType>Full</DebugType>
<IsPackable>false</IsPackable>
<IsTestProject>true</IsTestProject>
</PropertyGroup>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using Bunit;
using EstateManagementUI.BlazorServer.Components.Permissions;
using EstateManagementUI.BlazorServer.Permissions;
using EstateManagementUI.BlazorServer.Tests.Pages.FileProcessing;
using EstateManagementUI.BusinessLogic.Models;
using EstateManagementUI.BusinessLogic.Requests;
using MediatR;
Expand All @@ -13,28 +14,8 @@

namespace EstateManagementUI.BlazorServer.Tests.Pages.Contracts;

public class ContractsIndexPageTests : TestContext
public class ContractsIndexPageTests : BaseTest
{
private readonly Mock<IMediator> _mockMediator;
private readonly Mock<IPermissionKeyProvider> _mockPermissionKeyProvider;
private readonly Mock<NavigationManager> _mockNavigationManager;

public ContractsIndexPageTests()
{
_mockMediator = new Mock<IMediator>();
_mockPermissionKeyProvider = new Mock<IPermissionKeyProvider>();
_mockNavigationManager = new Mock<NavigationManager>();

_mockPermissionKeyProvider.Setup(x => x.GetKey()).Returns("test-key");

Services.AddSingleton(_mockMediator.Object);
Services.AddSingleton(_mockPermissionKeyProvider.Object);
Services.AddSingleton(_mockNavigationManager.Object);

// Add required permission components
ComponentFactories.AddStub<RequirePermission>();
}

[Fact]
public void ContractsIndex_RendersCorrectly()
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
using EstateManagementUI.BlazorServer.Components.Pages.Contracts;
using EstateManagementUI.BlazorServer.Components.Permissions;
using EstateManagementUI.BlazorServer.Permissions;
using EstateManagementUI.BlazorServer.Tests.Pages.FileProcessing;
using EstateManagementUI.BusinessLogic.Models;
using EstateManagementUI.BusinessLogic.Requests;
using MediatR;
Expand All @@ -13,27 +14,8 @@

namespace EstateManagementUI.BlazorServer.Tests.Pages.Contracts;

public class ContractsViewPageTests : TestContext
public class ContractsViewPageTests : BaseTest
{
private readonly Mock<IMediator> _mockMediator;
private readonly Mock<NavigationManager> _mockNavigationManager;
private readonly Mock<IPermissionKeyProvider> _mockPermissionKeyProvider;

public ContractsViewPageTests()
{
_mockMediator = new Mock<IMediator>();
_mockNavigationManager = new Mock<NavigationManager>();
_mockPermissionKeyProvider = new Mock<IPermissionKeyProvider>();

_mockPermissionKeyProvider.Setup(x => x.GetKey()).Returns("test-key");

Services.AddSingleton(_mockMediator.Object);
Services.AddSingleton(_mockNavigationManager.Object);
Services.AddSingleton(_mockPermissionKeyProvider.Object);

ComponentFactories.AddStub<RequirePermission>();
}

[Fact]
public void ContractsView_RendersCorrectly()
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,25 +1,21 @@
using Bunit;
using EstateManagementUI.BlazorServer.Permissions;
using EstateManagementUI.BusinessLogic.Models;
using EstateManagementUI.BusinessLogic.Requests;
using MediatR;
using Microsoft.AspNetCore.Components.Authorization;
using Microsoft.Extensions.DependencyInjection;
using Moq;
using Shouldly;
using SimpleResults;
using System.Security.Claims;
using EstateManagementUI.BlazorServer.Tests.Pages.FileProcessing;
using EstateIndex = EstateManagementUI.BlazorServer.Components.Pages.Estate.Index;

namespace EstateManagementUI.BlazorServer.Tests.Pages.Estate;

public class EstateIndexPageTests : TestContext
public class EstateIndexPageTests : BaseTest
{
private readonly Mock<IMediator> _mockMediator;

public EstateIndexPageTests()
{
_mockMediator = new Mock<IMediator>();
Services.AddSingleton(_mockMediator.Object);
}

[Fact]
public void EstateIndex_RendersCorrectly()
{
Expand Down Expand Up @@ -55,24 +51,25 @@
{
EstateId = Guid.NewGuid(),
EstateName = "Test Estate",
Reference = "EST001"
Reference = "EST001",
Operators = new List<EstateOperatorModel>()
};

_mockMediator.Setup(x => x.Send(It.IsAny<Queries.GetEstateQuery>(), default))
.ReturnsAsync(Result.Success(estate));
_mockMediator.Setup(x => x.Send(It.IsAny<Queries.GetMerchantsQuery>(), default))
.ReturnsAsync(Result.Success(new List<MerchantModel>()));
_mockMediator.Setup(x => x.Send(It.IsAny<Queries.GetOperatorsQuery>(), default))
.ReturnsAsync(Result.Success(new List<OperatorModel>()));
_mockMediator.Setup(x => x.Send(It.IsAny<Queries.GetContractsQuery>(), default))
.ReturnsAsync(Result.Success(new List<ContractModel>()));

_mockMediator.Setup(x => x.Send(It.IsAny<Queries.GetMerchantsQuery>(), default))
.ReturnsAsync(Result.Success(new List<MerchantModel>()));
// Act
var cut = RenderComponent<EstateIndex>();
cut.WaitForState(() => !cut.Markup.Contains("animate-spin"), TimeSpan.FromSeconds(5));
//cut.WaitForState(() => !cut.Markup.Contains("animate-spin"), TimeSpan.FromSeconds(5));

Check notice on line 68 in EstateManagementUI.BlazorServer.Tests/Pages/Estate/EstateIndexPageTests.cs

View check run for this annotation

Codacy Production / Codacy Static Code Analysis

EstateManagementUI.BlazorServer.Tests/Pages/Estate/EstateIndexPageTests.cs#L68

Remove this commented out code.

// Assert
cut.Markup.ShouldContain("Test Estate");
//cut.Markup.ShouldContain("Test Estate");
cut.WaitForAssertion(() => cut.Markup.ShouldContain("Test Estate"), timeout: TimeSpan.FromSeconds(5));
}

[Fact]
Expand Down
Original file line number Diff line number Diff line change
@@ -1,40 +1,59 @@
using Bunit;
using Bunit.TestDoubles;
using EstateManagementUI.BlazorServer.Components.Permissions;
using EstateManagementUI.BlazorServer.Models;
using EstateManagementUI.BlazorServer.Permissions;
using EstateManagementUI.BusinessLogic.Requests;
using MediatR;
using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Components.Authorization;
using Microsoft.Extensions.DependencyInjection;
using Moq;
using Shouldly;
using SimpleResults;
using System.Security.Claims;
using FileImportLogModel = EstateManagementUI.BusinessLogic.Models.FileImportLogModel;
using FileProcessingIndex = EstateManagementUI.BlazorServer.Components.Pages.FileProcessing.Index;

namespace EstateManagementUI.BlazorServer.Tests.Pages.FileProcessing;

public class FileProcessingIndexPageTests : TestContext
{
private readonly Mock<IMediator> _mockMediator;
private readonly Mock<NavigationManager> _mockNavigationManager;
private readonly Mock<IPermissionKeyProvider> _mockPermissionKeyProvider;

public FileProcessingIndexPageTests()
{
public abstract class BaseTest :TestContext {
protected BaseTest() {
_mockMediator = new Mock<IMediator>();
_mockNavigationManager = new Mock<NavigationManager>();
_mockPermissionKeyProvider = new Mock<IPermissionKeyProvider>();

_mockAuthStateProvider = new Mock<AuthenticationStateProvider>();
_mockPermissionService = new Mock<IPermissionService>();
_mockPermissionStore = new Mock<IPermissionStore>();

_mockPermissionKeyProvider.Setup(x => x.GetKey()).Returns("test-key");

_mockPermissionService.Setup(x => x.HasPermissionAsync(It.IsAny<PermissionSection>(), It.IsAny<PermissionFunction>())).ReturnsAsync(true);

Services.AddSingleton(_mockMediator.Object);
Services.AddSingleton(_mockNavigationManager.Object);
Services.AddSingleton(_mockPermissionKeyProvider.Object);

Services.AddSingleton(_mockPermissionService.Object);
Services.AddSingleton(_mockAuthStateProvider.Object);
Services.AddSingleton(_mockPermissionStore.Object);

// Add required permission components
ComponentFactories.AddStub<RequirePermission>();
ComponentFactories.AddStub<RequireSectionAccess>();

var claims = new[] { new Claim(ClaimTypes.Role, "Estate"), new Claim("estateId", Guid.NewGuid().ToString()), new Claim("http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier", "EstateUser") };
this.AddTestAuthorization().SetClaims(claims);
}

protected readonly Mock<IMediator> _mockMediator;
protected readonly Mock<NavigationManager> _mockNavigationManager;
protected readonly Mock<IPermissionKeyProvider> _mockPermissionKeyProvider;
protected readonly Mock<IPermissionService> _mockPermissionService;
protected readonly Mock<AuthenticationStateProvider> _mockAuthStateProvider;
protected readonly Mock<IPermissionStore> _mockPermissionStore;
}

public class FileProcessingIndexPageTests : BaseTest
{
[Fact]
public void FileProcessingIndex_RendersCorrectly()
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using Bunit;
using EstateManagementUI.BlazorServer.Components.Permissions;
using EstateManagementUI.BlazorServer.Permissions;
using EstateManagementUI.BlazorServer.Tests.Pages.FileProcessing;
using EstateManagementUI.BusinessLogic.Models;
using EstateManagementUI.BusinessLogic.Requests;
using MediatR;
Expand All @@ -13,28 +14,8 @@

namespace EstateManagementUI.BlazorServer.Tests.Pages.Merchants;

public class MerchantsIndexPageTests : TestContext
public class MerchantsIndexPageTests : BaseTest
{
private readonly Mock<IMediator> _mockMediator;
private readonly Mock<IPermissionKeyProvider> _mockPermissionKeyProvider;
private readonly Mock<NavigationManager> _mockNavigationManager;

public MerchantsIndexPageTests()
{
_mockMediator = new Mock<IMediator>();
_mockPermissionKeyProvider = new Mock<IPermissionKeyProvider>();
_mockNavigationManager = new Mock<NavigationManager>();

_mockPermissionKeyProvider.Setup(x => x.GetKey()).Returns("test-key");

Services.AddSingleton(_mockMediator.Object);
Services.AddSingleton(_mockPermissionKeyProvider.Object);
Services.AddSingleton(_mockNavigationManager.Object);

// Add required permission components
ComponentFactories.AddStub<RequirePermission>();
}

[Fact]
public void MerchantsIndex_InitialState_ShowsLoadingIndicator()
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using Bunit;
using EstateManagementUI.BlazorServer.Components.Pages.Merchants;
using EstateManagementUI.BlazorServer.Models;
using EstateManagementUI.BlazorServer.Tests.Pages.FileProcessing;
using EstateManagementUI.BusinessLogic.Requests;
using MediatR;
using Microsoft.AspNetCore.Components;
Expand All @@ -12,20 +13,8 @@

namespace EstateManagementUI.BlazorServer.Tests.Pages.Merchants;

public class MerchantsViewPageTests : TestContext
public class MerchantsViewPageTests : BaseTest
{
private readonly Mock<IMediator> _mockMediator;
private readonly Mock<NavigationManager> _mockNavigationManager;

public MerchantsViewPageTests()
{
_mockMediator = new Mock<IMediator>();
_mockNavigationManager = new Mock<NavigationManager>();

Services.AddSingleton(_mockMediator.Object);
Services.AddSingleton(_mockNavigationManager.Object);
}

[Fact]
public void MerchantsView_InitialState_ShowsLoadingIndicator()
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using Bunit;
using EstateManagementUI.BlazorServer.Components.Permissions;
using EstateManagementUI.BlazorServer.Permissions;
using EstateManagementUI.BlazorServer.Tests.Pages.FileProcessing;
using EstateManagementUI.BusinessLogic.Models;
using EstateManagementUI.BusinessLogic.Requests;
using MediatR;
Expand All @@ -13,28 +14,8 @@

namespace EstateManagementUI.BlazorServer.Tests.Pages.Operators;

public class OperatorsIndexPageTests : TestContext
public class OperatorsIndexPageTests : BaseTest
{
private readonly Mock<IMediator> _mockMediator;
private readonly Mock<IPermissionKeyProvider> _mockPermissionKeyProvider;
private readonly Mock<NavigationManager> _mockNavigationManager;

public OperatorsIndexPageTests()
{
_mockMediator = new Mock<IMediator>();
_mockPermissionKeyProvider = new Mock<IPermissionKeyProvider>();
_mockNavigationManager = new Mock<NavigationManager>();

_mockPermissionKeyProvider.Setup(x => x.GetKey()).Returns("test-key");

Services.AddSingleton(_mockMediator.Object);
Services.AddSingleton(_mockPermissionKeyProvider.Object);
Services.AddSingleton(_mockNavigationManager.Object);

// Add required permission components
ComponentFactories.AddStub<RequirePermission>();
}

[Fact]
public void OperatorsIndex_RendersCorrectly()
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using Bunit;
using EstateManagementUI.BlazorServer.Components.Pages.Operators;
using EstateManagementUI.BlazorServer.Models;
using EstateManagementUI.BlazorServer.Tests.Pages.FileProcessing;
using EstateManagementUI.BusinessLogic.Requests;
using MediatR;
using Microsoft.AspNetCore.Components;
Expand All @@ -12,20 +13,8 @@

namespace EstateManagementUI.BlazorServer.Tests.Pages.Operators;

public class OperatorsViewPageTests : TestContext
public class OperatorsViewPageTests : BaseTest
{
private readonly Mock<IMediator> _mockMediator;
private readonly Mock<NavigationManager> _mockNavigationManager;

public OperatorsViewPageTests()
{
_mockMediator = new Mock<IMediator>();
_mockNavigationManager = new Mock<NavigationManager>();

Services.AddSingleton(_mockMediator.Object);
Services.AddSingleton(_mockNavigationManager.Object);
}

[Fact]
public void OperatorsView_RendersCorrectly()
{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using Bunit;
using EstateManagementUI.BlazorServer.Components.Permissions;
using EstateManagementUI.BlazorServer.Permissions;
using EstateManagementUI.BlazorServer.Tests.Pages.FileProcessing;
using MediatR;
using Microsoft.AspNetCore.Components;
using Microsoft.Extensions.DependencyInjection;
Expand All @@ -10,28 +11,8 @@

namespace EstateManagementUI.BlazorServer.Tests.Pages.Permissions;

public class PermissionsIndexPageTests : TestContext
public class PermissionsIndexPageTests : BaseTest
{
private readonly Mock<IPermissionStore> _mockPermissionStore;
private readonly Mock<NavigationManager> _mockNavigationManager;
private readonly Mock<IPermissionKeyProvider> _mockPermissionKeyProvider;

public PermissionsIndexPageTests()
{
_mockPermissionStore = new Mock<IPermissionStore>();
_mockNavigationManager = new Mock<NavigationManager>();
_mockPermissionKeyProvider = new Mock<IPermissionKeyProvider>();

_mockPermissionKeyProvider.Setup(x => x.GetKey()).Returns("test-key");

Services.AddSingleton(_mockPermissionStore.Object);
Services.AddSingleton(_mockNavigationManager.Object);
Services.AddSingleton(_mockPermissionKeyProvider.Object);

ComponentFactories.AddStub<RequirePermission>();
ComponentFactories.AddStub<RequireSectionAccess>();
}

[Fact]
public void PermissionsIndex_RendersCorrectly()
{
Expand Down
Loading
Loading