// Path: src/main/java/com/greghaskins/spectrum/dsl/specification/Specification.java
// static void afterEach(final Block block) {
//   DeclarationState.instance().addHook(after(block), AppliesTo.ATOMIC_ONLY,
//       Precedence.GUARANTEED_CLEAN_UP_LOCAL);
// }
// 
// Path: src/main/java/com/greghaskins/spectrum/dsl/specification/Specification.java
// static void beforeEach(final Block block) {
//   DeclarationState.instance().addHook(before(block), AppliesTo.ATOMIC_ONLY, Precedence.LOCAL);
// }
// 
// Path: src/main/java/com/greghaskins/spectrum/dsl/specification/Specification.java
// static void describe(final String context, final Block block) {
//   final Suite suite = DeclarationState.instance()
//       .getCurrentSuiteBeingDeclared()
//       .addSuite(context);
//   suite.applyConfigurationFromBlock(block);
//   DeclarationState.instance().beginDeclaration(suite, block);
// }
// 
// Path: src/main/java/com/greghaskins/spectrum/dsl/specification/Specification.java
// static void it(final String behavior, final Block block) {
//   DeclarationState.instance().getCurrentSuiteBeingDeclared().addSpec(behavior, block);
// }


import static com.greghaskins.spectrum.dsl.specification.Specification.afterEach;
import static com.greghaskins.spectrum.dsl.specification.Specification.beforeEach;
import static com.greghaskins.spectrum.dsl.specification.Specification.describe;
import static com.greghaskins.spectrum.dsl.specification.Specification.it;
package given.a.spec.with.exception.in.beforeeach.block.and.aftereach.block;



class Fixture {

  public static Class<?> getSpecThatThrowsAnExceptionInBeforeEachAndAfterEachBlocks() {
    class Spec {
      {
        describe("an exploding beforeEach", () -> {

          beforeEach(() -> {
// Path: src/main/java/com/greghaskins/spectrum/dsl/specification/Specification.java
// static void afterEach(final Block block) {
//   DeclarationState.instance().addHook(after(block), AppliesTo.ATOMIC_ONLY,
//       Precedence.GUARANTEED_CLEAN_UP_LOCAL);
// }
// 
// Path: src/main/java/com/greghaskins/spectrum/dsl/specification/Specification.java
// static void beforeEach(final Block block) {
//   DeclarationState.instance().addHook(before(block), AppliesTo.ATOMIC_ONLY, Precedence.LOCAL);
// }
// 
// Path: src/main/java/com/greghaskins/spectrum/dsl/specification/Specification.java
// static void describe(final String context, final Block block) {
//   final Suite suite = DeclarationState.instance()
//       .getCurrentSuiteBeingDeclared()
//       .addSuite(context);
//   suite.applyConfigurationFromBlock(block);
//   DeclarationState.instance().beginDeclaration(suite, block);
// }
// 
// Path: src/main/java/com/greghaskins/spectrum/dsl/specification/Specification.java
// static void it(final String behavior, final Block block) {
//   DeclarationState.instance().getCurrentSuiteBeingDeclared().addSpec(behavior, block);
// }


// Path: src/test/java/given/a/spec/with/exception/in/beforeeach/block/and/aftereach/block/Fixture.java
import static com.greghaskins.spectrum.dsl.specification.Specification.afterEach;
import static com.greghaskins.spectrum.dsl.specification.Specification.beforeEach;
import static com.greghaskins.spectrum.dsl.specification.Specification.describe;
import static com.greghaskins.spectrum.dsl.specification.Specification.it;

package given.a.spec.with.exception.in.beforeeach.block.and.aftereach.block;



class Fixture {

  public static Class<?> getSpecThatThrowsAnExceptionInBeforeEachAndAfterEachBlocks() {
    class Spec {
      {
        describe("an exploding beforeEach", () -> {

          beforeEach(() -> {
            throw new SomeException("beforeEach went kaboom");