Search in sources :

Example 21 with Meta

use of org.jbehave.core.model.Meta in project jbehave-core by jbehave.

the class StepCreatorBehaviour method shouldInvokeBeforeOrAfterStepMethodWithExpectedConvertedParametersFromMeta.

@Test
public void shouldInvokeBeforeOrAfterStepMethodWithExpectedConvertedParametersFromMeta() throws Exception {
    // Given
    SomeSteps stepsInstance = new SomeSteps();
    StepCreator stepCreator = stepCreatorUsing(stepsInstance, mock(StepMatcher.class), new ParameterControls());
    stepCreator.useParanamer(new CachingParanamer(new BytecodeReadingParanamer()));
    // When
    Date aDate = new Date();
    when(parameterConverters.convert(anyString(), eq(Date.class))).thenReturn(aDate);
    Step stepWithMeta = stepCreator.createBeforeOrAfterStep(SomeSteps.methodFor("aMethodWithDate"), new Meta());
    StepResult stepResult = stepWithMeta.perform(null);
    // Then
    assertThat(stepResult, instanceOf(Silent.class));
    assertThat((Date) stepsInstance.args, is(aDate));
}
Also used : RegexStepMatcher(org.jbehave.core.parsers.RegexStepMatcher) StepMatcher(org.jbehave.core.parsers.StepMatcher) Meta(org.jbehave.core.model.Meta) CachingParanamer(com.thoughtworks.paranamer.CachingParanamer) Silent(org.jbehave.core.steps.AbstractStepResult.Silent) ParametrisedStep(org.jbehave.core.steps.StepCreator.ParametrisedStep) BytecodeReadingParanamer(com.thoughtworks.paranamer.BytecodeReadingParanamer) Date(java.util.Date) Test(org.junit.Test)

Example 22 with Meta

use of org.jbehave.core.model.Meta in project jbehave-core by jbehave.

the class StepCreatorBehaviour method shouldInvokeBeforeOrAfterStepMethodWithMetaUsingParanamer.

@Test
public void shouldInvokeBeforeOrAfterStepMethodWithMetaUsingParanamer() throws Exception {
    // Given
    SomeSteps stepsInstance = new SomeSteps();
    StepCreator stepCreator = stepCreatorUsing(stepsInstance, mock(StepMatcher.class), new ParameterControls());
    stepCreator.useParanamer(new CachingParanamer(new BytecodeReadingParanamer()));
    Properties properties = new Properties();
    properties.put("theme", "shopping cart");
    // When
    Step stepWithMeta = stepCreator.createBeforeOrAfterStep(SomeSteps.methodFor("aMethodWithoutNamedAnnotation"), new Meta(properties));
    StepResult stepResult = stepWithMeta.perform(null);
    // Then
    assertThat(stepResult, instanceOf(Silent.class));
    assertThat((String) stepsInstance.args, is("shopping cart"));
}
Also used : RegexStepMatcher(org.jbehave.core.parsers.RegexStepMatcher) StepMatcher(org.jbehave.core.parsers.StepMatcher) Meta(org.jbehave.core.model.Meta) CachingParanamer(com.thoughtworks.paranamer.CachingParanamer) Silent(org.jbehave.core.steps.AbstractStepResult.Silent) ParametrisedStep(org.jbehave.core.steps.StepCreator.ParametrisedStep) Properties(java.util.Properties) BytecodeReadingParanamer(com.thoughtworks.paranamer.BytecodeReadingParanamer) Test(org.junit.Test)

Example 23 with Meta

use of org.jbehave.core.model.Meta in project jbehave-core by jbehave.

the class StepCreatorBehaviour method shouldInvokeAfterStepUponFailureOutcomeMethodIfFailureOccurred.

@Test
public void shouldInvokeAfterStepUponFailureOutcomeMethodIfFailureOccurred() throws Exception {
    // Given
    SomeSteps stepsInstance = new SomeSteps();
    StepCreator stepCreator = stepCreatorUsing(stepsInstance, mock(StepMatcher.class), new ParameterControls());
    Properties properties = new Properties();
    properties.put("theme", "shopping cart");
    properties.put("variant", "book");
    // When
    Step stepWithMeta = stepCreator.createAfterStepUponOutcome(SomeSteps.methodFor("aMethodWithANamedParameter"), AfterScenario.Outcome.FAILURE, new Meta(properties));
    StepResult stepResult = stepWithMeta.doNotPerform(null);
    // Then
    assertThat(stepResult, instanceOf(Silent.class));
    assertThat(stepsInstance.args, instanceOf(Map.class));
    @SuppressWarnings("unchecked") Map<String, String> methodArgs = (Map<String, String>) stepsInstance.args;
    assertThat(methodArgs.get("variant"), is("book"));
    assertThat(methodArgs.get("theme"), is("shopping cart"));
}
Also used : RegexStepMatcher(org.jbehave.core.parsers.RegexStepMatcher) StepMatcher(org.jbehave.core.parsers.StepMatcher) Meta(org.jbehave.core.model.Meta) Silent(org.jbehave.core.steps.AbstractStepResult.Silent) ParametrisedStep(org.jbehave.core.steps.StepCreator.ParametrisedStep) Matchers.anyString(org.mockito.Matchers.anyString) Properties(java.util.Properties) HashMap(java.util.HashMap) Map(java.util.Map) Test(org.junit.Test)

