init
This commit is contained in:
7
test/Mccn.ArchitectureTests/Abstractions/BaseTest.cs
Normal file
7
test/Mccn.ArchitectureTests/Abstractions/BaseTest.cs
Normal file
@@ -0,0 +1,7 @@
|
||||
namespace Mccn.ArchitectureTests.Abstractions;
|
||||
|
||||
public abstract class BaseTest
|
||||
{
|
||||
protected const string UsersNamespace = "Mccn.Modules.Users";
|
||||
protected const string HelloNamespace = "Mccn.Modules.Hello";
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
using FluentAssertions;
|
||||
using NetArchTest.Rules;
|
||||
|
||||
namespace Mccn.ArchitectureTests.Abstractions;
|
||||
|
||||
internal static class TestResultExtensions
|
||||
{
|
||||
internal static void ShouldBeSuccessful(this TestResult testResult)
|
||||
{
|
||||
testResult.FailingTypes?.Should().BeEmpty();
|
||||
}
|
||||
}
|
||||
46
test/Mccn.ArchitectureTests/Layers/ModuleTests.cs
Normal file
46
test/Mccn.ArchitectureTests/Layers/ModuleTests.cs
Normal file
@@ -0,0 +1,46 @@
|
||||
using System.Reflection;
|
||||
using Mccn.ArchitectureTests.Abstractions;
|
||||
using Mccn.Modules.Users.Application;
|
||||
using Mccn.Modules.Users.Domain.Users;
|
||||
using Mccn.Modules.Users.Infrastructure;
|
||||
using NetArchTest.Rules;
|
||||
|
||||
namespace Mccn.ArchitectureTests.Layers;
|
||||
|
||||
public class ModuleTests : BaseTest
|
||||
{
|
||||
[Fact]
|
||||
public void UsersModule_ShouldNotHaveDependencyOn_HelloModule()
|
||||
{
|
||||
List<Assembly> usersAssemblies =
|
||||
[
|
||||
typeof(User).Assembly,
|
||||
AssemblyReference.Assembly,
|
||||
Modules.Users.Presentation.AssemblyReference.Assembly,
|
||||
typeof(DependencyInjection).Assembly
|
||||
];
|
||||
|
||||
Types.InAssemblies(usersAssemblies)
|
||||
.Should()
|
||||
.NotHaveDependencyOn(HelloNamespace)
|
||||
.GetResult()
|
||||
.ShouldBeSuccessful();
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void HelloModule_ShouldNotHaveDependencyOn_UsersModule()
|
||||
{
|
||||
List<Assembly> helloAssemblies =
|
||||
[
|
||||
Modules.Hello.Application.AssemblyReference.Assembly,
|
||||
Modules.Hello.Presentation.AssemblyReference.Assembly,
|
||||
typeof(Modules.Hello.Infrastructure.DependencyInjection).Assembly
|
||||
];
|
||||
|
||||
Types.InAssemblies(helloAssemblies)
|
||||
.Should()
|
||||
.NotHaveDependencyOn(UsersNamespace)
|
||||
.GetResult()
|
||||
.ShouldBeSuccessful();
|
||||
}
|
||||
}
|
||||
29
test/Mccn.ArchitectureTests/Mccn.ArchitectureTests.csproj
Normal file
29
test/Mccn.ArchitectureTests/Mccn.ArchitectureTests.csproj
Normal file
@@ -0,0 +1,29 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net10.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
<IsPackable>false</IsPackable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="coverlet.collector" Version="6.0.4"/>
|
||||
<PackageReference Include="FluentAssertions" Version="8.8.0"/>
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.14.1"/>
|
||||
<PackageReference Include="NetArchTest.Rules" Version="1.3.2"/>
|
||||
<PackageReference Include="xunit" Version="2.9.3"/>
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="3.1.4"/>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Using Include="Xunit"/>
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\..\src\API\Mccn.Api\Mccn.Api.csproj"/>
|
||||
<ProjectReference Include="..\..\src\Modules\Users\Mccn.Modules.Users.Infrastructure\Mccn.Modules.Users.Infrastructure.csproj"/>
|
||||
<ProjectReference Include="..\..\src\Modules\Hello\Mccn.Modules.Hello.Infrastructure\Mccn.Modules.Hello.Infrastructure.csproj"/>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
Reference in New Issue
Block a user