// 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.github.havarunner.HavaRunnerSuite;
import com.github.havarunner.annotation.PartOf;
import com.github.havarunner.annotation.Scenarios;
import com.github.havarunner.exception.ConstructorNotFound;
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 org.junit.runner.notification.Failure;
import java.util.List;
import static com.github.havarunner.TestHelper.run;
import static com.github.havarunner.TestHelper.runAndRecordFailure;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;

        @PartOf(Suite.class)
        static class TestInASuite {

            TestInASuite(String suiteObj) {
                receivedSuiteObjects.add(suiteObj);
            }

            @Test
            void test() {
            }
        }

        @PartOf(Suite.class)
        static class AnotherTestInTheSuite {

            AnotherTestInTheSuite(String suiteObj) {
                receivedSuiteObjects.add(suiteObj);
            }

            @Test
            void test() {
            }
        }
    }

    public static class when_suite_member_is_missing_the_suite_object_constructor {

        @Test
        public void HavaRunner_gives_a_helpful_error_message_if_the_suite_test_does_not_have_the_required_constructor() {
// 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/RunningSuiteMembersIndividuallyTest.java
import com.github.havarunner.HavaRunner;
import com.github.havarunner.HavaRunnerSuite;
import com.github.havarunner.annotation.PartOf;
import com.github.havarunner.annotation.Scenarios;
import com.github.havarunner.exception.ConstructorNotFound;
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 org.junit.runner.notification.Failure;
import java.util.List;
import static com.github.havarunner.TestHelper.run;
import static com.github.havarunner.TestHelper.runAndRecordFailure;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;


        @PartOf(Suite.class)
        static class TestInASuite {

            TestInASuite(String suiteObj) {
                receivedSuiteObjects.add(suiteObj);
            }

            @Test
            void test() {
            }
        }

        @PartOf(Suite.class)
        static class AnotherTestInTheSuite {

            AnotherTestInTheSuite(String suiteObj) {
                receivedSuiteObjects.add(suiteObj);
            }

            @Test
            void test() {
            }
        }
    }

    public static class when_suite_member_is_missing_the_suite_object_constructor {

        @Test
        public void HavaRunner_gives_a_helpful_error_message_if_the_suite_test_does_not_have_the_required_constructor() {
            Failure failure = runAndRecordFailure(new HavaRunner(TestWithoutTheRequiredSuiteConstructor.class));