package org.activiti.rest.service.api.management; import org.activiti.engine.management.TableMetaData; import org.activiti.rest.service.BaseSpringRestTestCase; import org.activiti.rest.service.api.RestUrls; import org.apache.http.HttpStatus; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.node.ArrayNode; /** * Test for all REST-operations related to the Table columns. * * @author Frederik Heremans */ public class TableColumnsResourceTest extends BaseSpringRestTestCase { /** * Test getting a single table's columns. * GET management/tables/{tableName}/columns */ public void testGetTableColumns() throws Exception { String tableName = managementService.getTableCount().keySet().iterator().next(); TableMetaData metaData = managementService.getTableMetaData(tableName); CloseableHttpResponse response = executeRequest(new HttpGet(SERVER_URL_PREFIX + RestUrls.createRelativeResourceUrl(RestUrls.URL_TABLE_COLUMNS, tableName)), HttpStatus.SC_OK); // Check table JsonNode responseNode = objectMapper.readTree(response.getEntity().getContent()); closeResponse(response); assertNotNull(responseNode); assertEquals(tableName, responseNode.get("tableName").textValue()); ArrayNode names = (ArrayNode) responseNode.get("columnNames"); ArrayNode types = (ArrayNode) responseNode.get("columnTypes"); assertNotNull(names); assertNotNull(types); assertEquals(metaData.getColumnNames().size(), names.size()); assertEquals(metaData.getColumnTypes().size(), types.size()); for(int i=0; i<names.size(); i++) { assertEquals(names.get(i).textValue(), metaData.getColumnNames().get(i)); assertEquals(types.get(i).textValue(), metaData.getColumnTypes().get(i)); } } public void testGetColumnsForUnexistingTable() throws Exception { closeResponse(executeRequest(new HttpGet(SERVER_URL_PREFIX + RestUrls.createRelativeResourceUrl(RestUrls.URL_TABLE_COLUMNS, "unexisting")), HttpStatus.SC_NOT_FOUND)); } }