// Path: greencoffee/src/main/java/com/mauriciotogneri/greencoffee/exceptions/DuplicatedStepDefinitionException.java
// public class DuplicatedStepDefinitionException extends RuntimeException
// {
//     public DuplicatedStepDefinitionException(Method method, String pattern)
//     {
//         super(String.format("Duplicated step definition%n%nClass: %s%nMethod: %s%nPattern: \"%s\"%n", method.getDeclaringClass().getSimpleName(), method.getName(), pattern));
//     }
// }
// 
// Path: greencoffee/src/main/java/com/mauriciotogneri/greencoffee/exceptions/NoStepsDefinedException.java
// public class NoStepsDefinedException extends RuntimeException
// {
//     public NoStepsDefinedException()
//     {
//         super("No steps defined for the feature");
//     }
// }
// 
// Path: greencoffee/src/main/java/com/mauriciotogneri/greencoffee/exceptions/StepDefinitionNotFoundException.java
// public class StepDefinitionNotFoundException extends RuntimeException
// {
//     public StepDefinitionNotFoundException(String keyword, String text)
//     {
//         super(String.format("Step definition not found for: '%s: %s'", keyword, text));
//     }
// }


import com.mauriciotogneri.greencoffee.exceptions.DuplicatedStepDefinitionException;
import com.mauriciotogneri.greencoffee.exceptions.NoStepsDefinedException;
import com.mauriciotogneri.greencoffee.exceptions.StepDefinitionNotFoundException;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Locale;
import java.util.Set;
import static android.support.test.InstrumentationRegistry.getTargetContext;
import gherkin.ast.Node;
import gherkin.ast.Step;
package com.mauriciotogneri.greencoffee;




public class GreenCoffeeTest
{
    private final ScenarioConfig scenarioConfig;
    private final TestLog testLog;

    public GreenCoffeeTest(ScenarioConfig scenario)
    {
        this.scenarioConfig = scenario;
        this.testLog = new TestLog();

        beforeScenarioStarts(scenario.scenario(), scenario.locale());

        Localization localization = new Localization(getTargetContext());
        localization.locale(scenarioConfig.locale());
    }

    protected void beforeScenarioStarts(Scenario scenario, Locale locale)
    {
    }

    protected void afterScenarioEnds(Scenario scenario, Locale locale)
    {
    }

    protected void start(GreenCoffeeSteps... targets)
    {
        if (targets.length == 0)
        {
// Path: greencoffee/src/main/java/com/mauriciotogneri/greencoffee/exceptions/DuplicatedStepDefinitionException.java
// public class DuplicatedStepDefinitionException extends RuntimeException
// {
//     public DuplicatedStepDefinitionException(Method method, String pattern)
//     {
//         super(String.format("Duplicated step definition%n%nClass: %s%nMethod: %s%nPattern: \"%s\"%n", method.getDeclaringClass().getSimpleName(), method.getName(), pattern));
//     }
// }
// 
// Path: greencoffee/src/main/java/com/mauriciotogneri/greencoffee/exceptions/NoStepsDefinedException.java
// public class NoStepsDefinedException extends RuntimeException
// {
//     public NoStepsDefinedException()
//     {
//         super("No steps defined for the feature");
//     }
// }
// 
// Path: greencoffee/src/main/java/com/mauriciotogneri/greencoffee/exceptions/StepDefinitionNotFoundException.java
// public class StepDefinitionNotFoundException extends RuntimeException
// {
//     public StepDefinitionNotFoundException(String keyword, String text)
//     {
//         super(String.format("Step definition not found for: '%s: %s'", keyword, text));
//     }
// }


// Path: greencoffee/src/main/java/com/mauriciotogneri/greencoffee/GreenCoffeeTest.java
import com.mauriciotogneri.greencoffee.exceptions.DuplicatedStepDefinitionException;
import com.mauriciotogneri.greencoffee.exceptions.NoStepsDefinedException;
import com.mauriciotogneri.greencoffee.exceptions.StepDefinitionNotFoundException;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Locale;
import java.util.Set;
import static android.support.test.InstrumentationRegistry.getTargetContext;
import gherkin.ast.Node;
import gherkin.ast.Step;

package com.mauriciotogneri.greencoffee;




public class GreenCoffeeTest
{
    private final ScenarioConfig scenarioConfig;
    private final TestLog testLog;

    public GreenCoffeeTest(ScenarioConfig scenario)
    {
        this.scenarioConfig = scenario;
        this.testLog = new TestLog();

        beforeScenarioStarts(scenario.scenario(), scenario.locale());

        Localization localization = new Localization(getTargetContext());
        localization.locale(scenarioConfig.locale());
    }

    protected void beforeScenarioStarts(Scenario scenario, Locale locale)
    {
    }

    protected void afterScenarioEnds(Scenario scenario, Locale locale)
    {
    }

    protected void start(GreenCoffeeSteps... targets)
    {
        if (targets.length == 0)
        {
            throw new NoStepsDefinedException();