package brainslug.flow; import brainslug.flow.definition.FlowDefinition; import brainslug.flow.node.EventDefinition; import brainslug.flow.node.FlowNodeDefinition; import brainslug.flow.node.event.AbstractEventDefinition; import brainslug.flow.path.FlowPathDefinition; import org.junit.Test; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.*; public class FlowPathDefinitionTest { @Test public void shouldConnectToExistingEndEvent() { // GIVEN: FlowDefinition flowDefinition = mock(FlowDefinition.class); AbstractEventDefinition startEvent = new EventDefinition().id("start"); AbstractEventDefinition endEvent = new EventDefinition().id("end"); FlowPathDefinition<?> pathDefinition = new FlowPathDefinition(flowDefinition, startEvent); when(flowDefinition.contains(any(FlowNodeDefinition.class))).thenReturn(true); when(flowDefinition.getNode(endEvent.getId())).thenReturn(endEvent); // WHEN: pathDefinition.end(endEvent); // THEN: assertThat(pathDefinition.getPathNodes().getLast().getId().toString()).isEqualTo("end"); } }