test_class.declarator: webSocket
test_class.modifier: @Mock
      private
test_class.original_string: @Mock
      private SimpMessagingTemplate webSocket;
test_class.type: SimpMessagingTemplate
test_class.var_name: webSocket
test_class.declarator: routingPlanSender
test_class.modifier: @InjectMocks
      private
test_class.original_string: @InjectMocks
      private WebSocketRoutingPlanSender routingPlanSender;
test_class.type: WebSocketRoutingPlanSender
test_class.var_name: routingPlanSender
test_class.file: optaweb-vehicle-routing-backend/src/test/java/org/optaweb/vehiclerouting/plugin/websocket/WebSocketRoutingPlanSenderTest.java
test_class.identifier: WebSocketRoutingPlanSenderTest
test_case.body: @Test
      void should_send_consumed_routing_plan_over_websocket() {
          routingPlanSender.consumePlan(RoutingPlan.empty());
          verify(webSocket).convertAndSend(
                  eq(WebSocketRoutingPlanSender.TOPIC_ROUTE),
                  any(PortableRoutingPlan.class));
      }
test_case.class_method_signature: WebSocketRoutingPlanSenderTest.should_send_consumed_routing_plan_over_websocket()
test_case.full_signature: @Test void should_send_consumed_routing_plan_over_websocket()
test_case.identifier: should_send_consumed_routing_plan_over_websocket
test_case.invocations: consumePlan empty convertAndSend verify eq any
test_case.modifiers: @Test
test_case.parameters: ()
test_case.return: void
test_case.signature: void should_send_consumed_routing_plan_over_websocket()
focal_class.declarator: TOPIC_ROUTE = "/topic/route"
focal_class.modifier: static final
focal_class.original_string: static final String TOPIC_ROUTE = "/topic/route";
focal_class.type: String
focal_class.var_name: TOPIC_ROUTE
focal_class.declarator: webSocket
focal_class.modifier: private final
focal_class.original_string: private final SimpMessagingTemplate webSocket;
focal_class.type: SimpMessagingTemplate
focal_class.var_name: webSocket
focal_class.file: optaweb-vehicle-routing-backend/src/main/java/org/optaweb/vehiclerouting/plugin/websocket/WebSocketRoutingPlanSender.java
focal_class.identifier: WebSocketRoutingPlanSender
focal_class.interfaces: implements RoutingPlanConsumer
focal_class.class_method_signature: WebSocketRoutingPlanSender.WebSocketRoutingPlanSender(SimpMessagingTemplate webSocket)
focal_class.full_signature: @Autowired  WebSocketRoutingPlanSender(SimpMessagingTemplate webSocket)
focal_class.identifier: WebSocketRoutingPlanSender
focal_class.modifiers: @Autowired
focal_class.parameters: (SimpMessagingTemplate webSocket)
focal_class.signature:  WebSocketRoutingPlanSender(SimpMessagingTemplate webSocket)
focal_class.class_method_signature: WebSocketRoutingPlanSender.consumePlan(RoutingPlan routingPlan)
focal_class.full_signature: @Override public void consumePlan(RoutingPlan routingPlan)
focal_class.identifier: consumePlan
focal_class.modifiers: @Override public
focal_class.parameters: (RoutingPlan routingPlan)
focal_class.return: void
focal_class.signature: void consumePlan(RoutingPlan routingPlan)
focal_method.body: @Override
      public void consumePlan(RoutingPlan routingPlan) {
          webSocket.convertAndSend(TOPIC_ROUTE, PortableRoutingPlanFactory.fromRoutingPlan(routingPlan));
      }
focal_method.class_method_signature: WebSocketRoutingPlanSender.consumePlan(RoutingPlan routingPlan)
focal_method.full_signature: @Override public void consumePlan(RoutingPlan routingPlan)
focal_method.identifier: consumePlan
focal_method.invocations: convertAndSend fromRoutingPlan
focal_method.modifiers: @Override public
focal_method.parameters: (RoutingPlan routingPlan)
focal_method.return: void
focal_method.signature: void consumePlan(RoutingPlan routingPlan)