package org.mule.modules.flows; import org.mule.modules.stubs.FakeCustomer; import org.mule.modules.tools.CustomerFactory; import org.mule.modules.tools.FlowBuilder; import javax.validation.constraints.NotNull; import java.util.ArrayList; import java.util.List; public class DocumentFlows { @NotNull public Object shouldSaveDocument() { FakeCustomer payload = CustomerFactory.createFakeCustomer(); return FlowBuilder.run("Should_Save_Document") .withPayload(payload) .expectingType(new FakeCustomer()) .execute(); } @NotNull public Object shouldGetDocument(@NotNull FakeCustomer fakeCustomer) { return FlowBuilder.run("Should_Get_Document") .withPayload(fakeCustomer) .expectingType(new FakeCustomer()) .execute(); } @NotNull public Object shouldUpdateDocument(@NotNull FakeCustomer fakeCustomer) { return FlowBuilder.run("Should_Update_Document") .withPayload(fakeCustomer) .expectingType(new FakeCustomer()) .execute(); } public void shouldDeleteDocument(@NotNull FakeCustomer fakeCustomer) { FlowBuilder.run("Should_Delete_Document") .withPayload(fakeCustomer) .expectingType(new FakeCustomer()); } public void shouldDeleteAllDocuments() { FlowBuilder.run("Should_Delete_All_Documents") .withPayload(new FakeCustomer()) .expectingType(new FakeCustomer()); } @NotNull public <T> Object shouldGetAllDocuments(@NotNull T payload) { List<T> list = new ArrayList<T>(); return FlowBuilder.run("Should_Get_All_Documents") .withPayload(payload) .expectingType(list) .execute(); } }