Example 24 with Meta

use of org.jbehave.core.model.Meta in project jbehave-core by jbehave.

the class StepCreatorBehaviour method shouldInvokeBeforeOrAfterStepMethodWithExpectedParametersFromMeta.

@Test
public void shouldInvokeBeforeOrAfterStepMethodWithExpectedParametersFromMeta() throws Exception {
    // Given
    SomeSteps stepsInstance = new SomeSteps();
    StepCreator stepCreator = stepCreatorUsing(stepsInstance, mock(StepMatcher.class), new ParameterControls());
    Properties properties = new Properties();
    properties.put("theme", "shopping cart");
    properties.put("variant", "book");
    // When
    Step stepWithMeta = stepCreator.createBeforeOrAfterStep(SomeSteps.methodFor("aMethodWithANamedParameter"), new Meta(properties));
    StepResult stepResult = stepWithMeta.perform(null);
    // Then
    assertThat(stepResult, instanceOf(Silent.class));
    assertThat(stepsInstance.args, instanceOf(Map.class));
    @SuppressWarnings("unchecked") Map<String, String> methodArgs = (Map<String, String>) stepsInstance.args;
    assertThat(methodArgs.get("variant"), is("book"));
    assertThat(methodArgs.get("theme"), is("shopping cart"));
}
Also used : RegexStepMatcher(org.jbehave.core.parsers.RegexStepMatcher) StepMatcher(org.jbehave.core.parsers.StepMatcher) Meta(org.jbehave.core.model.Meta) Silent(org.jbehave.core.steps.AbstractStepResult.Silent) ParametrisedStep(org.jbehave.core.steps.StepCreator.ParametrisedStep) Matchers.anyString(org.mockito.Matchers.anyString) Properties(java.util.Properties) HashMap(java.util.HashMap) Map(java.util.Map) Test(org.junit.Test)

Example 25 with Meta

use of org.jbehave.core.model.Meta in project jbehave-core by jbehave.

the class StepsBehaviour method shouldProvideStepsToBePerformedBeforeAndAfterScenariosWithNoFailureOccuring.

@Test
public void shouldProvideStepsToBePerformedBeforeAndAfterScenariosWithNoFailureOccuring() {
    MultipleAliasesSteps steps = new MultipleAliasesSteps();
    ScenarioType scenarioType = ScenarioType.NORMAL;
    List<BeforeOrAfterStep> beforeAfterScenario = steps.listBeforeOrAfterScenario(scenarioType);
    assertThat(beforeAfterScenario.size(), equalTo(4));
    beforeAfterScenario.get(0).createStep().perform(null);
    assertThat(steps.beforeNormalScenario, is(true));
    Meta storyAndScenarioMeta = null;
    // uponOutcome=ANY
    beforeAfterScenario.get(1).createStepUponOutcome(storyAndScenarioMeta).perform(null);
    assertThat(steps.afterNormalScenario, is(true));
    // uponOutcome=SUCCESS
    beforeAfterScenario.get(2).createStepUponOutcome(storyAndScenarioMeta).perform(null);
    assertThat(steps.afterSuccessfulScenario, is(true));
    // uponOutcome=FAILURE
    beforeAfterScenario.get(3).createStepUponOutcome(storyAndScenarioMeta).perform(null);
    assertThat(steps.afterFailedScenario, is(false));
}
Also used : Meta(org.jbehave.core.model.Meta) ScenarioType(org.jbehave.core.annotations.ScenarioType) Test(org.junit.Test)

Aggregations

Meta (org.jbehave.core.model.Meta)32 Test (org.junit.Test)23 Story (org.jbehave.core.model.Story)11 Scenario (org.jbehave.core.model.Scenario)9 Matchers.containsString (org.hamcrest.Matchers.containsString)8 HashMap (java.util.HashMap)6 Properties (java.util.Properties)6 GivenStory (org.jbehave.core.model.GivenStory)6 RegexStepMatcher (org.jbehave.core.parsers.RegexStepMatcher)6 StepMatcher (org.jbehave.core.parsers.StepMatcher)6 Silent (org.jbehave.core.steps.AbstractStepResult.Silent)6 ParametrisedStep (org.jbehave.core.steps.StepCreator.ParametrisedStep)6 Map (java.util.Map)4 PendingStep (org.jbehave.core.steps.StepCreator.PendingStep)4 Matchers.anyString (org.mockito.Matchers.anyString)4 ScenarioType (org.jbehave.core.annotations.ScenarioType)3 ExamplesTable (org.jbehave.core.model.ExamplesTable)3 Lifecycle (org.jbehave.core.model.Lifecycle)3 BytecodeReadingParanamer (com.thoughtworks.paranamer.BytecodeReadingParanamer)2 CachingParanamer (com.thoughtworks.paranamer.CachingParanamer)2