Class AbstractCustomMockImpl<T>

java.lang.Object
de.joergdev.mosy.api.client.AbstractCustomMockImpl<T>
Type Parameters:
T - Responsetype - dynmaic return type for mock response

public abstract class AbstractCustomMockImpl<T> extends Object
 
 Abstract class that could be used to easily implement custom mocks.
 
 Example:
 
 public class CarService
 {
  public static Car loadCar(Integer id, CustomMockArguments customMockArguments)
  {
   // ---- Mock ----
   CarCustomMockImpl carCustomMockImpl = new CarCustomMockImpl(customMockArguments, id);

   Car carMockResponse = carCustomMockImpl.getMockResponse();
   if (carMockResponse != null)
   {
     return carMockResponse;
   }
   // --------------

   // ---- Real Access ----
   CarQueue queue = new CarQueue();

   queue.put(id);

   Car car = queue.read();
   // ---------------------

   // ---- Record ----
   if (carCustomMockImpl.isRecordResponse())
   {
     carCustomMockImpl.recordResponse(car.toXml());
   }
   // ----------------

   return car;
  }
 }
 
 
 
 
 public class CarCustomMockImpl extends AbstractCustomMockImpl<Car>
 {
  private Integer carID;
  
  public CarCustomMockImpl(CustomMockArguments customMockArguments, Integer carID)
  {
    super(customMockArguments);
    
    this.carID = carID;
  }

  public void fillCustomRequestRequest(CustomRequestRequest req)
  {
    req.setInterfaceName("CarService");
    req.setInterfaceMethod("loadCar");
    req.setRequest("<id>" + carID + "</id>");
  }

  public MosyApiClient getMosyApiClient()
  {
    MosyApiClient apiClient = new MosyApiClient();
    apiClient.systemLogin("m0sy".hashCode());

    return apiClient;
  }

  public Car getMockResponse(CustomRequestResponse response)
  {
    return Car.fromXml(response.getResponse());
  }
 }


 
Author:
Andreas Joerg
  • Field Details

  • Constructor Details

    • AbstractCustomMockImpl

      public AbstractCustomMockImpl(CustomMockArguments customMockArguments)
  • Method Details

    • getMockResponse

      public T getMockResponse()
    • recordResponse

      public de.joergdev.mosy.api.response.record.SaveResponse recordResponse(String response)
    • fillCustomRequestRequest

      public abstract void fillCustomRequestRequest(de.joergdev.mosy.api.request.mockservices.CustomRequestRequest req)
      Implementation needed: Set CustomRequestRequest interface name, method name and request data.
      Parameters:
      req - - CustomRequestRequest
    • getMosyApiClient

      public abstract MosyApiClient getMosyApiClient()
    • getMockResponse

      public abstract T getMockResponse(de.joergdev.mosy.api.response.mockservices.CustomRequestResponse response)
      Build Mockresponse of type T (for example your expected DTO) by CustomRequestResponse.
      Parameters:
      response - - CustomRequestResponse
      Returns:
      T
    • isRecordResponse

      public boolean isRecordResponse()
    • setRecordResponse

      public void setRecordResponse(boolean recordResponse)
    • getMockRecord

      public de.joergdev.mosy.api.model.Record getMockRecord()
    • setMockRecord

      public void setMockRecord(de.joergdev.mosy.api.model.Record mockRecord)