/*
 * Bach - Java Shell Builder
 * Copyright (C) 2020 Christian Stein
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package de.sormuras.bach.execution;

import static org.junit.jupiter.api.Assertions.assertSame;
import static org.junit.jupiter.api.Assertions.assertTrue;

import de.sormuras.bach.api.Projects;
import org.junit.jupiter.api.Test;

class BuildTaskGeneratorTests {

  @Test
  void checkBuildTaskGenerationForMultiModuleProjectWithTests() {
    var project = Projects.newProjectWithAllBellsAndWhistles();
    var generator = new BuildTaskGenerator(project, true);
    assertSame(project, generator.project());
    assertTrue(generator.verbose());
    var root = generator.get();
    var program = Snippet.program(root);
    assertTrue(program.size() > 10);
    // program.forEach(System.out::println);
  }
}

@@ -664,16 +664,83 @@
 ution;%0A%0A
+import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;%0A
 import s
@@ -790,16 +790,16 @@
 rtSame;%0A
-
 import s
@@ -922,16 +922,50 @@
 pi.Test;
+%0Aimport test.base.jdk.Compilation;
 %0A%0Aclass 
@@ -1283,15 +1283,34 @@
 var 
+p
 ro
-ot = 
+gram = Snippet.program(
 gene
@@ -1324,94 +1324,121 @@
 et()
+)
 ;%0A    
-var program = Snippet.
+try %7B%0A      assertDoesNotThrow(() -%3E Compilation.compile(
 program
-(root
+)
 );%0A    
-assertTrue(program.size() %3E 10);
+%7D catch (AssertionError e) %7B
 %0A    
-//
+ 
  pro
@@ -1461,11 +1461,11 @@
 tem.
-out
+err
 ::pr
@@ -1472,14 +1472,35 @@
 intln);%0A
+      throw e;%0A    %7D%0A
   %7D%0A%7D%0A

Check generated build program is compilable