// Path: eventbus-core/src/main/java/eu/tripledframework/eventbus/internal/domain/Invoker.java
// public interface Invoker {
// 
//   /**
//    * Method to verify if this Invoker is able to invoke an event of the given type.
//    *
//    * @param eventTypeToHandle The type of event that needs to be checked.
//    * @return <code>true</code> if the Invoker is able to handle events of the given type,
//    * <code>false</code> otherwise.
//    */
//   boolean handles(Class<?> eventTypeToHandle);
// 
//   /**
//    * Method which checks if the method which is being invoked by this invoker has a return type.
//    *
//    * @return <code>true</code> if the method which will be invoked has a return type, <code>false</code> otherwise.
//    */
//   boolean hasReturnType();
// 
//   /**
//    * Invokes the method handler with the given object as input.
//    *
//    * @param object The event with which the method handler should be invoked.
//    * @return an optional response from the method handler.
//    */
//   Object invoke(Object object);
// }
// 
// Path: eventbus-core/src/main/java/eu/tripledframework/eventbus/internal/domain/InvokerFactory.java
// public interface InvokerFactory {
// 
//   /**
//    * Method which will create one or more Invoker objects for the given object.
//    *
//    * @param eventHandler The object for which Invoker objects should be created.
//    * @return A List of Invoker objects, or an empty list. never null.
//    */
//   List<Invoker> create(Object eventHandler);
// 
//   /**
//    * Returns true if this factory is capable of creating Invoker objects for the given object,
//    * false otherwise.
//    *
//    * This method is called by the EventBus prior to calling the create.
//    * @param object The object for which the test should be done.
//    * @return <code>true</code> if this factory supports the given class, <code>false</code> otherwise.
//    */
//   boolean supports(Object object);
// }


import eu.tripledframework.eventbus.internal.domain.Invoker;
import eu.tripledframework.eventbus.internal.domain.InvokerFactory;
import java.util.Collections;
import java.util.List;
/*
 * Copyright 2015 TripleD framework.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package eu.tripledframework.eventbus.internal.infrastructure.invoker;



public class TestInvokerFactory implements InvokerFactory {

  public boolean isCreateCalled;

  @Override
  public List<Invoker> create(Object eventHandler) {
// Path: eventbus-core/src/main/java/eu/tripledframework/eventbus/internal/domain/Invoker.java
// public interface Invoker {
// 
//   /**
//    * Method to verify if this Invoker is able to invoke an event of the given type.
//    *
//    * @param eventTypeToHandle The type of event that needs to be checked.
//    * @return <code>true</code> if the Invoker is able to handle events of the given type,
//    * <code>false</code> otherwise.
//    */
//   boolean handles(Class<?> eventTypeToHandle);
// 
//   /**
//    * Method which checks if the method which is being invoked by this invoker has a return type.
//    *
//    * @return <code>true</code> if the method which will be invoked has a return type, <code>false</code> otherwise.
//    */
//   boolean hasReturnType();
// 
//   /**
//    * Invokes the method handler with the given object as input.
//    *
//    * @param object The event with which the method handler should be invoked.
//    * @return an optional response from the method handler.
//    */
//   Object invoke(Object object);
// }
// 
// Path: eventbus-core/src/main/java/eu/tripledframework/eventbus/internal/domain/InvokerFactory.java
// public interface InvokerFactory {
// 
//   /**
//    * Method which will create one or more Invoker objects for the given object.
//    *
//    * @param eventHandler The object for which Invoker objects should be created.
//    * @return A List of Invoker objects, or an empty list. never null.
//    */
//   List<Invoker> create(Object eventHandler);
// 
//   /**
//    * Returns true if this factory is capable of creating Invoker objects for the given object,
//    * false otherwise.
//    *
//    * This method is called by the EventBus prior to calling the create.
//    * @param object The object for which the test should be done.
//    * @return <code>true</code> if this factory supports the given class, <code>false</code> otherwise.
//    */
//   boolean supports(Object object);
// }


// Path: eventbus-core/src/test/java/eu/tripledframework/eventbus/internal/infrastructure/invoker/TestInvokerFactory.java
import eu.tripledframework.eventbus.internal.domain.Invoker;
import eu.tripledframework.eventbus.internal.domain.InvokerFactory;
import java.util.Collections;
import java.util.List;

/*
 * Copyright 2015 TripleD framework.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package eu.tripledframework.eventbus.internal.infrastructure.invoker;



public class TestInvokerFactory implements InvokerFactory {

  public boolean isCreateCalled;

  @Override
  public List<Invoker> create(Object eventHandler) {
    isCreateCalled = true;