// Path: src/test/java/com/github/havarunner/TestHelper.java
// public static void run(HavaRunner havaRunner, RunNotifier runNotifier) {
//     havaRunner.run(runNotifier);
// }
// 
// Path: src/test/java/com/github/havarunner/TestHelper.java
// public static void runAndIgnoreErrors(HavaRunner havaRunner) {
//     run(havaRunner, new RunNotifier());
// }


import com.github.havarunner.HavaRunner;
import com.github.havarunner.annotation.AfterAll;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
import org.junit.Test;
import org.junit.experimental.runners.Enclosed;
import org.junit.runner.RunWith;
import java.util.Collection;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import static com.github.havarunner.TestHelper.run;
import static com.github.havarunner.TestHelper.runAndIgnoreErrors;
import static com.google.common.base.Preconditions.checkNotNull;
import static org.junit.Assert.*;
            assertTrue(worldIsBuilt);
            assertTrue(worldIsDestroyed);
        }


        static class After {
            After() {
                worldIsBuilt = true;
            }

            @Test
            void live_in_the_world() {

            }

            @AfterAll
            void destroy_the_world() {
                worldIsDestroyed = true;
            }
        }
    }

    public static class when_test_extends_another_test_class {
        static Long universeIsBuilt;
        static Long worldIsBuilt;
        static Long worldIsDestroyed;
        static Long universeIsDestroyed;

        @Test
        public void HavaRunner_calls_the_After_methods_in_the_test_class_hierarchy() {
// Path: src/test/java/com/github/havarunner/TestHelper.java
// public static void run(HavaRunner havaRunner, RunNotifier runNotifier) {
//     havaRunner.run(runNotifier);
// }
// 
// Path: src/test/java/com/github/havarunner/TestHelper.java
// public static void runAndIgnoreErrors(HavaRunner havaRunner) {
//     run(havaRunner, new RunNotifier());
// }


// Path: src/test/java/com/github/havarunner/beforeafter/AfterAllTest.java
import com.github.havarunner.HavaRunner;
import com.github.havarunner.annotation.AfterAll;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
import org.junit.Test;
import org.junit.experimental.runners.Enclosed;
import org.junit.runner.RunWith;
import java.util.Collection;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import static com.github.havarunner.TestHelper.run;
import static com.github.havarunner.TestHelper.runAndIgnoreErrors;
import static com.google.common.base.Preconditions.checkNotNull;
import static org.junit.Assert.*;

            assertTrue(worldIsBuilt);
            assertTrue(worldIsDestroyed);
        }


        static class After {
            After() {
                worldIsBuilt = true;
            }

            @Test
            void live_in_the_world() {

            }

            @AfterAll
            void destroy_the_world() {
                worldIsDestroyed = true;
            }
        }
    }

    public static class when_test_extends_another_test_class {
        static Long universeIsBuilt;
        static Long worldIsBuilt;
        static Long worldIsDestroyed;
        static Long universeIsDestroyed;

        @Test
        public void HavaRunner_calls_the_After_methods_in_the_test_class_hierarchy() {
            run(new HavaRunner(WorldCreator.class));