// Path: src/main/java/org/givwenzen/annotations/InstantiationStrategy.java
// public interface InstantiationStrategy {
//   InstantiationState instantiate(Class<?> markedClass, Object parameter) throws InvocationTargetException, InstantiationException,
//       IllegalAccessException;
// }


import org.givwenzen.annotations.InstantiationStrategy;
import org.junit.Before;
import org.junit.Test;
import java.util.List;
import static org.fest.assertions.Assertions.assertThat;
import static org.mockito.Mockito.mock;

package org.givwenzen;




public class GivWenZenExecutorCreatorTest {
    private GivWenZenExecutorCreator creator;

    @Before
    public void setup() {
        creator = GivWenZenExecutorCreator.instance();
    }

    @Test
    public void shouldCreateDefaultInstanceNeatly() throws Exception {
        GivWenZenExecutor executor = creator.create();
        assertThat(executor.customParserFinder).isNotNull();
        assertThat(executor.domainStepFactory).isNotNull();
        assertThat(executor.customParserFinder).isNotNull();
        assertThat(executor.stepState).isNotNull();
        assertThat(executor.methodLocator).isNotNull();
    }

    @Test
    public void shouldBeAbleToCreateGivWenZenExecutorWithDifferentStepPackage() throws Exception {
        String basePackage = "test.package.name.";

// Path: src/main/java/org/givwenzen/annotations/InstantiationStrategy.java
// public interface InstantiationStrategy {
//   InstantiationState instantiate(Class<?> markedClass, Object parameter) throws InvocationTargetException, InstantiationException,
//       IllegalAccessException;
// }


// Path: src/test/java/org/givwenzen/GivWenZenExecutorCreatorTest.java
import org.givwenzen.annotations.InstantiationStrategy;
import org.junit.Before;
import org.junit.Test;
import java.util.List;
import static org.fest.assertions.Assertions.assertThat;
import static org.mockito.Mockito.mock;

package org.givwenzen;




public class GivWenZenExecutorCreatorTest {
    private GivWenZenExecutorCreator creator;

    @Before
    public void setup() {
        creator = GivWenZenExecutorCreator.instance();
    }

    @Test
    public void shouldCreateDefaultInstanceNeatly() throws Exception {
        GivWenZenExecutor executor = creator.create();
        assertThat(executor.customParserFinder).isNotNull();
        assertThat(executor.domainStepFactory).isNotNull();
        assertThat(executor.customParserFinder).isNotNull();
        assertThat(executor.stepState).isNotNull();
        assertThat(executor.methodLocator).isNotNull();
    }

    @Test
    public void shouldBeAbleToCreateGivWenZenExecutorWithDifferentStepPackage() throws Exception {
        String basePackage = "test.package.name.";

        GivWenZenExecutor executor = creator
