// Path: ghostwriter-test-java-v7/src/test/java/io/ghostwriter/excluded/ExcludedPackageClass.java
// @Include // explicitly @Include, just to make sure this does not meddle with the package exclude mechanism
// public class ExcludedPackageClass {
// 
//     public int meaningOfLife() {
//         return 42;
//     }
// 
// }
// 
// Path: ghostwriter-test-java-v7/src/test/java/io/ghostwriter/excluded/nested/ExcludedNestedPackageClass.java
// @Include // explicitly @Include, just to make sure this does not meddle with the package exclude mechanism
// public class ExcludedNestedPackageClass {
// 
//     public int meaningOfLife() {
//         return 42;
//     }
// 
// }
// 
// Path: ghostwriter-test-java-v7/src/main/java/io/ghostwriter/test/TestBase.java
// public class TestBase {
// 
//     public static final int NUMBER_OF_ENTRIES_PER_TRACED_PARAMETER = 2; // first value should be the name, the second one is the value of the parameter
// 
//     @BeforeClass
//     public static void setup() {
//         // switch to the in-memory implementation, so we can do unit testing.
//         GhostWriter.setTracerProvider(InMemoryTracerProvider.INSTANCE);
//     }
// 
//     @Before
//     public void configureInMemoryTracer() {
//         fetchedPreparedInMemoryTracer();
//     }
// 
//     //FIXME(snorbi07): refactor to a more meaningful name... the difficulty is coming up with one
//     public InMemoryTracer fetchedPreparedInMemoryTracer() {
//         InMemoryTracer tracer = InMemoryTracerProvider.INSTANCE.getTracer();
//         // we only need value change tracker in the specific tests and there we enable it manually
//         tracer.disableValueChangeTracking();
//         // make sure that entering/exiting tracing is enabled.
//         tracer.enableEnteringExitingTracking();
//         // we clear manually because the @Test method is also traced and it pollutes the entering logs.
//         tracer.clearMessages();
// 
//         return tracer;
//     }
// 
//     public void disableValueChangeTracking() {
//         InMemoryTracerProvider.INSTANCE.getTracer().disableValueChangeTracking();
//     }
// 
//     public void enableValueChangeTracking() {
//         InMemoryTracerProvider.INSTANCE.getTracer().enableValueChangeTracking();
//     }
// 
// }


import io.ghostwriter.excluded.ExcludedPackageClass;
import io.ghostwriter.excluded.nested.ExcludedNestedPackageClass;
import io.ghostwriter.test.TestBase;
import org.junit.Test;
import java.util.*;
import static org.junit.Assert.assertEquals;
package io.ghostwriter;




public class EnvironmentExcludeTest extends TestBase {

    @Test
    public void testExcludedPackageClass() {
        final InMemoryTracer inMemoryTracer = fetchedPreparedInMemoryTracer();
        inMemoryTracer.clearMessages();
        ExcludedPackageClass someVal = new ExcludedPackageClass();
        someVal.meaningOfLife();
        final int numMessages = inMemoryTracer.numberOfMessages();
// Path: ghostwriter-test-java-v7/src/test/java/io/ghostwriter/excluded/ExcludedPackageClass.java
// @Include // explicitly @Include, just to make sure this does not meddle with the package exclude mechanism
// public class ExcludedPackageClass {
// 
//     public int meaningOfLife() {
//         return 42;
//     }
// 
// }
// 
// Path: ghostwriter-test-java-v7/src/test/java/io/ghostwriter/excluded/nested/ExcludedNestedPackageClass.java
// @Include // explicitly @Include, just to make sure this does not meddle with the package exclude mechanism
// public class ExcludedNestedPackageClass {
// 
//     public int meaningOfLife() {
//         return 42;
//     }
// 
// }
// 
// Path: ghostwriter-test-java-v7/src/main/java/io/ghostwriter/test/TestBase.java
// public class TestBase {
// 
//     public static final int NUMBER_OF_ENTRIES_PER_TRACED_PARAMETER = 2; // first value should be the name, the second one is the value of the parameter
// 
//     @BeforeClass
//     public static void setup() {
//         // switch to the in-memory implementation, so we can do unit testing.
//         GhostWriter.setTracerProvider(InMemoryTracerProvider.INSTANCE);
//     }
// 
//     @Before
//     public void configureInMemoryTracer() {
//         fetchedPreparedInMemoryTracer();
//     }
// 
//     //FIXME(snorbi07): refactor to a more meaningful name... the difficulty is coming up with one
//     public InMemoryTracer fetchedPreparedInMemoryTracer() {
//         InMemoryTracer tracer = InMemoryTracerProvider.INSTANCE.getTracer();
//         // we only need value change tracker in the specific tests and there we enable it manually
//         tracer.disableValueChangeTracking();
//         // make sure that entering/exiting tracing is enabled.
//         tracer.enableEnteringExitingTracking();
//         // we clear manually because the @Test method is also traced and it pollutes the entering logs.
//         tracer.clearMessages();
// 
//         return tracer;
//     }
// 
//     public void disableValueChangeTracking() {
//         InMemoryTracerProvider.INSTANCE.getTracer().disableValueChangeTracking();
//     }
// 
//     public void enableValueChangeTracking() {
//         InMemoryTracerProvider.INSTANCE.getTracer().enableValueChangeTracking();
//     }
// 
// }


// Path: ghostwriter-test-java-v7/src/test/java/io/ghostwriter/EnvironmentExcludeTest.java
import io.ghostwriter.excluded.ExcludedPackageClass;
import io.ghostwriter.excluded.nested.ExcludedNestedPackageClass;
import io.ghostwriter.test.TestBase;
import org.junit.Test;
import java.util.*;
import static org.junit.Assert.assertEquals;

package io.ghostwriter;




public class EnvironmentExcludeTest extends TestBase {

    @Test
    public void testExcludedPackageClass() {
        final InMemoryTracer inMemoryTracer = fetchedPreparedInMemoryTracer();
        inMemoryTracer.clearMessages();
        ExcludedPackageClass someVal = new ExcludedPackageClass();
        someVal.meaningOfLife();
        final int numMessages = inMemoryTracer.numberOfMessages();
        assertEquals("Class in excluded package should not produce GW events!",