Tabnine Logo
UseCasePart.on
Code IndexAdd Tabnine to your IDE (free)

How to use
on
method
in
org.requirementsascode.UseCasePart

Best Java code snippets using org.requirementsascode.UseCasePart.on (Showing top 18 results out of 315)

origin: bertilmuth/requirementsascode

/**
 * Creates a handler for events or exceptions of the specified type.
 * <p>
 * Internally, a default use case ("Handles events") is created in the model.
 * </p>
 * 
 * @param eventOrExceptionClass the specified event / exception class
 * @param <T> the type of events/exceptions
 * @return a part of the builder used to create the event handler (the "system reaction")
 */
public <T> FlowlessUserPart<T> on(Class<T> eventOrExceptionClass) {
FlowlessUserPart<T> on = useCase(HANDLES_EVENTS).on(eventOrExceptionClass);
return on;
}

origin: bertilmuth/requirementsascode

@Test
public void twoFlowlessStepsReactToEventsOfDifferentTypeInDifferentUseCases() {
Model model = modelBuilder
  .useCase(USE_CASE)
    .on(EntersText.class).system(displaysEnteredText())
  .useCase(USE_CASE_2)
    .on(EntersNumber.class).system(displaysEnteredNumber())
.build();
modelRunner.run(model);
Optional<Step> latestStepRun = modelRunner.reactTo(entersNumber());
assertEquals(EntersNumber.class, latestStepRun.get().getEventClass());
latestStepRun = modelRunner.reactTo(entersText());
assertEquals(EntersText.class, latestStepRun.get().getEventClass());
}

origin: bertilmuth/requirementsascode

@Test
public void twoFlowlessStepsReactWhenConditionIsTrueInSecondStepWithoutEvent() {
Model model = modelBuilder.useCase(USE_CASE)
  .on(EntersText.class).system(displaysEnteredText())
  .condition(() -> modelRunner.getLatestStep().isPresent() && modelRunner.getLatestStep().get().getEventClass().equals(EntersText.class)).system(displaysConstantText())
.build();
modelRunner.run(model).reactTo(entersText());
assertEquals(ModelRunner.class, modelRunner.getLatestStep().get().getEventClass());
}

origin: bertilmuth/requirementsascode

@Test
public void recordsEventWithUnhandledEventHandler() {
Model model = modelBuilder.useCase(USE_CASE).on(EntersText.class).system(displaysEnteredText()).build();
modelRunner.handleUnhandledWith(this::eventRecordingEventHandler);
modelRunner.run(model);
modelRunner.reactTo(entersNumber());
Object event = optionalEvent.get();
assertTrue(event instanceof EntersNumber);
}
origin: bertilmuth/requirementsascode

@Test
public void oneFlowlessStepReacts() {
Model model = modelBuilder.useCase(USE_CASE)
  .on(EntersText.class).system(displaysEnteredText())
.build();
modelRunner.run(model);
Optional<Step> latestStepRun = modelRunner.reactTo(entersText());
assertEquals(EntersText.class, latestStepRun.get().getEventClass());
}
origin: bertilmuth/requirementsascode

@Test
public void createsSingleStepThatHandlesUserCommandWithUseCaseButWithoutFlow() {
UseCasePart useCasePart = modelBuilder.useCase(USE_CASE);
Model model = 
  useCasePart
    .on(EntersText.class).system(displaysEnteredText())
  .build();
UseCase useCase = useCasePart.getUseCase();
Collection<Step> steps = useCase.getSteps();
assertEquals(1, steps.size());
Step step = steps.iterator().next();
assertEquals("S1", step.getName());
assertEquals(USE_CASE, step.getUseCase().getName());
assertEquals(model.getSystemActor(), step.getActors()[0]);
}

origin: bertilmuth/requirementsascode

@Test
public void twoFlowlessStepsReactToEventsOfDifferentTypeInWrongOrder() {
Model model = modelBuilder.useCase(USE_CASE)
  .on(EntersText.class).system(displaysEnteredText())
  .on(EntersNumber.class).system(displaysEnteredNumber())
.build();
modelRunner.run(model);
Optional<Step> latestStepRun = modelRunner.reactTo(entersNumber());
assertEquals(EntersNumber.class, latestStepRun.get().getEventClass());
latestStepRun = modelRunner.reactTo(entersText());
assertEquals(EntersText.class, latestStepRun.get().getEventClass());
}

origin: bertilmuth/requirementsascode

