// Path: src/test/java/com/github/havarunner/TestHelper.java
// public static void assertTestClasses(List<Class> expected, Class testClass) {
//     Set<String> parsedClassNames = parsedTestClassNames(testClass);
//     assertEquals(toName(expected), parsedClassNames);
// }
// 
// 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 Failure runAndRecordFailure(HavaRunner havaRunner) {
//     final AtomicReference<Failure> expectedFailure = new AtomicReference<>();
//     RunNotifier runNotifier = new RunNotifier() {
//         @Override
//         public void fireTestFailure(Failure failure) {
//             expectedFailure.set(failure);
//         }
//     };
//     run(havaRunner, runNotifier);
//     return expectedFailure.get();
// }


import com.github.havarunner.HavaRunner;
import com.google.common.collect.Lists;
import org.junit.After;
import org.junit.Test;
import org.junit.runner.notification.Failure;
import static com.github.havarunner.TestHelper.assertTestClasses;
import static com.github.havarunner.TestHelper.run;
import static com.github.havarunner.TestHelper.runAndRecordFailure;
import static org.junit.Assert.assertTrue;
package com.github.havarunner.suite.suitedefinedinparent;



public class SuiteDefinedInParentTest {

    static boolean suiteMethodCalled;
    static boolean innerSuiteMethodCalled;

    @After
    public void reset() {
        suiteMethodCalled = false;
        innerSuiteMethodCalled = false;
    }

    @Test
    public void abstract_classes_may_declare_suite_membership() {
        run(new HavaRunner(SuiteMember.class));
        assertTrue(suiteMethodCalled);
    }

    @Test
    public void abstract_classes_may_declare_suite_membership_for_static_inner_classes() {
// Path: src/test/java/com/github/havarunner/TestHelper.java
// public static void assertTestClasses(List<Class> expected, Class testClass) {
//     Set<String> parsedClassNames = parsedTestClassNames(testClass);
//     assertEquals(toName(expected), parsedClassNames);
// }
// 
// 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 Failure runAndRecordFailure(HavaRunner havaRunner) {
//     final AtomicReference<Failure> expectedFailure = new AtomicReference<>();
//     RunNotifier runNotifier = new RunNotifier() {
//         @Override
//         public void fireTestFailure(Failure failure) {
//             expectedFailure.set(failure);
//         }
//     };
//     run(havaRunner, runNotifier);
//     return expectedFailure.get();
// }


// Path: src/test/java/com/github/havarunner/suite/suitedefinedinparent/SuiteDefinedInParentTest.java
import com.github.havarunner.HavaRunner;
import com.google.common.collect.Lists;
import org.junit.After;
import org.junit.Test;
import org.junit.runner.notification.Failure;
import static com.github.havarunner.TestHelper.assertTestClasses;
import static com.github.havarunner.TestHelper.run;
import static com.github.havarunner.TestHelper.runAndRecordFailure;
import static org.junit.Assert.assertTrue;

package com.github.havarunner.suite.suitedefinedinparent;



public class SuiteDefinedInParentTest {

    static boolean suiteMethodCalled;
    static boolean innerSuiteMethodCalled;

    @After
    public void reset() {
        suiteMethodCalled = false;
        innerSuiteMethodCalled = false;
    }

    @Test
    public void abstract_classes_may_declare_suite_membership() {
        run(new HavaRunner(SuiteMember.class));
        assertTrue(suiteMethodCalled);
    }

    @Test
    public void abstract_classes_may_declare_suite_membership_for_static_inner_classes() {
        run(new HavaRunner(SuiteMember.class));