@Override
  public void assertValid(final ControllerService service) {
    final StateManager serviceStateManager =
        controllerServiceStateManagers.get(service.getIdentifier());
    if (serviceStateManager == null) {
      throw new IllegalStateException(
          "Controller Service has not been added to this TestRunner via the #addControllerService method");
    }

    final ValidationContext validationContext =
        new MockValidationContext(context, serviceStateManager)
            .getControllerServiceValidationContext(service);
    final Collection<ValidationResult> results =
        context.getControllerService(service.getIdentifier()).validate(validationContext);

    for (final ValidationResult result : results) {
      if (!result.isValid()) {
        Assert.fail(
            "Expected Controller Service to be valid but it is invalid due to: "
                + result.toString());
      }
    }
  }
 @Override
 public <T extends ControllerService> T getControllerService(
     final String identifier, final Class<T> serviceType) {
   final ControllerService service = context.getControllerService(identifier);
   return serviceType.cast(service);
 }
 @Override
 public ControllerService getControllerService(final String identifier) {
   return context.getControllerService(identifier);
 }