### Question:
NormalCreator implements ArcActionCreator { @Override public InboundArc createInboundArc(Place source, Transition target, List<ArcPoint> arcPoints) { Map<String, String> weights = getInitialTokenWeights(); InboundArc inboundArc = new InboundNormalArc(source, target, weights); inboundArc.addIntermediatePoints(arcPoints); return inboundArc; } NormalCreator(PipeApplicationController controller); @Override InboundArc createInboundArc(Place source, Transition target, List<ArcPoint> arcPoints); @Override OutboundArc createOutboundArc(Place target, Transition source, List<ArcPoint> arcPoints); @Override boolean canCreate(S source, T target);  }### Answer:
@Test public void createsCorrectArc() { Place source = new DiscretePlace("", ""); Transition transition = new DiscreteTransition("", ""); when(mockPetriNetController.getSelectedToken()).thenReturn(DEFAULT_TOKEN_ID); InboundArc actual = creator.createInboundArc(source, transition, new LinkedList<ArcPoint>()); Map<String, String> tokens = new HashMap<>(); tokens.put(DEFAULT_TOKEN_ID, "1"); InboundArc expected = new InboundNormalArc(source, transition, tokens); assertEquals(expected, actual); }