// Path: core/test/src/test/java/tech/harmonysoft/oss/traute/test/util/TestConstants.java
// public static final String CLASS_NAME = "Test";
// 
// Path: core/test/src/test/java/tech/harmonysoft/oss/traute/test/util/TestConstants.java
// public static final String PACKAGE = "tech.harmonysoft.oss.traute.test";
// 
// Path: core/test/src/test/java/tech/harmonysoft/oss/traute/test/util/TestUtil.java
// @NotNull
// public static String prepareParameterTestSource(@Nullable String importString,
//                                                 @NotNull String testMethod,
//                                                 @NotNull String callArguments)
// {
//     return prepareParameterTestSource(PACKAGE, importString, testMethod, callArguments);
// }
// 
// Path: core/test/src/test/java/tech/harmonysoft/oss/traute/test/util/TestUtil.java
// @NotNull
// public static String prepareReturnTestSource(@NotNull String methodBody) {
//     return prepareReturnTestSource(NotNull.class, methodBody);
// }


import org.jetbrains.annotations.NotNull;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvSource;
import tech.harmonysoft.oss.traute.test.fixture.NN;
import javax.tools.JavaFileObject;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static tech.harmonysoft.oss.traute.test.util.TestConstants.CLASS_NAME;
import static tech.harmonysoft.oss.traute.test.util.TestConstants.PACKAGE;
import static tech.harmonysoft.oss.traute.test.util.TestUtil.prepareParameterTestSource;
import static tech.harmonysoft.oss.traute.test.util.TestUtil.prepareReturnTestSource;
package tech.harmonysoft.oss.traute.test.suite;





public abstract class LoggingTest extends AbstractTrauteTest {

    @ParameterizedTest
    @CsvSource(value = { "true", "false" })
    public void verboseMode_instrumentation(boolean verbose) {
        settingsBuilder.withVerboseMode(verbose);
        String testSource = String.format(
                "package %s;\n" +
                "\n" +
                "import %s;\n" +
                "\n" +
                "public class %s {\n" +
                "\n" +
                "  @NotNull\n" +
                "  public Integer test(@NotNull Integer i1, @NotNull Integer i2) {\n" +
                "    return i1 + i2;\n" +
                "  }\n" +
                "\n" +
                "  @NotNull\n" +
                "  private Integer negative(@NotNull Integer i) {\n" +
                "      return -1 * i;\n" +
                "  }\n" +
                "\n" +
                "  public static void main(String[] args) {\n" +
                "    new Test().test(1, 2);\n" +
                "  }\n" +
// Path: core/test/src/test/java/tech/harmonysoft/oss/traute/test/util/TestConstants.java
// public static final String CLASS_NAME = "Test";
// 
// Path: core/test/src/test/java/tech/harmonysoft/oss/traute/test/util/TestConstants.java
// public static final String PACKAGE = "tech.harmonysoft.oss.traute.test";
// 
// Path: core/test/src/test/java/tech/harmonysoft/oss/traute/test/util/TestUtil.java
// @NotNull
// public static String prepareParameterTestSource(@Nullable String importString,
//                                                 @NotNull String testMethod,
//                                                 @NotNull String callArguments)
// {
//     return prepareParameterTestSource(PACKAGE, importString, testMethod, callArguments);
// }
// 
// Path: core/test/src/test/java/tech/harmonysoft/oss/traute/test/util/TestUtil.java
// @NotNull
// public static String prepareReturnTestSource(@NotNull String methodBody) {
//     return prepareReturnTestSource(NotNull.class, methodBody);
// }


// Path: core/test/src/test/java/tech/harmonysoft/oss/traute/test/suite/LoggingTest.java
import org.jetbrains.annotations.NotNull;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.CsvSource;
import tech.harmonysoft.oss.traute.test.fixture.NN;
import javax.tools.JavaFileObject;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static tech.harmonysoft.oss.traute.test.util.TestConstants.CLASS_NAME;
import static tech.harmonysoft.oss.traute.test.util.TestConstants.PACKAGE;
import static tech.harmonysoft.oss.traute.test.util.TestUtil.prepareParameterTestSource;
import static tech.harmonysoft.oss.traute.test.util.TestUtil.prepareReturnTestSource;

package tech.harmonysoft.oss.traute.test.suite;





public abstract class LoggingTest extends AbstractTrauteTest {

    @ParameterizedTest
    @CsvSource(value = { "true", "false" })
    public void verboseMode_instrumentation(boolean verbose) {
        settingsBuilder.withVerboseMode(verbose);
        String testSource = String.format(
                "package %s;\n" +
                "\n" +
                "import %s;\n" +
                "\n" +
                "public class %s {\n" +
                "\n" +
                "  @NotNull\n" +
                "  public Integer test(@NotNull Integer i1, @NotNull Integer i2) {\n" +
                "    return i1 + i2;\n" +
                "  }\n" +
                "\n" +
                "  @NotNull\n" +
                "  private Integer negative(@NotNull Integer i) {\n" +
                "      return -1 * i;\n" +
                "  }\n" +
                "\n" +
                "  public static void main(String[] args) {\n" +
                "    new Test().test(1, 2);\n" +
                "  }\n" +
                "}", PACKAGE, NotNull.class.getName(), CLASS_NAME);