package org.bonitasoft.web.rest.server.api.bdm;
import static org.bonitasoft.web.rest.server.utils.ResponseAssert.assertThat;
import static org.mockito.Mockito.when;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.bonitasoft.engine.api.CommandAPI;
import org.bonitasoft.engine.business.data.SimpleBusinessDataReference;
import org.bonitasoft.web.rest.server.utils.RestletTest;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.restlet.Response;
import org.restlet.data.Status;
import org.restlet.resource.ServerResource;
@RunWith(MockitoJUnitRunner.class)
public class BusinessDataFindByIdsResourceTest extends RestletTest {
@Mock
private CommandAPI commandAPI;
@Override
protected ServerResource configureResource() {
return new BusinessDataFindByIdsResource(commandAPI);
}
@Test
public void findByIds_should_return_the_list_of_business_objects() throws Exception {
List<Long> ids = new ArrayList<>();
ids.add(1983L);
ids.add(547862L);
Map<String, Serializable> parameters = new HashMap<>();
parameters.put("entityClassName", "org.bonitasoft.pojo.Employee");
parameters.put("businessDataIds", (Serializable) ids);
parameters.put("businessDataURIPattern", BusinessDataFieldValue.URI_PATTERN);
when(commandAPI.execute("getBusinessDataByIds", parameters)).thenReturn("[{\"id\":1983},{\"id\":547862}]");
final Response response = request("/bdm/businessData/org.bonitasoft.pojo.Employee/findByIds?ids=1983,547862").get();
assertThat(response).hasStatus(Status.SUCCESS_OK);
assertThat(response).hasJsonEntityEqualTo("[{\"id\":1983},{\"id\":547862}]");
}
}