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 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 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(); } }