5151import org .junit .jupiter .api .Test ;
5252import org .mockito .Mockito ;
5353
54+ import static org .junit .jupiter .api .Assertions .assertFalse ;
5455import static org .junit .jupiter .api .Assertions .assertNotNull ;
5556import static org .junit .jupiter .api .Assertions .assertNull ;
5657import static org .junit .jupiter .api .Assertions .assertTrue ;
@@ -88,15 +89,22 @@ protected List<Object> getSessionServices() {
8889 return services ;
8990 }
9091
91- @ Test
92- void testTrivialConsumer () throws Exception {
93- InternalMavenSession .from (InternalSession .from (session ))
92+ /**
93+ * Configures {@link #session} with the root directory of a test in {@code src/test/resources/consumer}.
94+ * Returns the request in case the caller wants to apply more configuration.
95+ */
96+ private MavenExecutionRequest setRootDirectory (String test ) {
97+ MavenExecutionRequest request = InternalMavenSession .from (InternalSession .from (session ))
9498 .getMavenSession ()
95- .getRequest ()
96- .setRootDirectory (Paths .get ("src/test/resources/consumer/trivial" ));
97-
98- Path file = Paths . get ( "src/test/resources/consumer/trivial/child/pom.xml" );
99+ .getRequest ();
100+ request .setRootDirectory (Paths .get ("src/test/resources/consumer" , test ));
101+ return request ;
102+ }
99103
104+ /**
105+ * Builds the effective model for the given {@code pom.xml} file.
106+ */
107+ private MavenProject getEffectiveModel (Path file ) {
100108 ModelBuilder .ModelBuilderSession mbs = modelBuilder .newSession ();
101109 InternalSession .from (session ).getData ().set (SessionData .key (ModelBuilder .ModelBuilderSession .class ), mbs );
102110 Model orgModel = mbs .build (ModelBuilderRequest .builder ()
@@ -108,39 +116,50 @@ void testTrivialConsumer() throws Exception {
108116
109117 MavenProject project = new MavenProject (orgModel );
110118 project .setOriginalModel (new org .apache .maven .model .Model (orgModel ));
119+ return project ;
120+ }
121+
122+ @ Test
123+ void testTrivialConsumer () throws Exception {
124+ setRootDirectory ("trivial" );
125+ Path file = Paths .get ("src/test/resources/consumer/trivial/child/pom.xml" );
126+
127+ MavenProject project = getEffectiveModel (file );
111128 Model model = builder .build (session , project , Sources .buildSource (file ));
112129
113130 assertNotNull (model );
131+ assertNotNull (model .getDependencies ());
114132 }
115133
116134 @ Test
117135 void testSimpleConsumer () throws Exception {
118- MavenExecutionRequest request = InternalMavenSession .from (InternalSession .from (session ))
119- .getMavenSession ()
120- .getRequest ();
121- request .setRootDirectory (Paths .get ("src/test/resources/consumer/simple" ));
136+ MavenExecutionRequest request = setRootDirectory ("simple" );
122137 request .getUserProperties ().setProperty ("changelist" , "MNG6957" );
123-
124138 Path file = Paths .get ("src/test/resources/consumer/simple/simple-parent/simple-weather/pom.xml" );
125139
126- ModelBuilder .ModelBuilderSession mbs = modelBuilder .newSession ();
127- InternalSession .from (session ).getData ().set (SessionData .key (ModelBuilder .ModelBuilderSession .class ), mbs );
128- Model orgModel = mbs .build (ModelBuilderRequest .builder ()
129- .session (InternalSession .from (session ))
130- .source (Sources .buildSource (file ))
131- .requestType (ModelBuilderRequest .RequestType .BUILD_PROJECT )
132- .build ())
133- .getEffectiveModel ();
134-
135- MavenProject project = new MavenProject (orgModel );
136- project .setOriginalModel (new org .apache .maven .model .Model (orgModel ));
140+ MavenProject project = getEffectiveModel (file );
137141 request .setRootDirectory (Paths .get ("src/test/resources/consumer/simple" ));
138142 Model model = builder .build (session , project , Sources .buildSource (file ));
139143
140144 assertNotNull (model );
145+ assertFalse (model .getDependencies ().isEmpty ());
141146 assertTrue (model .getProfiles ().isEmpty ());
142147 }
143148
149+ @ Test
150+ void testMultiModuleConsumer () throws Exception {
151+ setRootDirectory ("multi-module" );
152+ Path file = Paths .get ("src/test/resources/consumer/multi-module/pom.xml" );
153+
154+ MavenProject project = getEffectiveModel (file );
155+ Model model = builder .build (session , project , Sources .buildSource (file ));
156+
157+ assertNotNull (model );
158+ assertNull (model .getBuild ());
159+ assertTrue (model .getDependencies ().isEmpty ());
160+ assertFalse (model .getDependencyManagement ().getDependencies ().isEmpty ());
161+ }
162+
144163 @ Test
145164 void testScmInheritance () throws Exception {
146165 Model model = Model .newBuilder ()
0 commit comments