Skip to content

Commit ba397ba

Browse files
authored
Merge pull request #115 from brandhuf/refractor_circular_dependencies
refractor circular dependencies between Domain, Fluent and Loader
2 parents 0deaa8e + 7f6c14e commit ba397ba

File tree

7 files changed

+25
-8
lines changed

7 files changed

+25
-8
lines changed

ArchUnitNET/Fluent/IHasDescription.cs ArchUnitNET/Domain/IHasDescription.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
//
55
// SPDX-License-Identifier: Apache-2.0
66

7-
namespace ArchUnitNET.Fluent
7+
namespace ArchUnitNET.Domain
88
{
99
public interface IHasDescription
1010
{

ArchUnitNET/Fluent/IObjectProvider.cs ArchUnitNET/Domain/IObjectProvider.cs

+1-2
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,8 @@
55
// SPDX-License-Identifier: Apache-2.0
66

77
using System.Collections.Generic;
8-
using ArchUnitNET.Domain;
98

10-
namespace ArchUnitNET.Fluent
9+
namespace ArchUnitNET.Domain
1110
{
1211
public interface IObjectProvider<out T> : IHasDescription where T : ICanBeAnalyzed
1312
{

ArchUnitNET/Loader/MethodMemberInstance.cs ArchUnitNET/Domain/MethodMemberInstance.cs

+1-2
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,8 @@
77

88
using System.Collections.Generic;
99
using System.Linq;
10-
using ArchUnitNET.Domain;
1110

12-
namespace ArchUnitNET.Loader
11+
namespace ArchUnitNET.Domain
1312
{
1413
public class MethodMemberInstance : ITypeInstance<IType>
1514
{

ArchUnitNET/Fluent/Extensions/SyntaxElementExtensions.cs

+2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
//
55
// SPDX-License-Identifier: Apache-2.0
66

7+
using ArchUnitNET.Domain;
8+
79
namespace ArchUnitNET.Fluent.Extensions
810
{
911
public static class SyntaxElementExtensions

ArchUnitNET/Fluent/LogicalConjunction.cs

+1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
using System;
88
using System.Collections.Generic;
9+
using ArchUnitNET.Domain;
910

1011
namespace ArchUnitNET.Fluent
1112
{

ArchUnitNET/Fluent/Slices/SliceIdentifier.cs

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
// SPDX-License-Identifier: Apache-2.0
66
//
77

8+
using ArchUnitNET.Domain;
89
using ArchUnitNET.Fluent.Freeze;
910

1011
namespace ArchUnitNET.Fluent.Slices

ArchUnitNETTests/ArchitectureTests/ArchUnitArchitectureTests.cs

+18-3
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
using ArchUnitNET.Domain;
99
using ArchUnitNET.Fluent;
10+
using ArchUnitNET.Fluent.Slices;
1011
using ArchUnitNET.Loader;
1112
using ArchUnitNET.xUnit;
1213
using Xunit;
@@ -23,11 +24,19 @@ public class ArchUnitArchitectureTests
2324
private readonly Architecture _architecture =
2425
new ArchLoader().LoadAssembly(typeof(Architecture).Assembly).Build();
2526

26-
[Fact(Skip = "Need more refactoring")]
27-
public void DomainHasNoDependencyOnFluentAndLoader()
27+
[Fact]
28+
public void DomainHasNoDependencyOnFluent()
2829
{
2930
Types().That().ResideInNamespace(DomainNamespace)
30-
.Should().NotDependOnAny(new[] {LoaderNamespace, FluentNamespace})
31+
.Should().NotDependOnAny(FluentNamespace)
32+
.Check(_architecture);
33+
}
34+
35+
[Fact]
36+
public void DomainHasNoDependencyOnLoader()
37+
{
38+
Types().That().ResideInNamespace(DomainNamespace)
39+
.Should().NotDependOnAny(LoaderNamespace)
3140
.Check(_architecture);
3241
}
3342

@@ -46,5 +55,11 @@ public void FluentHasNoDependencyOnLoader()
4655
.Should().NotDependOnAny(LoaderNamespace)
4756
.Check(_architecture);
4857
}
58+
59+
[Fact]
60+
public void NoCircularDependencies()
61+
{
62+
SliceRuleDefinition.Slices().Matching("ArchUnitNET.(*)").Should().BeFreeOfCycles().Check(_architecture);
63+
}
4964
}
5065
}

0 commit comments

Comments
 (0)