@Test
public void twoFlowlessStepsReactToEventsOfDifferentTypeInRightOrder() {
Model model = modelBuilder.useCase(USE_CASE)
  .on(EntersText.class).system(displaysEnteredText())
  .on(EntersNumber.class).system(displaysEnteredNumber())
.build();
modelRunner.run(model);
Optional<Step> latestStepRun = modelRunner.reactTo(entersText());
assertEquals(EntersText.class, latestStepRun.get().getEventClass());
latestStepRun = modelRunner.reactTo(entersNumber());
assertEquals(EntersNumber.class, latestStepRun.get().getEventClass());
}

origin: bertilmuth/requirementsascode

@Test
public void createsTwoStepsWithoutFlow() {
UseCasePart useCasePart = modelBuilder.useCase(USE_CASE);
useCasePart
  .on(EntersText.class).system(displaysEnteredText())
  .on(EntersNumber.class).system(displaysEnteredNumber())
.build();
Collection<Step> steps = useCasePart.getUseCase().getSteps();
assertEquals(2, steps.size());
Iterator<Step> stepIt = steps.iterator();
Step step = stepIt.next();
assertEquals("S1", step.getName());
assertEquals(USE_CASE, step.getUseCase().getName());
step = stepIt.next();
assertEquals("S2", step.getName());
assertEquals(USE_CASE, step.getUseCase().getName());
}
origin: bertilmuth/requirementsascode

@Test
public void twoFlowlessStepsDontReactWhenConditionIsFalseInSecondStep() {
Model model = modelBuilder.useCase(USE_CASE)
  .on(EntersText.class).system(displaysEnteredText())
  .condition(() -> false).on(EntersNumber.class).system(displaysEnteredNumber())
.build();
modelRunner.run(model);
Optional<Step> latestStepRun = modelRunner.reactTo(entersText());
assertEquals(EntersText.class, latestStepRun.get().getEventClass());
latestStepRun = modelRunner.reactTo(entersNumber());
assertEquals(EntersText.class, latestStepRun.get().getEventClass());
}

origin: bertilmuth/requirementsascode

@Test
public void twoFlowlessStepsReactWhenConditionIsTrueInSecondStepWithEvent() {
Model model = modelBuilder.useCase(USE_CASE)
  .on(EntersText.class).system(displaysEnteredText())
  .condition(() -> true).on(EntersNumber.class).system(displaysEnteredNumber())
.build();
modelRunner.run(model);
Optional<Step> latestStepRun = modelRunner.reactTo(entersText());
assertEquals(EntersText.class, latestStepRun.get().getEventClass());
latestStepRun = modelRunner.reactTo(entersNumber());
assertEquals(EntersNumber.class, latestStepRun.get().getEventClass());
}

origin: bertilmuth/requirementsascode

@Test
public void recordIsEmptyForFreshlyRunModel() {
Model model = modelBuilder.useCase(USE_CASE)
  .on(EntersText.class).system(displaysEnteredText())
.build();
modelRunner.run(model);
assertEquals(0, modelRunner.getRecordedEvents().length);
assertEquals(0, modelRunner.getRecordedStepNames().length);
}

origin: bertilmuth/requirementsascode

@Test
public void recordIsEmptyIfRecordingWasStoppedBeforeBeingStarted() {
Model model = modelBuilder.useCase(USE_CASE)
  .on(EntersText.class).system(displaysEnteredText())
.build();
modelRunner.run(model).stopRecording();

assertEquals(0, modelRunner.getRecordedEvents().length);
assertEquals(0, modelRunner.getRecordedStepNames().length);
}

origin: bertilmuth/requirementsascode

@Test
public void recordSingleEvent() {
Model model = modelBuilder.useCase(USE_CASE)
  .on(EntersText.class).system(displaysEnteredText())
.build();
modelRunner.run(model).startRecording();
modelRunner.reactTo(entersText());

assertEquals(1, modelRunner.getRecordedEvents().length);
assertEquals(EntersText.class, modelRunner.getRecordedEvents()[0].getClass());

assertEquals(1, modelRunner.getRecordedStepNames().length);
assertEquals("S1", modelRunner.getRecordedStepNames()[0]);
}

origin: bertilmuth/requirementsascode

@Test
public void recordMultipleEvents_startRecordingBeforeRunning() {
Model model = modelBuilder.useCase(USE_CASE)
  .on(EntersText.class).system(displaysEnteredText())
  .on(EntersNumber.class).system(displaysEnteredNumber())
.build();
modelRunner.startRecording().run(model);
modelRunner.reactTo(entersText(), entersNumber());

assertEquals(2, modelRunner.getRecordedEvents().length);
assertEquals(EntersText.class, modelRunner.getRecordedEvents()[0].getClass());
assertEquals(EntersNumber.class, modelRunner.getRecordedEvents()[1].getClass());

assertEquals(2, modelRunner.getRecordedStepNames().length);
assertEquals("S1", modelRunner.getRecordedStepNames()[0]);
assertEquals("S2", modelRunner.getRecordedStepNames()[1]);
}

