@Test public void createsSingleStepThatHandlesUserCommandWithoutUseCaseAndWithoutFlow() { Model model = modelBuilder .on(EntersText.class).system(displaysEnteredText()) .build(); Collection<Step> steps = model.getSteps(); assertEquals(1, steps.size()); Step step = steps.iterator().next(); assertEquals("S1", step.getName()); assertEquals(model.getSystemActor(), step.getActors()[0]); }
@Test public void actorsCanBeReusedInUseCase() { UseCasePart useCasePart = modelBuilder.useCase(USE_CASE); Model model = useCasePart.basicFlow() .step(CUSTOMER_ENTERS_TEXT).as(customer).user(EntersText.class).system(displaysEnteredText()) .step(CUSTOMER_ENTERS_TEXT_AGAIN).as(customer).user(EntersText.class).system(displaysEnteredText()) .build(); Collection<Step> steps = model.getSteps(); assertEquals(2, steps.size()); Iterator<Step> stepsIt = steps.iterator(); Actor actor1 = stepsIt.next().getActors()[0]; Actor actor2 = stepsIt.next().getActors()[0]; assertTrue(actor1 == actor2); assertEquals(customer, actor1); }
@Test public void actorsCanBeReusedBetweenUseCases() { UseCasePart useCasePart = modelBuilder.useCase(USE_CASE); Model model = useCasePart.basicFlow() .step(CUSTOMER_ENTERS_TEXT).as(customer).user(EntersText.class).system(displaysEnteredText()) .useCase(USE_CASE_2) .basicFlow() .step(CUSTOMER_ENTERS_TEXT_AGAIN).as(customer).user(EntersText.class).system(displaysEnteredText()) .build(); Collection<Step> steps = model.getSteps(); assertEquals(2, steps.size()); Iterator<Step> stepsIt = steps.iterator(); Actor actor1 = stepsIt.next().getActors()[0]; Actor actor2 = stepsIt.next().getActors()[0]; assertTrue(actor1 == actor2); assertEquals(customer, actor1); } }