Package de.joergdev.mosy.api.client
Class AbstractCustomMockImpl<T>
java.lang.Object
de.joergdev.mosy.api.client.AbstractCustomMockImpl<T>
- Type Parameters:
T- Responsetype - dynmaic return type for mock response
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 Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract voidfillCustomRequestRequest(de.joergdev.mosy.api.request.mockservices.CustomRequestRequest req) Implementation needed: SetCustomRequestRequestinterface name, method name and request data.de.joergdev.mosy.api.model.Recordabstract TgetMockResponse(de.joergdev.mosy.api.response.mockservices.CustomRequestResponse response) Build Mockresponse of type T (for example your expected DTO) byCustomRequestResponse.abstract MosyApiClientbooleande.joergdev.mosy.api.response.record.SaveResponserecordResponse(String response) voidsetMockRecord(de.joergdev.mosy.api.model.Record mockRecord) voidsetRecordResponse(boolean recordResponse)
-
Field Details
-
customMockArguments
-
-
Constructor Details
-
AbstractCustomMockImpl
-
-
Method Details
-
getMockResponse
-
recordResponse
-
fillCustomRequestRequest
public abstract void fillCustomRequestRequest(de.joergdev.mosy.api.request.mockservices.CustomRequestRequest req) Implementation needed: SetCustomRequestRequestinterface name, method name and request data.- Parameters:
req- - CustomRequestRequest
-
getMosyApiClient
-
getMockResponse
public abstract T getMockResponse(de.joergdev.mosy.api.response.mockservices.CustomRequestResponse response) Build Mockresponse of type T (for example your expected DTO) byCustomRequestResponse.- 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)
-