1- use rust_arkitect:: dsl:: { ArchitecturalRules , Arkitect , Project } ;
1+ use rust_arkitect:: dsl_v2:: architectural_rules:: ArchitecturalRules ;
2+ use rust_arkitect:: dsl_v2:: arkitect:: Arkitect ;
3+ use rust_arkitect:: dsl_v2:: project:: Project ;
24
35#[ test]
46fn test_vertical_slices_architecture_rules ( ) {
57 Arkitect :: init_logger ( ) ;
68
79 #[ rustfmt:: skip]
810 let rules = ArchitecturalRules :: define ( )
9- . component ( "Conversion" )
10- . located_at ( "sample_project::conversion" )
11- . may_depend_on ( & [ "Contracts" ] )
11+ . rules_for_module ( "sample_project::conversion" )
12+ . allow_dependencies_on ( & [ "sample_project::contracts" ] )
1213
13- . component ( "PolicyManagement" )
14- . located_at ( "sample_project::policy_management" )
15- . may_depend_on ( & [ "Contracts" ] )
14+ . rules_for_module ( "sample_project::policy_management" )
15+ . allow_dependencies_on ( & [ "sample_project::contracts" ] )
1616
17- . component ( "Contracts" )
18- . located_at ( "sample_project::contracts" )
17+ . rules_for_module ( "sample_project::contracts" )
1918 . must_not_depend_on_anything ( )
2019
21- . finalize ( ) ;
20+ . build ( ) ;
2221
23- let project = Project :: from_relative_path ( file ! ( ) , "./../" ) ;
22+ let project = Project :: new ( ) ;
2423
2524 let result = Arkitect :: ensure_that ( project) . complies_with ( rules) ;
2625
@@ -35,18 +34,16 @@ fn test_mvc_architecture_rules() {
3534
3635 #[ rustfmt:: skip]
3736 let rules = ArchitecturalRules :: define ( )
38- . component ( "Model" )
39- . located_at ( "sample_project::policy_management::model" )
37+ . rules_for_module ( "sample_project::policy_management::model" )
4038 . must_not_depend_on_anything ( )
4139
42- . component ( "Repository" )
43- . located_at ( "sample_project::policy_management::repository" )
44- . may_depend_on ( & [ "Model" ] )
40+ . rules_for_module ( "sample_project::policy_management::repository" )
41+ . allow_dependencies_on ( & [ "sample_project::policy_management::model" ] )
42+
43+ . rules_for_module ( "sample_project::policy_management::controller" )
44+ . allow_dependencies_on ( & [ "sample_project::policy_management::repository" , "sample_project::policy_management::model" ] )
4545
46- . component ( "Controller" )
47- . located_at ( "sample_project::policy_management::controller" )
48- . may_depend_on ( & [ "Repository" , "Model" ] )
49- . finalize ( ) ;
46+ . build ( ) ;
5047
5148 let result = Arkitect :: ensure_that ( project) . complies_with ( rules) ;
5249
@@ -61,20 +58,16 @@ fn test_three_tier_architecture() {
6158
6259 #[ rustfmt:: skip]
6360 let rules = ArchitecturalRules :: define ( )
64- . component ( "Application" )
65- . located_at ( "sample_project::conversion::application" )
66- . allow_external_dependencies ( & [ "sample_project::contract" ] )
67- . may_depend_on ( & [ "Domain" ] )
61+ . rules_for_module ( "sample_project::conversion::application" )
62+ . allow_dependencies_on ( & [ "sample_project::conversion::domain" , "sample_project::contract" ] )
6863
69- . component ( "Domain" )
70- . located_at ( "sample_project::conversion::domain" )
64+ . rules_for_module ( "sample_project::conversion::domain" )
7165 . must_not_depend_on_anything ( )
7266
73- . component ( "Infrastructure" )
74- . located_at ( "sample_project::conversion::infrastructure" )
75- . may_depend_on ( & [ "Domain" , "Application" ] )
67+ . rules_for_module ( "sample_project::conversion::infrastructure" )
68+ . allow_dependencies_on ( & [ "sample_project::conversion::domain" , "sample_project::conversion::application" ] )
7669
77- . finalize ( ) ;
70+ . build ( ) ;
7871
7972 let result = Arkitect :: ensure_that ( project) . complies_with ( rules) ;
8073
0 commit comments