http://git-wip-us.apache.org/repos/asf/lens/blob/d559ef2e/lens-server/src/test/java/org/apache/lens/server/metastore/TestMetastoreService.java ---------------------------------------------------------------------- diff --git a/lens-server/src/test/java/org/apache/lens/server/metastore/TestMetastoreService.java b/lens-server/src/test/java/org/apache/lens/server/metastore/TestMetastoreService.java index 925fc86..4bc3f0a 100644 --- a/lens-server/src/test/java/org/apache/lens/server/metastore/TestMetastoreService.java +++ b/lens-server/src/test/java/org/apache/lens/server/metastore/TestMetastoreService.java @@ -29,10 +29,7 @@ import javax.ws.rs.BadRequestException; import javax.ws.rs.NotFoundException; import javax.ws.rs.client.Entity; import javax.ws.rs.client.WebTarget; -import javax.ws.rs.core.Application; -import javax.ws.rs.core.GenericType; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; +import javax.ws.rs.core.*; import javax.xml.bind.JAXBElement; import javax.xml.datatype.DatatypeFactory; import javax.xml.datatype.XMLGregorianCalendar; @@ -44,6 +41,7 @@ import org.apache.lens.api.LensSessionHandle; import org.apache.lens.api.StringList; import org.apache.lens.api.error.LensCommonErrorCode; import org.apache.lens.api.metastore.*; +import org.apache.lens.api.metastore.ObjectFactory; import org.apache.lens.api.result.LensAPIResult; import org.apache.lens.cube.metadata.*; import org.apache.lens.cube.metadata.ExprColumn.ExprSpec; @@ -62,15 +60,9 @@ import org.apache.hadoop.hive.metastore.api.FieldSchema; import org.apache.hadoop.hive.ql.session.SessionState; import org.apache.hadoop.mapred.SequenceFileInputFormat; -import org.glassfish.jersey.client.ClientConfig; -import org.glassfish.jersey.media.multipart.FormDataBodyPart; -import org.glassfish.jersey.media.multipart.FormDataContentDisposition; -import org.glassfish.jersey.media.multipart.FormDataMultiPart; -import org.glassfish.jersey.media.multipart.MultiPartFeature; +import org.glassfish.jersey.test.TestProperties; import org.testng.Assert; -import org.testng.annotations.AfterTest; -import org.testng.annotations.BeforeTest; -import org.testng.annotations.Test; +import org.testng.annotations.*; import com.google.common.collect.Lists; import com.google.common.collect.Sets; @@ -80,8 +72,6 @@ import lombok.extern.slf4j.Slf4j; @Test(groups = "unit-test") public class TestMetastoreService extends LensJerseyTest { private ObjectFactory cubeObjectFactory; - protected String mediaType = MediaType.APPLICATION_XML; - protected MediaType medType = MediaType.APPLICATION_XML_TYPE; protected String dbPFX = "TestMetastoreService_"; CubeMetastoreServiceImpl metastoreService; LensSessionHandle lensSessionId; @@ -90,7 +80,7 @@ public class TestMetastoreService extends LensJerseyTest { assertEquals(result.getStatus(), Status.SUCCEEDED, String.valueOf(result)); } - @BeforeTest + @BeforeMethod public void setUp() throws Exception { super.setUp(); cubeObjectFactory = new ObjectFactory(); @@ -99,7 +89,7 @@ public class TestMetastoreService extends LensJerseyTest { } - @AfterTest + @AfterMethod public void tearDown() throws Exception { metastoreService.closeSession(lensSessionId); super.tearDown(); @@ -107,62 +97,67 @@ public class TestMetastoreService extends LensJerseyTest { @Override protected Application configure() { + enable(TestProperties.LOG_TRAFFIC); + enable(TestProperties.DUMP_ENTITY); return new MetastoreApp(); } - @Override - protected void configureClient(ClientConfig config) { - config.register(MultiPartFeature.class); - } - - @Test - public void testSetDatabase() throws Exception { - WebTarget dbTarget = target().path("metastore").path("databases/current"); - String dbName = "test_set_db"; + @Test(dataProvider = "mediaTypeData") + public void testSetDatabase(MediaType mediaType) throws Exception { + String prevDb = getCurrentDatabase(mediaType); + String dbName = "test_set_db" + mediaType.getSubtype(); try { - dbTarget.queryParam("sessionid", lensSessionId).request(mediaType).put(Entity.xml(dbName), APIResult.class); - fail("Should get 404"); - } catch (NotFoundException e) { - // expected - } + WebTarget dbTarget = target().path("metastore").path("databases/current"); + try { + dbTarget.queryParam("sessionid", lensSessionId).request(mediaType).put(getEntityForString(dbName, mediaType), + APIResult.class); + fail("Should get 404"); + } catch (NotFoundException e) { + // expected + } - // create - APIResult result = target().path("metastore").path("databases") - .queryParam("sessionid", lensSessionId).request(mediaType).post(Entity.xml(dbName), APIResult.class); - assertNotNull(result); - assertSuccess(result); + // create + APIResult result = target().path("metastore").path("databases") + .queryParam("sessionid", lensSessionId).request(mediaType).post(getEntityForString(dbName, mediaType), APIResult + .class); + assertNotNull(result); + assertSuccess(result); - // set - result = dbTarget.queryParam("sessionid", lensSessionId).request(mediaType) - .put(Entity.xml(dbName), APIResult.class); - assertNotNull(result); - assertSuccess(result); + // set + result = dbTarget.queryParam("sessionid", lensSessionId).request(mediaType) + .put(getEntityForString(dbName, mediaType), APIResult.class); + assertNotNull(result); + assertSuccess(result); - // set without session id, we should get bad request - try { - dbTarget.request(mediaType).put(Entity.xml(dbName), APIResult.class); - fail("Should have thrown bad request exception"); - } catch (BadRequestException badReq) { - // expected - } + // set without session id, we should get bad request + try { + dbTarget.request(mediaType).put(getEntityForString(dbName, mediaType), APIResult.class); + fail("Should have thrown bad request exception"); + } catch (BadRequestException badReq) { + // expected + } - String current = dbTarget.queryParam("sessionid", lensSessionId).request(mediaType).get(String.class); - assertEquals(current, dbName); + String current = dbTarget.queryParam("sessionid", lensSessionId).request(mediaType).get(String.class); + assertEquals(current, dbName); + } finally { + setCurrentDatabase(prevDb, mediaType); + dropDatabase(dbName, mediaType); + } } - @Test - public void testCreateDatabase() throws Exception { - final String newDb = dbPFX + "new_db"; + @Test(dataProvider = "mediaTypeData") + public void testCreateDatabase(MediaType mediaType) throws Exception { + final String newDb = dbPFX + "new_db" + mediaType.getSubtype(); WebTarget dbTarget = target().path("metastore").path("databases"); APIResult result = dbTarget.queryParam("sessionid", lensSessionId).request(mediaType) - .post(Entity.xml(newDb), APIResult.class); + .post(getEntityForString(newDb, mediaType), APIResult.class); assertNotNull(result); assertSuccess(result); // Create again result = dbTarget.queryParam("sessionid", lensSessionId).queryParam("ignoreIfExisting", false) - .request(mediaType).post(Entity.xml(newDb), APIResult.class); + .request(mediaType).post(getEntityForString(newDb, mediaType), APIResult.class); assertEquals(result.getStatus(), APIResult.Status.FAILED); log.info(">> Result message " + result.getMessage()); @@ -170,13 +165,13 @@ public class TestMetastoreService extends LensJerseyTest { dbTarget.path(newDb).queryParam("sessionid", lensSessionId).request().delete(); } - @Test - public void testDropDatabase() throws Exception { - final String dbName = dbPFX + "del_db"; + @Test(dataProvider = "mediaTypeData") + public void testDropDatabase(MediaType mediaType) throws Exception { + final String dbName = dbPFX + "del_db" + mediaType.getSubtype(); final WebTarget dbTarget = target().path("metastore").path("databases"); // First create the database APIResult create = dbTarget.queryParam("sessionid", lensSessionId).request(mediaType) - .post(Entity.xml(dbName), APIResult.class); + .post(getEntityForString(dbName, mediaType), APIResult.class); assertSuccess(create); // Now drop it @@ -186,16 +181,16 @@ public class TestMetastoreService extends LensJerseyTest { assertSuccess(drop); } - @Test - public void testGetAllDatabases() throws Exception { - final String[] dbsToCreate = {"db_1", "db_2", "db_3"}; + @Test(dataProvider = "mediaTypeData") + public void testGetAllDatabases(MediaType mediaType) throws Exception { + final String[] dbsToCreate = {"db_1" + mediaType.getSubtype(), + "db_2" + mediaType.getSubtype(), "db_3" + mediaType.getSubtype(), }; final WebTarget dbTarget = target().path("metastore").path("databases"); for (String name : dbsToCreate) { - dbTarget.queryParam("sessionid", lensSessionId).request(mediaType).post(Entity.xml(name)); + dbTarget.queryParam("sessionid", lensSessionId).request(mediaType).post(getEntityForString(name, mediaType)); } - StringList allDbs = target().path("metastore").path("databases") .queryParam("sessionid", lensSessionId).request(mediaType) .get(StringList.class); @@ -216,16 +211,16 @@ public class TestMetastoreService extends LensJerseyTest { } } - private void createDatabase(String dbName) throws Exception { + private void createDatabase(String dbName, MediaType mediaType) throws Exception { WebTarget dbTarget = target().path("metastore").path("databases"); APIResult result = dbTarget.queryParam("sessionid", lensSessionId).request(mediaType) - .post(Entity.xml(dbName), APIResult.class); + .post(getEntityForString(dbName, mediaType), APIResult.class); assertNotNull(result); assertSuccess(result); } - private void createStorage(String storageName) throws Exception { + private void createStorage(String storageName, MediaType mediaType) throws Exception { WebTarget target = target().path("metastore").path("storages"); XStorage xs = new XStorage(); @@ -237,13 +232,15 @@ public class TestMetastoreService extends LensJerseyTest { prop.setValue("prop1.value"); xs.getProperties().getProperty().add(prop); - APIResult result = target.queryParam("sessionid", lensSessionId).request(mediaType).post(Entity.xml( - cubeObjectFactory.createXStorage(xs)), APIResult.class); + APIResult result = target.queryParam("sessionid", lensSessionId).request(mediaType).post( + Entity.entity(new GenericEntity<JAXBElement<XStorage>>(cubeObjectFactory.createXStorage(xs)) { + }, mediaType), + APIResult.class); assertNotNull(result); assertSuccess(result); } - private void dropStorage(String storageName) throws Exception { + private void dropStorage(String storageName, MediaType mediaType) throws Exception { WebTarget target = target().path("metastore").path("storages").path(storageName); APIResult result = target @@ -251,7 +248,7 @@ public class TestMetastoreService extends LensJerseyTest { assertSuccess(result); } - private void dropDatabase(String dbName) throws Exception { + private void dropDatabase(String dbName, MediaType mediaType) throws Exception { WebTarget dbTarget = target().path("metastore").path("databases").path(dbName); APIResult result = dbTarget.queryParam("cascade", "true") @@ -259,14 +256,14 @@ public class TestMetastoreService extends LensJerseyTest { assertSuccess(result); } - private void setCurrentDatabase(String dbName) throws Exception { + private void setCurrentDatabase(String dbName, MediaType mediaType) throws Exception { WebTarget dbTarget = target().path("metastore").path("databases/current"); - APIResult result = dbTarget.queryParam("sessionid", lensSessionId).request(mediaType).put(Entity.xml(dbName), - APIResult.class); + APIResult result = dbTarget.queryParam("sessionid", lensSessionId).request(mediaType) + .put(getEntityForString(dbName, mediaType), APIResult.class); assertSuccess(result); } - private String getCurrentDatabase() throws Exception { + private String getCurrentDatabase(MediaType mediaType) throws Exception { return target().path("metastore").path("databases/current") .queryParam("sessionid", lensSessionId).request(mediaType).get(String.class); } @@ -462,25 +459,27 @@ public class TestMetastoreService extends LensJerseyTest { } } - @Test - public void testCreateCube() throws Exception { - final String DB = dbPFX + "test_create_cube"; - String prevDb = getCurrentDatabase(); - createDatabase(DB); - setCurrentDatabase(DB); + @Test(dataProvider = "mediaTypeData") + public void testCreateCube(MediaType mediaType) throws Exception { + final String DB = dbPFX + "test_create_cube" + mediaType.getSubtype(); + String prevDb = getCurrentDatabase(mediaType); + createDatabase(DB, mediaType); + setCurrentDatabase(DB, mediaType); try { final XCube cube = createTestCube("testCube1"); final WebTarget target = target().path("metastore").path("cubes"); APIResult result; try { // first try without a session id - target.request(mediaType).post(Entity.xml(cubeObjectFactory.createXCube(cube)), APIResult.class); + target.request(mediaType).post(Entity.entity(new GenericEntity<JAXBElement<XCube>>( + cubeObjectFactory.createXCube(cube)){}, mediaType), APIResult.class); fail("Should have thrown bad request exception"); } catch (BadRequestException badReq) { // expected } result = target.queryParam("sessionid", lensSessionId).request(mediaType) - .post(Entity.xml(cubeObjectFactory.createXCube(cube)), APIResult.class); + .post(Entity.entity(new GenericEntity<JAXBElement<XCube>>(cubeObjectFactory.createXCube(cube)){}, mediaType), + APIResult.class); assertNotNull(result); assertSuccess(result); @@ -490,14 +489,16 @@ public class TestMetastoreService extends LensJerseyTest { // create invalid derived cube XCube dcube = createDerivedCube("testderived", "testCube1", true); result = target.queryParam("sessionid", lensSessionId).request( - mediaType).post(Entity.xml(cubeObjectFactory.createXCube(dcube)), APIResult.class); + mediaType).post(Entity.entity(new GenericEntity<JAXBElement<XCube>>(cubeObjectFactory.createXCube(dcube)){}, + mediaType), APIResult.class); assertEquals(result.getStatus(), Status.FAILED); assertEquals(result.getMessage(), "Problem in submitting entity: Derived cube invalid: Measures " + "[random_measure] and Dim Attributes [random_dim] were not present in parent cube testcube1"); // create derived cube dcube = createDerivedCube("testderived", "testCube1", false); result = target.queryParam("sessionid", lensSessionId).request( - mediaType).post(Entity.xml(cubeObjectFactory.createXCube(dcube)), APIResult.class); + mediaType).post(Entity.entity(new GenericEntity<JAXBElement<XCube>>(cubeObjectFactory.createXCube(dcube)){}, + mediaType), APIResult.class); assertNotNull(result); assertSuccess(result); @@ -528,7 +529,8 @@ public class TestMetastoreService extends LensJerseyTest { qcube.getProperties().getProperty().add(xp); result = target.queryParam("sessionid", lensSessionId).request( - mediaType).post(Entity.xml(cubeObjectFactory.createXCube(qcube)), APIResult.class); + mediaType).post(Entity.entity(new GenericEntity<JAXBElement<XCube>>(cubeObjectFactory.createXCube(qcube)){}, + mediaType), APIResult.class); assertNotNull(result); assertSuccess(result); @@ -546,12 +548,11 @@ public class TestMetastoreService extends LensJerseyTest { LensUtil.<String, Boolean>getHashMap("testCube1", true, "testderived", true, "testNoQueryCube", false)); } finally { - dropDatabase(DB); - setCurrentDatabase(prevDb); + dropDatabase(DB, mediaType); + setCurrentDatabase(prevDb, mediaType); } } - @Test public void testMeasureJaxBConversion() throws Exception { CubeMeasure cubeMeasure = new ColumnMeasure(new FieldSchema("msr1", "int", "first measure"), null, null, null, null, null, null, null, @@ -563,12 +564,12 @@ public class TestMetastoreService extends LensJerseyTest { assertEquals(actualMeasure.getMax(), measure.getMax()); } - @Test - public void testGetCube() throws Exception { - final String DB = dbPFX + "test_get_cube"; - String prevDb = getCurrentDatabase(); - createDatabase(DB); - setCurrentDatabase(DB); + @Test(dataProvider = "mediaTypeData") + public void testGetCube(MediaType mediaType) throws Exception { + final String DB = dbPFX + "test_get_cube" + mediaType.getSubtype(); + String prevDb = getCurrentDatabase(mediaType); + createDatabase(DB, mediaType); + setCurrentDatabase(DB, mediaType); try { final XBaseCube cube = createTestCube("testGetCube"); @@ -576,7 +577,8 @@ public class TestMetastoreService extends LensJerseyTest { WebTarget target = target().path("metastore").path("cubes"); JAXBElement<XCube> element = cubeObjectFactory.createXCube(cube); APIResult result = - target.queryParam("sessionid", lensSessionId).request(mediaType).post(Entity.xml(element), APIResult.class); + target.queryParam("sessionid", lensSessionId).request(mediaType).post(Entity.entity( + new GenericEntity<JAXBElement<XCube>>(element){}, mediaType), APIResult.class); assertSuccess(result); // Now get @@ -674,7 +676,8 @@ public class TestMetastoreService extends LensJerseyTest { // Create this cube first element = cubeObjectFactory.createXCube(dcube); result = - target.queryParam("sessionid", lensSessionId).request(mediaType).post(Entity.xml(element), APIResult.class); + target.queryParam("sessionid", lensSessionId).request(mediaType).post( + Entity.entity(new GenericEntity<JAXBElement<XCube>>(element){}, mediaType), APIResult.class); assertSuccess(result); // Now get @@ -688,17 +691,17 @@ public class TestMetastoreService extends LensJerseyTest { assertEquals(actual2.getMeasureNames().getMeasureName().size(), dcube.getMeasureNames().getMeasureName().size()); assertEquals(actual2.getDimAttrNames().getAttrName().size(), dcube.getDimAttrNames().getAttrName().size()); } finally { - dropDatabase(DB); - setCurrentDatabase(prevDb); + dropDatabase(DB, mediaType); + setCurrentDatabase(prevDb, mediaType); } } - @Test - public void testDropCube() throws Exception { - final String DB = dbPFX + "test_drop_cube"; - String prevDb = getCurrentDatabase(); - createDatabase(DB); - setCurrentDatabase(DB); + @Test(dataProvider = "mediaTypeData") + public void testDropCube(MediaType mediaType) throws Exception { + final String DB = dbPFX + "test_drop_cube" + mediaType.getSubtype(); + String prevDb = getCurrentDatabase(mediaType); + createDatabase(DB, mediaType); + setCurrentDatabase(DB, mediaType); try { final XCube cube = createTestCube("test_drop_cube"); @@ -706,7 +709,8 @@ public class TestMetastoreService extends LensJerseyTest { WebTarget target = target().path("metastore").path("cubes"); JAXBElement<XCube> element = cubeObjectFactory.createXCube(cube); APIResult result = - target.queryParam("sessionid", lensSessionId).request(mediaType).post(Entity.xml(element), APIResult.class); + target.queryParam("sessionid", lensSessionId).request(mediaType).post( + Entity.entity(new GenericEntity<JAXBElement<XCube>>(element){}, mediaType), APIResult.class); assertSuccess(result); final XCube dcube = createDerivedCube("test_drop_derived_cube", "test_drop_cube", false); @@ -714,7 +718,8 @@ public class TestMetastoreService extends LensJerseyTest { // Create this cube first element = cubeObjectFactory.createXCube(dcube); result = - target.queryParam("sessionid", lensSessionId).request(mediaType).post(Entity.xml(element), APIResult.class); + target.queryParam("sessionid", lensSessionId).request(mediaType).post( + Entity.entity(new GenericEntity<JAXBElement<XCube>>(element){}, mediaType), APIResult.class); assertSuccess(result); target = target().path("metastore").path("cubes").path("test_drop_derived_cube"); @@ -745,18 +750,18 @@ public class TestMetastoreService extends LensJerseyTest { log.error("Resource not found.", ex); } } finally { - dropDatabase(DB); - setCurrentDatabase(prevDb); + dropDatabase(DB, mediaType); + setCurrentDatabase(prevDb, mediaType); } } - @Test - public void testUpdateCube() throws Exception { + @Test(dataProvider = "mediaTypeData") + public void testUpdateCube(MediaType mediaType) throws Exception { final String cubeName = "test_update"; - final String DB = dbPFX + "test_update_cube"; - String prevDb = getCurrentDatabase(); - createDatabase(DB); - setCurrentDatabase(DB); + final String DB = dbPFX + "test_update_cube" + mediaType.getSubtype(); + String prevDb = getCurrentDatabase(mediaType); + createDatabase(DB, mediaType); + setCurrentDatabase(DB, mediaType); try { final XBaseCube cube = createTestCube(cubeName); @@ -764,7 +769,8 @@ public class TestMetastoreService extends LensJerseyTest { WebTarget target = target().path("metastore").path("cubes"); JAXBElement<XCube> element = cubeObjectFactory.createXCube(cube); APIResult result = - target.queryParam("sessionid", lensSessionId).request(mediaType).post(Entity.xml(element), APIResult.class); + target.queryParam("sessionid", lensSessionId).request(mediaType).post(Entity.entity( + new GenericEntity<JAXBElement<XCube>>(element){}, mediaType), APIResult.class); assertSuccess(result); // Update something @@ -788,7 +794,8 @@ public class TestMetastoreService extends LensJerseyTest { element = cubeObjectFactory.createXCube(cube); result = target.path(cubeName) - .queryParam("sessionid", lensSessionId).request(mediaType).put(Entity.xml(element), APIResult.class); + .queryParam("sessionid", lensSessionId).request(mediaType).put(Entity.entity( + new GenericEntity<JAXBElement<XCube>>(element){}, mediaType), APIResult.class); assertSuccess(result); JAXBElement<XCube> got = @@ -807,7 +814,8 @@ public class TestMetastoreService extends LensJerseyTest { XDerivedCube dcube = createDerivedCube("test_update_derived", cubeName, true); element = cubeObjectFactory.createXCube(dcube); result = - target.queryParam("sessionid", lensSessionId).request(mediaType).post(Entity.xml(element), APIResult.class); + target.queryParam("sessionid", lensSessionId).request(mediaType).post(Entity.entity( + new GenericEntity<JAXBElement<XCube>>(element){}, mediaType), APIResult.class); assertEquals(result.getStatus(), Status.FAILED); assertEquals(result.getMessage(), "Problem in submitting entity: Derived cube invalid: Measures " + "[random_measure] and Dim Attributes [random_dim] were not present in parent cube test_update"); @@ -815,7 +823,8 @@ public class TestMetastoreService extends LensJerseyTest { // Create this cube first element = cubeObjectFactory.createXCube(dcube); result = - target.queryParam("sessionid", lensSessionId).request(mediaType).post(Entity.xml(element), APIResult.class); + target.queryParam("sessionid", lensSessionId).request(mediaType).post( + Entity.entity(new GenericEntity<JAXBElement<XCube>>(element){}, mediaType), APIResult.class); assertSuccess(result); // Update something @@ -831,7 +840,8 @@ public class TestMetastoreService extends LensJerseyTest { element = cubeObjectFactory.createXCube(dcube); result = target.path("test_update_derived") - .queryParam("sessionid", lensSessionId).request(mediaType).put(Entity.xml(element), APIResult.class); + .queryParam("sessionid", lensSessionId).request(mediaType).put(Entity.entity(new + GenericEntity<JAXBElement<XCube>>(element){}, mediaType), APIResult.class); assertSuccess(result); got = target.path("test_update_derived") @@ -849,19 +859,19 @@ public class TestMetastoreService extends LensJerseyTest { assertEquals(((AbstractCubeTable) hdcube).getProperties().get("foo.derived2"), "bar.derived2"); } finally { - dropDatabase(DB); - setCurrentDatabase(prevDb); + dropDatabase(DB, mediaType); + setCurrentDatabase(prevDb, mediaType); } } - @Test - public void testStorage() throws Exception { - final String DB = dbPFX + "test_storage"; - String prevDb = getCurrentDatabase(); - createDatabase(DB); - setCurrentDatabase(DB); + @Test(dataProvider = "mediaTypeData") + public void testStorage(MediaType mediaType) throws Exception { + final String DB = dbPFX + "test_storage" + mediaType.getSubtype(); + String prevDb = getCurrentDatabase(mediaType); + createDatabase(DB, mediaType); + setCurrentDatabase(DB, mediaType); try { - createStorage("store1"); + createStorage("store1", mediaType); final WebTarget target = target().path("metastore").path("storages"); StringList storages = target.queryParam("sessionid", lensSessionId).request(mediaType).get(StringList.class); @@ -891,7 +901,8 @@ public class TestMetastoreService extends LensJerseyTest { APIResult result = target.path("store1") .queryParam("sessionid", lensSessionId).queryParam("storage", "store1") - .request(mediaType).put(Entity.xml(cubeObjectFactory.createXStorage(store1)), APIResult.class); + .request(mediaType).put(Entity.entity(new GenericEntity<JAXBElement<XStorage>>(cubeObjectFactory + .createXStorage(store1)){}, mediaType), APIResult.class); assertSuccess(result); store1 = target.path("store1").queryParam("sessionid", lensSessionId).request(mediaType).get(XStorage.class); @@ -904,10 +915,10 @@ public class TestMetastoreService extends LensJerseyTest { assertEquals(JAXBUtils.mapFromXProperties(store1.getProperties()).get("prop2.name"), "prop2.value"); // drop the storage - dropStorage("store1"); + dropStorage("store1", mediaType); } finally { - dropDatabase(DB); - setCurrentDatabase(prevDb); + dropDatabase(DB, mediaType); + setCurrentDatabase(prevDb, mediaType); } } @@ -982,25 +993,22 @@ public class TestMetastoreService extends LensJerseyTest { return dt; } - private XDimensionTable createDimTable(String dimTableName) throws Exception { + private XDimensionTable createDimTable(String dimTableName, MediaType mediaType) throws Exception { XDimension dimension = createDimension("testdim"); APIResult result = target().path("metastore").path("dimensions") .queryParam("sessionid", lensSessionId).request( - mediaType).post(Entity.xml(cubeObjectFactory.createXDimension(dimension)), APIResult.class); + mediaType).post(Entity.entity(new GenericEntity<JAXBElement<XDimension>>(cubeObjectFactory + .createXDimension(dimension)) {}, mediaType), APIResult.class); assertSuccess(result); XDimensionTable dt = createDimTable("testdim", dimTableName); dt.getStorageTables().getStorageTable().add(createStorageTblElement("test", dimTableName, "HOURLY")); - final FormDataMultiPart mp = new FormDataMultiPart(); - mp.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("sessionid").build(), - lensSessionId, medType)); - mp.bodyPart(new FormDataBodyPart( - FormDataContentDisposition.name("dimensionTable").fileName("dimtable").build(), - cubeObjectFactory.createXDimensionTable(dt), medType)); result = target() .path("metastore") - .path("dimtables") + .path("dimtables").queryParam("sessionid", lensSessionId) .request(mediaType) - .post(Entity.entity(mp, MediaType.MULTIPART_FORM_DATA_TYPE), APIResult.class); + .post(Entity.entity( + new GenericEntity<JAXBElement<XDimensionTable>>(cubeObjectFactory.createXDimensionTable(dt)) {}, + mediaType), APIResult.class); assertSuccess(result); return dt; } @@ -1054,7 +1062,7 @@ public class TestMetastoreService extends LensJerseyTest { return dimension; } - private void createdChainedDimensions() throws Exception { + private void createdChainedDimensions(MediaType mediaType) throws Exception { XDimension dimension = createDimension("testdim"); XDimension dimension2 = createDimension("testdim2"); @@ -1137,25 +1145,27 @@ public class TestMetastoreService extends LensJerseyTest { // create APIResult result = target.queryParam("sessionid", lensSessionId).request( - mediaType).post(Entity.xml(cubeObjectFactory.createXDimension(dimension)), APIResult.class); + mediaType).post(Entity.entity(new GenericEntity<JAXBElement<XDimension>>(cubeObjectFactory + .createXDimension(dimension)){}, mediaType), APIResult.class); assertNotNull(result); assertSuccess(result); // create result = target.queryParam("sessionid", lensSessionId).request( - mediaType).post(Entity.xml(cubeObjectFactory.createXDimension(dimension2)), APIResult.class); + mediaType).post(Entity.entity(new GenericEntity<JAXBElement<XDimension>>(cubeObjectFactory + .createXDimension(dimension2)){}, mediaType), APIResult.class); assertNotNull(result); assertSuccess(result); } - @Test - public void testDimension() throws Exception { - final String DB = dbPFX + "test_dimension"; - String prevDb = getCurrentDatabase(); - createDatabase(DB); - setCurrentDatabase(DB); + @Test(dataProvider = "mediaTypeData") + public void testDimension(MediaType mediaType) throws Exception { + final String DB = dbPFX + "test_dimension" + mediaType.getSubtype(); + String prevDb = getCurrentDatabase(mediaType); + createDatabase(DB, mediaType); + setCurrentDatabase(DB, mediaType); try { - createdChainedDimensions(); + createdChainedDimensions(mediaType); final WebTarget target = target().path("metastore").path("dimensions"); @@ -1257,7 +1267,8 @@ public class TestMetastoreService extends LensJerseyTest { APIResult result = target.path("testdim") .queryParam("sessionid", lensSessionId) - .request(mediaType).put(Entity.xml(cubeObjectFactory.createXDimension(testDim)), APIResult.class); + .request(mediaType).put(Entity.entity(new GenericEntity<JAXBElement<XDimension>>(cubeObjectFactory + .createXDimension(testDim)){}, mediaType), APIResult.class); assertSuccess(result); XDimension altered = target.path("testdim").queryParam("sessionid", lensSessionId).request(mediaType).get( @@ -1299,22 +1310,22 @@ public class TestMetastoreService extends LensJerseyTest { log.error("Resource not found.", ex); } } finally { - dropDatabase(DB); - setCurrentDatabase(prevDb); + dropDatabase(DB, mediaType); + setCurrentDatabase(prevDb, mediaType); } } - @Test - public void testCreateAndDropDimensionTable() throws Exception { + @Test(dataProvider = "mediaTypeData") + public void testCreateAndDropDimensionTable(MediaType mediaType) throws Exception { final String table = "test_create_dim"; - final String DB = dbPFX + "test_dim_db"; - String prevDb = getCurrentDatabase(); - createDatabase(DB); - setCurrentDatabase(DB); - createStorage("test"); + final String DB = dbPFX + "test_dim_db" + mediaType.getSubtype(); + String prevDb = getCurrentDatabase(mediaType); + createDatabase(DB, mediaType); + setCurrentDatabase(DB, mediaType); + createStorage("test", mediaType); try { - createDimTable(table); + createDimTable(table, mediaType); // Drop the table now APIResult result = @@ -1334,22 +1345,22 @@ public class TestMetastoreService extends LensJerseyTest { } } finally { - setCurrentDatabase(prevDb); - dropDatabase(DB); + setCurrentDatabase(prevDb, mediaType); + dropDatabase(DB, mediaType); } } - @Test - public void testGetAndUpdateDimensionTable() throws Exception { + @Test(dataProvider = "mediaTypeData") + public void testGetAndUpdateDimensionTable(MediaType mediaType) throws Exception { final String table = "test_get_dim"; - final String DB = dbPFX + "test_get_dim_db"; - String prevDb = getCurrentDatabase(); - createDatabase(DB); - setCurrentDatabase(DB); - createStorage("test"); + final String DB = dbPFX + "test_get_dim_db" + mediaType.getSubtype(); + String prevDb = getCurrentDatabase(mediaType); + createDatabase(DB, mediaType); + setCurrentDatabase(DB, mediaType); + createStorage("test", mediaType); try { - XDimensionTable dt1 = createDimTable(table); + XDimensionTable dt1 = createDimTable(table, mediaType); JAXBElement<XDimensionTable> dtElement = target().path("metastore/dimtables").path(table) .queryParam("sessionid", lensSessionId).request(mediaType) @@ -1379,7 +1390,9 @@ public class TestMetastoreService extends LensJerseyTest { APIResult result = target().path("metastore/dimtables") .path(table) .queryParam("sessionid", lensSessionId).request(mediaType) - .put(Entity.xml(cubeObjectFactory.createXDimensionTable(dt2)), APIResult.class); + .put(Entity.entity(new GenericEntity<JAXBElement<XDimensionTable>>(cubeObjectFactory + .createXDimensionTable(dt2)){}, mediaType), + APIResult.class); assertSuccess(result); // Get the updated table @@ -1407,7 +1420,7 @@ public class TestMetastoreService extends LensJerseyTest { dt3.getStorageTables().getStorageTable().get(0).getTableDesc().setInputFormat( SequenceFileInputFormat.class.getCanonicalName()); // add one more storage table - createStorage("testAlterDimStorage"); + createStorage("testAlterDimStorage", mediaType); XStorageTableElement newStorage = createStorageTblElement("testAlterDimStorage", dt3.getTableName(), (String[]) null); newStorage.getTableDesc().setFieldDelimiter(":"); @@ -1416,7 +1429,9 @@ public class TestMetastoreService extends LensJerseyTest { result = target().path("metastore/dimtables") .path(table) .queryParam("sessionid", lensSessionId).request(mediaType) - .put(Entity.xml(cubeObjectFactory.createXDimensionTable(dt3)), APIResult.class); + .put(Entity.entity(new GenericEntity<JAXBElement<XDimensionTable>>(cubeObjectFactory + .createXDimensionTable(dt3)){}, mediaType), + APIResult.class); assertSuccess(result); // Get the updated table @@ -1436,7 +1451,7 @@ public class TestMetastoreService extends LensJerseyTest { // get native table and validate altered property XNativeTable newdNativeTable = nativeTarget.path("testalterdimstorage_" + table) .queryParam("sessionid", lensSessionId) - .request(mediaType).get(XNativeTable.class); + .request(mediaType).get(new GenericType<JAXBElement<XNativeTable>>() {}).getValue(); assertEquals(newdNativeTable.getStorageDescriptor().getFieldDelimiter(), ":"); XNativeTable alteredNativeTable = nativeTarget.path("test_" + table).queryParam("sessionid", lensSessionId) .request(mediaType).get(XNativeTable.class); @@ -1449,22 +1464,22 @@ public class TestMetastoreService extends LensJerseyTest { .queryParam("sessionid", lensSessionId).request(mediaType).delete(APIResult.class); assertSuccess(result); } finally { - setCurrentDatabase(prevDb); - dropDatabase(DB); + setCurrentDatabase(prevDb, mediaType); + dropDatabase(DB, mediaType); } } - @Test - public void testGetDimensionStorages() throws Exception { + @Test(dataProvider = "mediaTypeData") + public void testGetDimensionStorages(MediaType mediaType) throws Exception { final String table = "test_get_storage"; final String DB = dbPFX + "test_get_dim_storage_db"; - String prevDb = getCurrentDatabase(); - createDatabase(DB); - setCurrentDatabase(DB); - createStorage("test"); + String prevDb = getCurrentDatabase(mediaType); + createDatabase(DB, mediaType); + setCurrentDatabase(DB, mediaType); + createStorage("test", mediaType); try { - createDimTable(table); + createDimTable(table, mediaType); StringList storages = target().path("metastore").path("dimtables") .path(table).path("storages") .queryParam("sessionid", lensSessionId).request(mediaType) @@ -1472,28 +1487,30 @@ public class TestMetastoreService extends LensJerseyTest { assertEquals(storages.getElements().size(), 1); assertTrue(storages.getElements().contains("test")); } finally { - setCurrentDatabase(prevDb); - dropDatabase(DB); + setCurrentDatabase(prevDb, mediaType); + dropDatabase(DB, mediaType); } } - @Test - public void testAddAndDropDimensionStorages() throws Exception { + @Test(dataProvider = "mediaTypeData") + public void testAddAndDropDimensionStorages(MediaType mediaType) throws Exception { final String table = "test_add_drop_storage"; - final String DB = dbPFX + "test_add_drop_dim_storage_db"; - createDatabase(DB); - String prevDb = getCurrentDatabase(); - setCurrentDatabase(DB); - createStorage("test"); - createStorage("test2"); - createStorage("test3"); + final String DB = dbPFX + "test_add_drop_dim_storage_db" + mediaType.getSubtype(); + createDatabase(DB, mediaType); + String prevDb = getCurrentDatabase(mediaType); + setCurrentDatabase(DB, mediaType); + createStorage("test", mediaType); + createStorage("test2", mediaType); + createStorage("test3", mediaType); try { - createDimTable(table); + createDimTable(table, mediaType); XStorageTableElement sTbl = createStorageTblElement("test2", table, "DAILY"); APIResult result = target().path("metastore/dimtables").path(table).path("/storages") .queryParam("sessionid", lensSessionId).request(mediaType) - .post(Entity.xml(cubeObjectFactory.createXStorageTableElement(sTbl)), APIResult.class); + .post(Entity.entity(new GenericEntity<JAXBElement<XStorageTableElement>>(cubeObjectFactory + .createXStorageTableElement(sTbl)) { + }, mediaType), APIResult.class); assertSuccess(result); StringList storages = target().path("metastore").path("dimtables") @@ -1501,8 +1518,8 @@ public class TestMetastoreService extends LensJerseyTest { .queryParam("sessionid", lensSessionId).request(mediaType) .get(StringList.class); assertEquals(storages.getElements().size(), 2); - assertTrue(storages.getElements().contains("test")); - assertTrue(storages.getElements().contains("test2")); + assertTrue(storages.getElements().contains("test"), "Got " + storages.getElements().toString()); + assertTrue(storages.getElements().contains("test2"), "Got " + storages.getElements().toString()); // Check get table also contains the storage JAXBElement<XDimensionTable> dt = target().path("metastore/dimtables").path(table) @@ -1542,7 +1559,8 @@ public class TestMetastoreService extends LensJerseyTest { sTbl = createStorageTblElement("test3", table, (String[]) null); result = target().path("metastore/dimtables").path(table).path("/storages") .queryParam("sessionid", lensSessionId).request(mediaType) - .post(Entity.xml(cubeObjectFactory.createXStorageTableElement(sTbl)), APIResult.class); + .post(Entity.entity(new GenericEntity<JAXBElement<XStorageTableElement>>(cubeObjectFactory + .createXStorageTableElement(sTbl)){}, mediaType), APIResult.class); assertSuccess(result); storages = target().path("metastore").path("dimtables") @@ -1563,27 +1581,28 @@ public class TestMetastoreService extends LensJerseyTest { assertTrue(cdim.getStorages().contains("test3")); assertNull(cdim.getSnapshotDumpPeriods().get("test3")); } finally { - setCurrentDatabase(prevDb); - dropDatabase(DB); + setCurrentDatabase(prevDb, mediaType); + dropDatabase(DB, mediaType); } } - @Test - public void testAddDropAllDimStorages() throws Exception { + @Test(dataProvider = "mediaTypeData") + public void testAddDropAllDimStorages(MediaType mediaType) throws Exception { final String table = "testAddDropAllDimStorages"; - final String DB = dbPFX + "testAddDropAllDimStorages_db"; - String prevDb = getCurrentDatabase(); - createDatabase(DB); - setCurrentDatabase(DB); - createStorage("test"); - createStorage("test2"); + final String DB = dbPFX + "testAddDropAllDimStorages_db" + mediaType.getSubtype(); + String prevDb = getCurrentDatabase(mediaType); + createDatabase(DB, mediaType); + setCurrentDatabase(DB, mediaType); + createStorage("test", mediaType); + createStorage("test2", mediaType); try { - createDimTable(table); + createDimTable(table, mediaType); XStorageTableElement sTbl = createStorageTblElement("test2", table, "DAILY"); APIResult result = target().path("metastore/dimtables").path(table).path("/storages") .queryParam("sessionid", lensSessionId).request(mediaType) - .post(Entity.xml(cubeObjectFactory.createXStorageTableElement(sTbl)), APIResult.class); + .post(Entity.entity(new GenericEntity<JAXBElement<XStorageTableElement>>(cubeObjectFactory + .createXStorageTableElement(sTbl)){}, mediaType), APIResult.class); assertSuccess(result); result = target().path("metastore/dimtables/").path(table).path("storages") @@ -1591,7 +1610,6 @@ public class TestMetastoreService extends LensJerseyTest { .delete(APIResult.class); assertSuccess(result); - JAXBElement<XDimensionTable> dt = target().path("metastore/dimtables").path(table) .queryParam("sessionid", lensSessionId).request(mediaType) .get(new GenericType<JAXBElement<XDimensionTable>>() {}); @@ -1600,8 +1618,8 @@ public class TestMetastoreService extends LensJerseyTest { assertTrue(cdim.getStorages().isEmpty()); assertTrue(cdim.getSnapshotDumpPeriods().isEmpty()); } finally { - setCurrentDatabase(prevDb); - dropDatabase(DB); + setCurrentDatabase(prevDb, mediaType); + dropDatabase(DB, mediaType); } } @@ -1636,31 +1654,27 @@ public class TestMetastoreService extends LensJerseyTest { return f; } - @Test - public void testCreateFactTable() throws Exception { + @Test(dataProvider = "mediaTypeData") + public void testCreateFactTable(MediaType mediaType) throws Exception { final String table = "testCreateFactTable"; - final String DB = dbPFX + "testCreateFactTable_DB"; - String prevDb = getCurrentDatabase(); - createDatabase(DB); - setCurrentDatabase(DB); - createStorage("S1"); - createStorage("S2"); + final String DB = dbPFX + "testCreateFactTable_DB" + mediaType.getSubtype(); + String prevDb = getCurrentDatabase(mediaType); + createDatabase(DB, mediaType); + setCurrentDatabase(DB, mediaType); + createStorage("S1", mediaType); + createStorage("S2", mediaType); try { XFactTable f = createFactTable(table); f.getStorageTables().getStorageTable().add(createStorageTblElement("S1", table, "HOURLY")); f.getStorageTables().getStorageTable().add(createStorageTblElement("S2", table, "DAILY")); - final FormDataMultiPart mp = new FormDataMultiPart(); - mp.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("sessionid").build(), - lensSessionId, medType)); - mp.bodyPart(new FormDataBodyPart( - FormDataContentDisposition.name("fact").fileName("fact").build(), - cubeObjectFactory.createXFactTable(f), medType)); APIResult result = target() .path("metastore") - .path("facts") + .path("facts").queryParam("sessionid", lensSessionId) .request(mediaType) - .post(Entity.entity(mp, MediaType.MULTIPART_FORM_DATA_TYPE), APIResult.class); + .post(Entity.entity( + new GenericEntity<JAXBElement<XFactTable>>(cubeObjectFactory.createXFactTable(f)){}, mediaType), + APIResult.class); assertSuccess(result); // Get all fact names, this should contain the fact table @@ -1712,37 +1726,33 @@ public class TestMetastoreService extends LensJerseyTest { // PASS } } finally { - setCurrentDatabase(prevDb); - dropDatabase(DB); + setCurrentDatabase(prevDb, mediaType); + dropDatabase(DB, mediaType); } } - @Test - public void testUpdateFactTable() throws Exception { + @Test(dataProvider = "mediaTypeData") + public void testUpdateFactTable(MediaType mediaType) throws Exception { final String table = "testUpdateFactTable"; - final String DB = dbPFX + "testUpdateFactTable_DB"; - String prevDb = getCurrentDatabase(); - createDatabase(DB); - setCurrentDatabase(DB); - createStorage("S1"); - createStorage("S2"); - createStorage("S3"); + final String DB = dbPFX + "testUpdateFactTable_DB" + mediaType.getSubtype(); + String prevDb = getCurrentDatabase(mediaType); + createDatabase(DB, mediaType); + setCurrentDatabase(DB, mediaType); + createStorage("S1", mediaType); + createStorage("S2", mediaType); + createStorage("S3", mediaType); try { XFactTable f = createFactTable(table); f.getStorageTables().getStorageTable().add(createStorageTblElement("S1", table, "HOURLY")); f.getStorageTables().getStorageTable().add(createStorageTblElement("S2", table, "DAILY")); - final FormDataMultiPart mp = new FormDataMultiPart(); - mp.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("sessionid").build(), - lensSessionId, medType)); - mp.bodyPart(new FormDataBodyPart( - FormDataContentDisposition.name("fact").fileName("fact").build(), - cubeObjectFactory.createXFactTable(f), medType)); APIResult result = target() .path("metastore") - .path("facts") + .path("facts").queryParam("sessionid", lensSessionId) .request(mediaType) - .post(Entity.entity(mp, MediaType.MULTIPART_FORM_DATA_TYPE), APIResult.class); + .post(Entity.entity( + new GenericEntity<JAXBElement<XFactTable>>(cubeObjectFactory.createXFactTable(f)){}, mediaType), + APIResult.class); assertSuccess(result); // Get the created table @@ -1768,7 +1778,9 @@ public class TestMetastoreService extends LensJerseyTest { // Update result = target().path("metastore").path("facts").path(table) .queryParam("sessionid", lensSessionId).request(mediaType) - .put(Entity.xml(cubeObjectFactory.createXFactTable(update)), APIResult.class); + .put(Entity.entity(new GenericEntity<JAXBElement<XFactTable>>(cubeObjectFactory.createXFactTable(update)){}, + mediaType), + APIResult.class); assertSuccess(result); // Get the updated table @@ -1801,7 +1813,7 @@ public class TestMetastoreService extends LensJerseyTest { // get native table and validate altered property XNativeTable alteredNativeTable = nativeTarget.path("s1_" + table).queryParam("sessionid", lensSessionId) - .request(mediaType).get(XNativeTable.class); + .request(mediaType).get(new GenericType<JAXBElement<XNativeTable>>() {}).getValue(); assertEquals(alteredNativeTable.getStorageDescriptor().getFieldDelimiter(), "#"); // Finally, drop the fact table @@ -1823,37 +1835,33 @@ public class TestMetastoreService extends LensJerseyTest { // PASS } } finally { - setCurrentDatabase(prevDb); - dropDatabase(DB); + setCurrentDatabase(prevDb, mediaType); + dropDatabase(DB, mediaType); } } - @Test - public void testFactStorages() throws Exception { + @Test(dataProvider = "mediaTypeData") + public void testFactStorages(MediaType mediaType) throws Exception { final String table = "testFactStorages"; - final String DB = dbPFX + "testFactStorages_DB"; - String prevDb = getCurrentDatabase(); - createDatabase(DB); - setCurrentDatabase(DB); - createStorage("S1"); - createStorage("S2"); - createStorage("S3"); + final String DB = dbPFX + "testFactStorages_DB" + mediaType.getSubtype(); + String prevDb = getCurrentDatabase(mediaType); + createDatabase(DB, mediaType); + setCurrentDatabase(DB, mediaType); + createStorage("S1", mediaType); + createStorage("S2", mediaType); + createStorage("S3", mediaType); try { XFactTable f = createFactTable(table); f.getStorageTables().getStorageTable().add(createStorageTblElement("S1", table, "HOURLY")); f.getStorageTables().getStorageTable().add(createStorageTblElement("S2", table, "DAILY")); - final FormDataMultiPart mp = new FormDataMultiPart(); - mp.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("sessionid").build(), - lensSessionId, medType)); - mp.bodyPart(new FormDataBodyPart( - FormDataContentDisposition.name("fact").fileName("fact").build(), - cubeObjectFactory.createXFactTable(f), medType)); APIResult result = target() .path("metastore") - .path("facts") + .path("facts").queryParam("sessionid", lensSessionId) .request(mediaType) - .post(Entity.entity(mp, MediaType.MULTIPART_FORM_DATA_TYPE), APIResult.class); + .post(Entity.entity( + new GenericEntity<JAXBElement<XFactTable>>(cubeObjectFactory.createXFactTable(f)){}, mediaType), + APIResult.class); assertSuccess(result); // Test get storages @@ -1866,7 +1874,8 @@ public class TestMetastoreService extends LensJerseyTest { XStorageTableElement sTbl = createStorageTblElement("S3", table, "HOURLY", "DAILY", "MONTHLY"); result = target().path("metastore/facts").path(table).path("storages") .queryParam("sessionid", lensSessionId).request(mediaType) - .post(Entity.xml(cubeObjectFactory.createXStorageTableElement(sTbl)), APIResult.class); + .post(Entity.entity(new GenericEntity<JAXBElement<XStorageTableElement>>(cubeObjectFactory + .createXStorageTableElement(sTbl)){}, mediaType), APIResult.class); assertSuccess(result); // Get the fact storage @@ -1881,7 +1890,8 @@ public class TestMetastoreService extends LensJerseyTest { JAXBElement<XFactTable> gotFactElement = target().path("metastore/facts").path(table) .queryParam("sessionid", lensSessionId).request(mediaType) - .get(new GenericType<JAXBElement<XFactTable>>() {}); + .get(new GenericType<JAXBElement<XFactTable>>() { + }); XFactTable gotFact = gotFactElement.getValue(); CubeFactTable ucf = JAXBUtils.cubeFactFromFactTable(gotFact); @@ -1900,8 +1910,8 @@ public class TestMetastoreService extends LensJerseyTest { assertEquals(storageList.getElements().size(), 2); assertFalse(storageList.getElements().contains("S3")); } finally { - setCurrentDatabase(prevDb); - dropDatabase(DB); + setCurrentDatabase(prevDb, mediaType); + dropDatabase(DB, mediaType); } } @@ -1937,28 +1947,29 @@ public class TestMetastoreService extends LensJerseyTest { return xp; } - @Test - public void testLatestDateWithInputTimeDimAbsentFromAtleastOneFactPartition() throws Exception { + @Test(dataProvider = "mediaTypeData") + public void testLatestDateWithInputTimeDimAbsentFromAtleastOneFactPartition(MediaType mediaType) throws Exception { final String dbName = dbPFX + getUniqueDbName(); - String prevDb = getCurrentDatabase(); + String prevDb = getCurrentDatabase(mediaType); try { // Begin: Setup - createDatabase(dbName); - setCurrentDatabase(dbName); + createDatabase(dbName, mediaType); + setCurrentDatabase(dbName, mediaType); String[] storages = {"S1"}; for (String storage : storages) { - createStorage(storage); + createStorage(storage, mediaType); } // Create a cube with name testCube final String cubeName = "testCube"; final XCube cube = createTestCube(cubeName); APIResult result = target().path("metastore").path("cubes").queryParam("sessionid", lensSessionId) - .request(mediaType).post(Entity.xml(cubeObjectFactory.createXCube(cube)), APIResult.class); + .request(mediaType).post(Entity.entity(new GenericEntity<JAXBElement<XCube>>( + cubeObjectFactory.createXCube(cube)){}, mediaType), APIResult.class); assertSuccess(result); // Create two facts and fact storage tables with one of the facts @@ -1975,8 +1986,8 @@ public class TestMetastoreService extends LensJerseyTest { String fact2TableName = "fact2"; String[] fact2TimePartColNames = {timeDimensionPresentInPartitionOfAllFacts}; - createTestFactAndStorageTable(cubeName, storages, fact1TableName, fact1TimePartColNames); - createTestFactAndStorageTable(cubeName, storages, fact2TableName, fact2TimePartColNames); + createTestFactAndStorageTable(cubeName, storages, fact1TableName, fact1TimePartColNames, mediaType); + createTestFactAndStorageTable(cubeName, storages, fact2TableName, fact2TimePartColNames, mediaType); // Add partition to fact storage table of the fact whose partition has all time dimension @@ -1998,7 +2009,9 @@ public class TestMetastoreService extends LensJerseyTest { APIResult partAddResult = target().path("metastore/facts/").path(fact1TableName) .path("storages/" + storages[0] + "/partition") .queryParam("sessionid", lensSessionId).request(mediaType) - .post(Entity.xml(cubeObjectFactory.createXPartition(xp)), APIResult.class); + .post(Entity.entity(new GenericEntity<JAXBElement<XPartition>>(cubeObjectFactory.createXPartition(xp)){}, + mediaType), + APIResult.class); assertSuccess(partAddResult); // End: Setup @@ -2016,44 +2029,42 @@ public class TestMetastoreService extends LensJerseyTest { } finally { // Cleanup - setCurrentDatabase(prevDb); - dropDatabase(dbName); + setCurrentDatabase(prevDb, mediaType); + dropDatabase(dbName, mediaType); } } @SuppressWarnings("deprecation") - @Test - public void testFactStoragePartitions() throws Exception { + @Test(dataProvider = "mediaTypeData") + public void testFactStoragePartitions(MediaType mediaType) throws Exception { final String table = "testFactStoragePartitions"; - final String DB = dbPFX + "testFactStoragePartitions_DB"; - String prevDb = getCurrentDatabase(); - createDatabase(DB); - setCurrentDatabase(DB); - createStorage("S1"); - createStorage("S2"); + final String DB = dbPFX + "testFactStoragePartitions_DB" + mediaType.getSubtype(); + String prevDb = getCurrentDatabase(mediaType); + createDatabase(DB, mediaType); + setCurrentDatabase(DB, mediaType); + createStorage("S1", mediaType); + createStorage("S2", mediaType); try { final XCube cube = createTestCube("testCube"); target().path("metastore").path("cubes").queryParam("sessionid", lensSessionId).request(mediaType) - .post(Entity.xml(cubeObjectFactory.createXCube(cube)), APIResult.class); + .post(Entity.entity(new GenericEntity<JAXBElement<XCube>>(cubeObjectFactory.createXCube(cube)) { + }, mediaType), + APIResult.class); XFactTable f = createFactTable(table); f.getStorageTables().getStorageTable().add(createStorageTblElement("S1", table, "HOURLY")); f.getStorageTables().getStorageTable().add(createStorageTblElement("S2", table, "DAILY")); f.getStorageTables().getStorageTable().add(createStorageTblElement("S2", table, "HOURLY")); - final FormDataMultiPart mp = new FormDataMultiPart(); - mp.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("sessionid").build(), - lensSessionId, medType)); - mp.bodyPart(new FormDataBodyPart( - FormDataContentDisposition.name("fact").fileName("fact").build(), - cubeObjectFactory.createXFactTable(f), medType)); APIResult result = target() .path("metastore") - .path("facts") + .path("facts").queryParam("sessionid", lensSessionId) .request(mediaType) - .post(Entity.entity(mp, MediaType.MULTIPART_FORM_DATA_TYPE), APIResult.class); + .post(Entity.entity( + new GenericEntity<JAXBElement<XFactTable>>(cubeObjectFactory.createXFactTable(f)){}, mediaType), + APIResult.class); assertSuccess(result); APIResult partAddResult; @@ -2070,7 +2081,8 @@ public class TestMetastoreService extends LensJerseyTest { .add(createTimePartSpecElement(partDate, "non_existant_time_part")); partAddResult = target().path("metastore/facts/").path(table).path("storages/S2/partition") .queryParam("sessionid", lensSessionId).request(mediaType) - .post(Entity.xml(cubeObjectFactory.createXPartition(xp2)), APIResult.class); + .post(Entity.entity(new GenericEntity<JAXBElement<XPartition>>(cubeObjectFactory.createXPartition(xp2)){}, + mediaType), APIResult.class); assertEquals(partAddResult.getStatus(), Status.FAILED); assertEquals(partAddResult.getMessage(), "No timeline found for fact=testFactStoragePartitions, storage=S2, " + "update period=HOURLY, partition column=non_existant_time_part."); @@ -2078,25 +2090,29 @@ public class TestMetastoreService extends LensJerseyTest { XPartition xp = createPartition(table, partDate); partAddResult = target().path("metastore/facts/").path(table).path("storages/S2/partition") .queryParam("sessionid", lensSessionId).request(mediaType) - .post(Entity.xml(cubeObjectFactory.createXPartition(xp)), APIResult.class); + .post(Entity.entity(new GenericEntity<JAXBElement<XPartition>>(cubeObjectFactory.createXPartition(xp)){}, + mediaType), APIResult.class); assertSuccess(partAddResult); // add same should fail partAddResult = target().path("metastore/facts/").path(table).path("storages/S2/partition") .queryParam("sessionid", lensSessionId).request(mediaType) - .post(Entity.xml(cubeObjectFactory.createXPartition(xp)), APIResult.class); + .post(Entity.entity(new GenericEntity<JAXBElement<XPartition>>(cubeObjectFactory.createXPartition(xp)){}, + mediaType), APIResult.class); assertEquals(partAddResult.getStatus(), Status.FAILED); xp.setLocation(xp.getLocation() + "/a/b/c"); APIResult partUpdateResult = target().path("metastore/facts/").path(table).path("storages/S2/partition") .queryParam("sessionid", lensSessionId).request(mediaType) - .put(Entity.xml(cubeObjectFactory.createXPartition(xp)), APIResult.class); + .put(Entity.entity(new GenericEntity<JAXBElement<XPartition>>(cubeObjectFactory.createXPartition(xp)){}, + mediaType), APIResult.class); assertSuccess(partUpdateResult); JAXBElement<XPartitionList> partitionsElement = target().path("metastore/facts").path(table) .path("storages/S2/partitions") .queryParam("sessionid", lensSessionId).request(mediaType) - .get(new GenericType<JAXBElement<XPartitionList>>() {}); + .get(new GenericType<JAXBElement<XPartitionList>>() { + }); XPartitionList partitions = partitionsElement.getValue(); assertNotNull(partitions); @@ -2125,7 +2141,8 @@ public class TestMetastoreService extends LensJerseyTest { parts.getPartition().add(createPartition(table, DateUtils.addHours(partDate, 1))); partAddResult = target().path("metastore/facts/").path(table).path("storages/S2/partitions") .queryParam("sessionid", lensSessionId).request(mediaType) - .post(Entity.xml(cubeObjectFactory.createXPartitionList(parts)), APIResult.class); + .post(Entity.entity(new GenericEntity<JAXBElement<XPartitionList>>( + cubeObjectFactory.createXPartitionList(parts)){}, mediaType), APIResult.class); assertEquals(partAddResult.getStatus(), Status.PARTIAL); // Drop the partitions @@ -2138,7 +2155,8 @@ public class TestMetastoreService extends LensJerseyTest { // Verify partition was dropped partitionsElement = target().path("metastore/facts").path(table).path("storages/S2/partitions") .queryParam("sessionid", lensSessionId).request(mediaType) - .get(new GenericType<JAXBElement<XPartitionList>>() {}); + .get(new GenericType<JAXBElement<XPartitionList>>() { + }); partitions = partitionsElement.getValue(); assertNotNull(partitions); @@ -2152,20 +2170,29 @@ public class TestMetastoreService extends LensJerseyTest { // Try adding in batch, but to a wrong endpoint resp = target().path("metastore/facts/").path(table).path("storages/S2/partition") .queryParam("sessionid", lensSessionId).request(mediaType) - .post(Entity.xml(cubeObjectFactory.createXPartitionList(toXPartitionList(xp)))); - assertXMLError(resp); + .post(Entity.entity(new GenericEntity<JAXBElement<XPartitionList>>(cubeObjectFactory + .createXPartitionList(toXPartitionList(xp))) { + }, mediaType)); + assertXMLError(resp, mediaType); // Try adding in batch, but provide just an XPartition resp = target().path("metastore/facts/").path(table).path("storages/S2/partitions") .queryParam("sessionid", lensSessionId).request(mediaType) - .post(Entity.xml(cubeObjectFactory.createXPartition(xp))); - assertXMLError(resp); + .post(Entity.entity(new GenericEntity<JAXBElement<XPartition>>(cubeObjectFactory.createXPartition(xp)){}, + mediaType)); + if (mediaType.equals(MediaType.APPLICATION_XML_TYPE)) { + assertXMLError(resp, mediaType); + } else { + // for json input, XPartitionList is getting created + assertEquals(resp.getStatus(), 200); + } // Try adding in batch with one partition being wrong wrt partition column. partAddResult = target().path("metastore/facts/").path(table).path("storages/S2/partitions") .queryParam("sessionid", lensSessionId).request(mediaType) - .post(Entity.xml(cubeObjectFactory.createXPartitionList(toXPartitionList(xp2))), + .post(Entity.entity(new GenericEntity<JAXBElement<XPartitionList>>(cubeObjectFactory + .createXPartitionList(toXPartitionList(xp2))){}, mediaType), APIResult.class); assertEquals(partAddResult.getStatus(), Status.FAILED); assertEquals(partAddResult.getMessage(), "No timeline found for fact=testFactStoragePartitions, storage=S2, " @@ -2173,7 +2200,9 @@ public class TestMetastoreService extends LensJerseyTest { // Add in batch partAddResult = target().path("metastore/facts/").path(table).path("storages/S2/partitions") .queryParam("sessionid", lensSessionId).request(mediaType) - .post(Entity.xml(cubeObjectFactory.createXPartitionList(toXPartitionList(xp))), + .post(Entity.entity(new GenericEntity<JAXBElement<XPartitionList>>(cubeObjectFactory + .createXPartitionList(toXPartitionList(xp))) { + }, mediaType), APIResult.class); assertSuccess(partAddResult); @@ -2203,24 +2232,24 @@ public class TestMetastoreService extends LensJerseyTest { assertNotNull(partitions); assertEquals(partitions.getPartition().size(), 0); } finally { - setCurrentDatabase(prevDb); - dropDatabase(DB); + setCurrentDatabase(prevDb, mediaType); + dropDatabase(DB, mediaType); } } - @Test - public void testDimStoragePartitions() throws Exception { + @Test(dataProvider = "mediaTypeData") + public void testDimStoragePartitions(MediaType mediaType) throws Exception { final String table = "testDimStoragePartitions"; - final String DB = dbPFX + "testDimStoragePartitions_DB"; - String prevDb = getCurrentDatabase(); - createDatabase(DB); - setCurrentDatabase(DB); - createStorage("S1"); - createStorage("S2"); - createStorage("test"); + final String DB = dbPFX + "testDimStoragePartitions_DB" + mediaType.getSubtype(); + String prevDb = getCurrentDatabase(mediaType); + createDatabase(DB, mediaType); + setCurrentDatabase(DB, mediaType); + createStorage("S1", mediaType); + createStorage("S2", mediaType); + createStorage("test", mediaType); try { - createDimTable(table); + createDimTable(table, mediaType); APIResult partAddResult; // Add null partition Response resp = target().path("metastore/dimtables/").path(table).path("storages/test/partition") @@ -2233,20 +2262,23 @@ public class TestMetastoreService extends LensJerseyTest { XPartition xp = createPartition(table, partDate); partAddResult = target().path("metastore/dimtables/").path(table).path("storages/test/partition") .queryParam("sessionid", lensSessionId).request(mediaType) - .post(Entity.xml(cubeObjectFactory.createXPartition(xp)), APIResult.class); + .post(Entity.entity(new GenericEntity<JAXBElement<XPartition>>(cubeObjectFactory.createXPartition(xp)){}, + mediaType), APIResult.class); assertSuccess(partAddResult); // create call for same partAddResult = target().path("metastore/dimtables/").path(table).path("storages/test/partition") .queryParam("sessionid", lensSessionId).request(mediaType) - .post(Entity.xml(cubeObjectFactory.createXPartition(xp)), APIResult.class); + .post(Entity.entity(new GenericEntity<JAXBElement<XPartition>>(cubeObjectFactory.createXPartition(xp)){}, + mediaType), APIResult.class); assertEquals(partAddResult.getStatus(), Status.FAILED); xp.setLocation(xp.getLocation() + "/a/b/c"); APIResult partUpdateResult = target().path("metastore/dimtables/").path(table).path("storages/test/partition") .queryParam("sessionid", lensSessionId).request(mediaType) - .put(Entity.xml(cubeObjectFactory.createXPartition(xp)), APIResult.class); + .put(Entity.entity(new GenericEntity<JAXBElement<XPartition>>(cubeObjectFactory.createXPartition(xp)){}, + mediaType), APIResult.class); assertSuccess(partUpdateResult); JAXBElement<XPartitionList> partitionsElement = target().path("metastore/dimtables").path(table) @@ -2295,7 +2327,8 @@ public class TestMetastoreService extends LensJerseyTest { parts.getPartition().add(xp2); partAddResult = target().path("metastore/dimtables/").path(table).path("storages/test/partitions") .queryParam("sessionid", lensSessionId).request(mediaType) - .post(Entity.xml(cubeObjectFactory.createXPartitionList(parts)), APIResult.class); + .post(Entity.entity(new GenericEntity<JAXBElement<XPartitionList>>( + cubeObjectFactory.createXPartitionList(parts)){}, mediaType), APIResult.class); assertEquals(partAddResult.getStatus(), Status.PARTIAL); // Drop the partitions @@ -2323,19 +2356,29 @@ public class TestMetastoreService extends LensJerseyTest { // Try adding in batch, but to a wrong endpoint resp = target().path("metastore/dimtables/").path(table).path("storages/test/partition") .queryParam("sessionid", lensSessionId).request(mediaType) - .post(Entity.xml(cubeObjectFactory.createXPartitionList(toXPartitionList(xp)))); - assertXMLError(resp); + .post(Entity.entity( + new GenericEntity<JAXBElement<XPartitionList>>(cubeObjectFactory.createXPartitionList(toXPartitionList(xp))) + {}, mediaType)); + assertXMLError(resp, mediaType); // Try adding in batch, but provide just an XPartition resp = target().path("metastore/dimtables/").path(table).path("storages/test/partitions") .queryParam("sessionid", lensSessionId).request(mediaType) - .post(Entity.xml(cubeObjectFactory.createXPartition(xp))); - assertXMLError(resp); - + .post(Entity.entity(new GenericEntity<JAXBElement<XPartition>>(cubeObjectFactory.createXPartition(xp)){}, + mediaType)); + if (mediaType.equals(MediaType.APPLICATION_XML_TYPE)) { + assertXMLError(resp, mediaType); + } else { + // for json input, XPartitionList is getting created + assertEquals(resp.getStatus(), 200); + } // Add in batch partAddResult = target().path("metastore/dimtables/").path(table).path("storages/test/partitions") .queryParam("sessionid", lensSessionId).request(mediaType) - .post(Entity.xml(cubeObjectFactory.createXPartitionList(toXPartitionList(xp))), + .post(Entity.entity( + new GenericEntity<JAXBElement<XPartitionList>>(cubeObjectFactory.createXPartitionList(toXPartitionList(xp))) + {}, + mediaType), APIResult.class); assertSuccess(partAddResult); @@ -2367,7 +2410,8 @@ public class TestMetastoreService extends LensJerseyTest { // add again, this time we'll drop by filter partAddResult = target().path("metastore/dimtables/").path(table).path("storages/test/partitions") .queryParam("sessionid", lensSessionId).request(mediaType) - .post(Entity.xml(cubeObjectFactory.createXPartitionList(toXPartitionList(xp))), + .post(Entity.entity(new GenericEntity<JAXBElement<XPartitionList>>( + cubeObjectFactory.createXPartitionList(toXPartitionList(xp))){}, mediaType), APIResult.class); assertSuccess(partAddResult); @@ -2386,17 +2430,19 @@ public class TestMetastoreService extends LensJerseyTest { assertNotNull(partitions); assertEquals(partitions.getPartition().size(), 0); } finally { - setCurrentDatabase(prevDb); - dropDatabase(DB); + setCurrentDatabase(prevDb, mediaType); + dropDatabase(DB, mediaType); } } - private void assertXMLError(Response resp) { + private void assertXMLError(Response resp, MediaType mt) { assertEquals(resp.getStatus(), 400); - LensAPIResult entity = resp.readEntity(LensAPIResult.class); - assertTrue(entity.isErrorResult()); - assertEquals(entity.getLensErrorTO().getCode(), LensCommonErrorCode.INVALID_XML_ERROR.getValue()); - assertTrue(entity.getLensErrorTO().getMessage().contains("unexpected element")); + if (mt.equals(MediaType.APPLICATION_XML_TYPE)) { + LensAPIResult entity = resp.readEntity(LensAPIResult.class); + assertTrue(entity.isErrorResult()); + assertEquals(entity.getLensErrorTO().getCode(), LensCommonErrorCode.INVALID_XML_ERROR.getValue()); + assertTrue(entity.getLensErrorTO().getMessage().contains("unexpected element")); + } } private XPartitionList toXPartitionList(final XPartition... xps) { @@ -2405,12 +2451,12 @@ public class TestMetastoreService extends LensJerseyTest { return ret; } - @Test - public void testNativeTables() throws Exception { - final String DB = dbPFX + "test_native_tables"; - String prevDb = getCurrentDatabase(); - createDatabase(DB); - setCurrentDatabase(DB); + @Test(dataProvider = "mediaTypeData") + public void testNativeTables(MediaType mediaType) throws Exception { + final String DB = dbPFX + "test_native_tables" + mediaType.getSubtype(); + String prevDb = getCurrentDatabase(mediaType); + createDatabase(DB, mediaType); + setCurrentDatabase(DB, mediaType); try { // create hive table @@ -2498,7 +2544,8 @@ public class TestMetastoreService extends LensJerseyTest { JAXBElement<XCube> element = cubeObjectFactory.createXCube(cube); APIResult result = target().path("metastore").path("cubes").queryParam("sessionid", - lensSessionId).request(mediaType).post(Entity.xml(element), APIResult.class); + lensSessionId).request(mediaType).post(Entity.entity(new GenericEntity<JAXBElement<XCube>>(element){}, + mediaType), APIResult.class); assertSuccess(result); // get a cube table @@ -2521,8 +2568,8 @@ public class TestMetastoreService extends LensJerseyTest { .queryParam("dbName", "nonexisting").request(mediaType).get(Response.class); assertEquals(response.getStatus(), Response.Status.NOT_FOUND.getStatusCode()); } finally { - dropDatabase(DB); - setCurrentDatabase(prevDb); + dropDatabase(DB, mediaType); + setCurrentDatabase(prevDb, mediaType); } } @@ -2543,12 +2590,12 @@ public class TestMetastoreService extends LensJerseyTest { } } - @Test - public void testFlattenedView() throws Exception { - final String DB = dbPFX + "test_flattened_view"; - String prevDb = getCurrentDatabase(); - createDatabase(DB); - setCurrentDatabase(DB); + @Test(dataProvider = "mediaTypeData") + public void testFlattenedView(MediaType mediaType) throws Exception { + final String DB = dbPFX + "test_flattened_view" + mediaType.getSubtype(); + String prevDb = getCurrentDatabase(mediaType); + createDatabase(DB, mediaType); + setCurrentDatabase(DB, mediaType); try { // Create the tables @@ -2557,12 +2604,13 @@ public class TestMetastoreService extends LensJerseyTest { final WebTarget cubeTarget = target().path("metastore").path("cubes"); APIResult result = cubeTarget.queryParam("sessionid", lensSessionId).request(mediaType) - .post(Entity.xml(cubeObjectFactory.createXCube(flatTestCube)), APIResult.class); + .post(Entity.entity(new GenericEntity<JAXBElement<XCube>>(cubeObjectFactory.createXCube(flatTestCube)){}, + mediaType), APIResult.class); assertNotNull(result); assertSuccess(result); // create chained dimensions - testdim and testdim2 - createdChainedDimensions(); + createdChainedDimensions(mediaType); // Now test flattened view final WebTarget flatCubeTarget = target().path("metastore").path("flattened").path("flattestcube"); @@ -2630,13 +2678,13 @@ public class TestMetastoreService extends LensJerseyTest { )); } finally { - dropDatabase(DB); - setCurrentDatabase(prevDb); + dropDatabase(DB, mediaType); + setCurrentDatabase(prevDb, mediaType); } } private void createTestFactAndStorageTable(final String cubeName, final String[] storages, final String tableName, - final String[] timePartColNames) { + final String[] timePartColNames, MediaType mediaType) { // Create a fact table object linked to cubeName XFactTable f = createFactTable(tableName, cubeName); @@ -2647,17 +2695,14 @@ public class TestMetastoreService extends LensJerseyTest { } // Call API to create a fact table and storage table - final FormDataMultiPart mp = new FormDataMultiPart(); - mp.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("sessionid").build(), - lensSessionId, medType)); - mp.bodyPart(new FormDataBodyPart( - FormDataContentDisposition.name("fact").fileName("fact").build(), - cubeObjectFactory.createXFactTable(f), medType)); APIResult result = target() .path("metastore") - .path("facts") + .path("facts").queryParam("sessionid", lensSessionId) .request(mediaType) - .post(Entity.entity(mp, MediaType.MULTIPART_FORM_DATA_TYPE), APIResult.class); + .post(Entity.entity( + new GenericEntity<JAXBElement<XFactTable>>(cubeObjectFactory.createXFactTable(f)) { + }, mediaType), + APIResult.class); assertSuccess(result); }
http://git-wip-us.apache.org/repos/asf/lens/blob/d559ef2e/lens-server/src/test/java/org/apache/lens/server/metastore/TestMetastoreServiceJSON.java ---------------------------------------------------------------------- diff --git a/lens-server/src/test/java/org/apache/lens/server/metastore/TestMetastoreServiceJSON.java b/lens-server/src/test/java/org/apache/lens/server/metastore/TestMetastoreServiceJSON.java deleted file mode 100644 index 85580da..0000000 --- a/lens-server/src/test/java/org/apache/lens/server/metastore/TestMetastoreServiceJSON.java +++ /dev/null @@ -1,28 +0,0 @@ -/** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.lens.server.metastore; - - -public class TestMetastoreServiceJSON { //extends TestMetastoreService { - /*public TestMetastoreServiceJSON() { - super(); - mediaType = MediaType.APPLICATION_JSON; - dbPFX = "TestMetastoreServiceJSON_"; - }*/ -} http://git-wip-us.apache.org/repos/asf/lens/blob/d559ef2e/lens-server/src/test/java/org/apache/lens/server/metrics/TestResourceMethodMetrics.java ---------------------------------------------------------------------- diff --git a/lens-server/src/test/java/org/apache/lens/server/metrics/TestResourceMethodMetrics.java b/lens-server/src/test/java/org/apache/lens/server/metrics/TestResourceMethodMetrics.java index 515ac13..c20ddf8 100644 --- a/lens-server/src/test/java/org/apache/lens/server/metrics/TestResourceMethodMetrics.java +++ b/lens-server/src/test/java/org/apache/lens/server/metrics/TestResourceMethodMetrics.java @@ -50,11 +50,10 @@ import org.apache.lens.server.common.TestResourceFile; import org.apache.lens.server.metastore.CubeMetastoreServiceImpl; import org.apache.lens.server.query.TestQueryService; -import org.glassfish.jersey.client.ClientConfig; import org.glassfish.jersey.media.multipart.FormDataBodyPart; import org.glassfish.jersey.media.multipart.FormDataContentDisposition; import org.glassfish.jersey.media.multipart.FormDataMultiPart; -import org.glassfish.jersey.media.multipart.MultiPartFeature; +import org.glassfish.jersey.test.TestProperties; import org.testng.Assert; import org.testng.annotations.AfterTest; import org.testng.annotations.BeforeTest; @@ -87,16 +86,16 @@ public class TestResourceMethodMetrics extends LensAllApplicationJerseyTest { } private void createTable(String tblName) throws InterruptedException { - LensServerTestUtil.createTable(tblName, target(), lensSessionId); + LensServerTestUtil.createTable(tblName, target(), lensSessionId, defaultMT); } private void loadData(String tblName, final String testDataFile) throws InterruptedException { - LensServerTestUtil.loadDataFromClasspath(tblName, testDataFile, target(), lensSessionId); + LensServerTestUtil.loadDataFromClasspath(tblName, testDataFile, target(), lensSessionId, defaultMT); } @AfterTest public void tearDown() throws Exception { - LensServerTestUtil.dropTable(TestQueryService.TEST_TABLE, target(), lensSessionId); + LensServerTestUtil.dropTable(TestQueryService.TEST_TABLE, target(), lensSessionId, defaultMT); metastoreService.closeSession(lensSessionId); super.tearDown(); } @@ -110,14 +109,11 @@ public class TestResourceMethodMetrics extends LensAllApplicationJerseyTest { @Override protected Application configure() { + enable(TestProperties.LOG_TRAFFIC); + enable(TestProperties.DUMP_ENTITY); return new LensApplication(); } - @Override - protected void configureClient(ClientConfig config) { - config.register(MultiPartFeature.class); - } - @Test public void test() throws Exception { boolean enabled = metricsSvc.isEnableResourceMethodMetering(); @@ -241,7 +237,7 @@ public class TestResourceMethodMetrics extends LensAllApplicationJerseyTest { mp.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("operation").build(), "execute")); mp.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("conf").fileName("conf").build(), new LensConf(), MediaType.APPLICATION_XML_TYPE)); - final QueryHandle handle = target.request().post(Entity.entity(mp, MediaType.MULTIPART_FORM_DATA_TYPE), + final QueryHandle handle = target.request(mediaType).post(Entity.entity(mp, MediaType.MULTIPART_FORM_DATA_TYPE), new GenericType<LensAPIResult<QueryHandle>>() {}).getData(); Assert.assertNotNull(handle);