### Question:
DefaultVehicleController implements VehicleController,
               PropertyChangeListener,
               EventHandler { @SuppressWarnings("deprecation") private void updateVehicleState(Vehicle.State newState) { requireNonNull(newState, "newState"); if (!Vehicle.State.UNKNOWN.equals(newState) && !VehicleCommAdapter.State.CONNECTED.equals(commAdapterState)) { updateCommAdapterState(VehicleCommAdapter.State.CONNECTED); } vehicleService.updateVehicleState(vehicle.getReference(), newState); } @Inject  DefaultVehicleController(@Assisted @Nonnull Vehicle vehicle,
                                  @Assisted @Nonnull VehicleCommAdapter adapter,
                                  @Nonnull LocalKernel kernel,
                                  @Nonnull InternalVehicleService vehicleService,
                                  @Nonnull NotificationService notificationService,
                                  @Nonnull DispatcherService dispatcherService,
                                  @Nonnull Scheduler scheduler,
                                  @Nonnull @ApplicationEventBus EventBus eventBus); @Override boolean isInitialized(); @Override @SuppressWarnings("deprecation") void initialize(); @Override @SuppressWarnings("deprecation") void terminate(); @Override void propertyChange(PropertyChangeEvent evt); @Override void onEvent(Object event); @Override void setDriveOrder(@Nonnull DriveOrder newOrder,
                            @Nonnull Map<String, String> orderProperties); @Override void updateDriveOrder(@Nonnull DriveOrder newOrder,
                               @Nonnull Map<String, String> orderProperties); @Override void clearDriveOrder(); @Override void abortDriveOrder(); @Override void clearCommandQueue(); @Override @Deprecated void resetVehiclePosition(); @Override @Nonnull ExplainedBoolean canProcess(@Nonnull List<String> operations); @Override void sendCommAdapterMessage(@Nullable Object message); @Override void sendCommAdapterCommand(AdapterCommand command); @Override Queue<MovementCommand> getCommandsSent(); @Override @Nonnull String getId(); @Override boolean allocationSuccessful(@Nonnull Set<TCSResource<?>> resources); @Override void allocationFailed(@Nonnull Set<TCSResource<?>> resources); @Override String toString();  }### Answer:
@Test public void shouldForwardVehicleStateChangeToKernel() { vehicleModel.setVehicleState(Vehicle.State.EXECUTING); verify(vehicleService).updateVehicleState(vehicle.getReference(), Vehicle.State.EXECUTING); }