origin: bertilmuth/requirementsascode

@Test
public void recordMultipleEvents_startRecordingAfterRunning() {
Model model = modelBuilder.useCase(USE_CASE)
  .on(EntersText.class).system(displaysEnteredText())
  .on(EntersNumber.class).system(displaysEnteredNumber())
.build();
modelRunner.run(model).startRecording();
modelRunner.reactTo(entersText(), entersNumber());

assertEquals(2, modelRunner.getRecordedEvents().length);
assertEquals(EntersText.class, modelRunner.getRecordedEvents()[0].getClass());
assertEquals(EntersNumber.class, modelRunner.getRecordedEvents()[1].getClass());

assertEquals(2, modelRunner.getRecordedStepNames().length);
assertEquals("S1", modelRunner.getRecordedStepNames()[0]);
assertEquals("S2", modelRunner.getRecordedStepNames()[1]);
}

origin: bertilmuth/requirementsascode

  @Test
  public void continueRecordingAfterRestart() {
  Model model = modelBuilder.useCase(USE_CASE)
    .on(EntersText.class).system(displaysEnteredText())
    .on(EntersNumber.class).system(displaysEnteredNumber())
  .build();

  modelRunner.run(model).startRecording();
  modelRunner.reactTo(entersText());
  modelRunner.restart();
  modelRunner.reactTo(entersNumber());
  
  assertEquals(2, modelRunner.getRecordedEvents().length);
  assertEquals(EntersText.class, modelRunner.getRecordedEvents()[0].getClass());
  assertEquals(EntersNumber.class, modelRunner.getRecordedEvents()[1].getClass());
  
  assertEquals(2, modelRunner.getRecordedStepNames().length);
  assertEquals("S1", modelRunner.getRecordedStepNames()[0]);
  assertEquals("S2", modelRunner.getRecordedStepNames()[1]);
  }
}
origin: bertilmuth/requirementsascode

@Test
public void noMoreRecordingAfterRecordingIsStopped() {
Model model = modelBuilder.useCase(USE_CASE)
  .on(EntersText.class).system(displaysEnteredText())
  .on(EntersNumber.class).system(displaysEnteredNumber())
.build();
modelRunner.run(model).startRecording();
modelRunner.reactTo(entersText());
modelRunner.stopRecording();
modelRunner.reactTo(entersNumber());

assertEquals(1, modelRunner.getRecordedEvents().length);
assertEquals(EntersText.class, modelRunner.getRecordedEvents()[0].getClass());

assertEquals(1, modelRunner.getRecordedStepNames().length);
assertEquals("S1", modelRunner.getRecordedStepNames()[0]);
}

org.requirementsascodeUseCaseParton

Popular methods of UseCasePart

  • basicFlow
    Start the "happy day scenario" where all is fine and dandy.
  • flow
    Start a flow with the specified name.
  • build
    Returns the model that has been built.
  • condition
  • getUseCase
  • <init>
  • getModelBuilder

Popular in Java

  • Parsing JSON documents to java classes using gson
  • setRequestProperty (URLConnection)
  • notifyDataSetChanged (ArrayAdapter)
  • orElseThrow (Optional)
    Return the contained value, if present, otherwise throw an exception to be created by the provided s
  • Proxy (java.net)
    This class represents proxy server settings. A created instance of Proxy stores a type and an addres
  • ServerSocket (java.net)
    This class represents a server-side socket that waits for incoming client connections. A ServerSocke
  • URLConnection (java.net)
    A connection to a URL for reading or writing. For HTTP connections, see HttpURLConnection for docume
  • Comparator (java.util)
    A Comparator is used to compare two objects to determine their ordering with respect to each other.
  • Callable (java.util.concurrent)
    A task that returns a result and may throw an exception. Implementors define a single method with no
  • BasicDataSource (org.apache.commons.dbcp)
    Basic implementation of javax.sql.DataSource that is configured via JavaBeans properties. This is no
  • Top PhpStorm plugins
Tabnine Logo
  • Products

    Search for Java codeSearch for JavaScript code
  • IDE Plugins

    IntelliJ IDEAWebStormVisual StudioAndroid StudioEclipseVisual Studio CodePyCharmSublime TextPhpStormVimGoLandRubyMineEmacsJupyter NotebookJupyter LabRiderDataGripAppCode
  • Company

    About UsContact UsCareers
  • Resources

    FAQBlogTabnine AcademyTerms of usePrivacy policyJava Code IndexJavascript Code Index
Get Tabnine for your IDE now