mirror of
https://github.com/open-metadata/OpenMetadata.git
synced 2025-08-11 02:26:49 +00:00
Merge pull request #791 from open-metadata/issue789
Fix #789 Make assertResponse shorter in Chart and Dashboard tests
This commit is contained in:
commit
acbe944997
@ -31,11 +31,10 @@ import org.openmetadata.catalog.entity.services.DashboardService;
|
||||
import org.openmetadata.catalog.entity.teams.Team;
|
||||
import org.openmetadata.catalog.entity.teams.User;
|
||||
import org.openmetadata.catalog.exception.CatalogExceptionMessage;
|
||||
import org.openmetadata.catalog.resources.charts.ChartResource.ChartList;
|
||||
import org.openmetadata.catalog.resources.services.DashboardServiceResourceTest;
|
||||
import org.openmetadata.catalog.resources.tags.TagResourceTest;
|
||||
import org.openmetadata.catalog.resources.teams.TeamResourceTest;
|
||||
import org.openmetadata.catalog.resources.teams.UserResourceTest;
|
||||
import org.openmetadata.catalog.resources.charts.ChartResource.ChartList;
|
||||
import org.openmetadata.catalog.type.ChartType;
|
||||
import org.openmetadata.catalog.type.EntityReference;
|
||||
import org.openmetadata.catalog.type.TagLabel;
|
||||
@ -51,13 +50,10 @@ import javax.ws.rs.client.WebTarget;
|
||||
import javax.ws.rs.core.Response.Status;
|
||||
import java.net.URI;
|
||||
import java.net.URISyntaxException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.UUID;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static java.util.Collections.singletonList;
|
||||
import static javax.ws.rs.core.Response.Status.BAD_REQUEST;
|
||||
import static javax.ws.rs.core.Response.Status.CONFLICT;
|
||||
import static javax.ws.rs.core.Response.Status.CREATED;
|
||||
@ -70,6 +66,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||
import static org.junit.jupiter.api.Assertions.assertNull;
|
||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
import static org.openmetadata.catalog.exception.CatalogExceptionMessage.ENTITY_ALREADY_EXISTS;
|
||||
import static org.openmetadata.catalog.exception.CatalogExceptionMessage.entityNotFound;
|
||||
import static org.openmetadata.catalog.exception.CatalogExceptionMessage.readOnlyAttribute;
|
||||
import static org.openmetadata.catalog.util.TestUtils.LONG_ENTITY_NAME;
|
||||
@ -116,18 +113,15 @@ public class ChartResourceTest extends CatalogApplicationTest {
|
||||
public void post_chartWithLongName_400_badRequest(TestInfo test) {
|
||||
// Create chart with mandatory name field empty
|
||||
CreateChart create = create(test).withName(LONG_ENTITY_NAME);
|
||||
HttpResponseException exception = assertThrows(HttpResponseException.class, () ->
|
||||
createChart(create, adminAuthHeaders()));
|
||||
assertResponse(exception, BAD_REQUEST, "[name size must be between 1 and 64]");
|
||||
assertResponse(() -> createChart(create, adminAuthHeaders()),
|
||||
BAD_REQUEST, "[name size must be between 1 and 64]");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void post_chartAlreadyExists_409_conflict(TestInfo test) throws HttpResponseException {
|
||||
CreateChart create = create(test);
|
||||
createChart(create, adminAuthHeaders());
|
||||
HttpResponseException exception = assertThrows(HttpResponseException.class, () ->
|
||||
createChart(create, adminAuthHeaders()));
|
||||
assertResponse(exception, CONFLICT, CatalogExceptionMessage.ENTITY_ALREADY_EXISTS);
|
||||
assertResponse(() -> createChart(create, adminAuthHeaders()), CONFLICT, ENTITY_ALREADY_EXISTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -153,26 +147,19 @@ public class ChartResourceTest extends CatalogApplicationTest {
|
||||
@Test
|
||||
public void post_chart_as_non_admin_401(TestInfo test) {
|
||||
CreateChart create = create(test);
|
||||
HttpResponseException exception = assertThrows(HttpResponseException.class, () ->
|
||||
createChart(create, authHeaders("test@open-metadata.org")));
|
||||
assertResponse(exception, FORBIDDEN, "Principal: CatalogPrincipal{name='test'} is not admin");
|
||||
assertResponse(() -> createChart(create, authHeaders("test@open-metadata.org")),
|
||||
FORBIDDEN, "Principal: CatalogPrincipal{name='test'} is not admin");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void post_chartWithoutRequiredFields_4xx(TestInfo test) {
|
||||
HttpResponseException exception = assertThrows(HttpResponseException.class, () ->
|
||||
createChart(create(test).withName(null), adminAuthHeaders()));
|
||||
assertResponse(exception, BAD_REQUEST, "[name must not be null]");
|
||||
|
||||
exception = assertThrows(HttpResponseException.class, () ->
|
||||
createChart(create(test).withName(LONG_ENTITY_NAME), adminAuthHeaders()));
|
||||
assertResponse(exception, BAD_REQUEST, "[name size must be between 1 and 64]");
|
||||
|
||||
assertResponse(() -> createChart(create(test).withName(null), adminAuthHeaders()), BAD_REQUEST,
|
||||
"[name must not be null]");
|
||||
assertResponse(() -> createChart(create(test).withName(LONG_ENTITY_NAME), adminAuthHeaders()), BAD_REQUEST,
|
||||
"[name size must be between 1 and 64]");
|
||||
// Service is required field
|
||||
exception = assertThrows(HttpResponseException.class, () ->
|
||||
createChart(create(test).withService(null), adminAuthHeaders()));
|
||||
assertResponse(exception, BAD_REQUEST, "[service must not be null]");
|
||||
|
||||
assertResponse(() -> createChart(create(test).withService(null), adminAuthHeaders()), BAD_REQUEST,
|
||||
"[service must not be null]");
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -189,9 +176,8 @@ public class ChartResourceTest extends CatalogApplicationTest {
|
||||
public void post_chartWithNonExistentOwner_4xx(TestInfo test) {
|
||||
EntityReference owner = new EntityReference().withId(NON_EXISTENT_ENTITY).withType("user");
|
||||
CreateChart create = create(test).withOwner(owner);
|
||||
HttpResponseException exception = assertThrows(HttpResponseException.class, () ->
|
||||
createChart(create, adminAuthHeaders()));
|
||||
assertResponse(exception, NOT_FOUND, entityNotFound("User", NON_EXISTENT_ENTITY));
|
||||
assertResponse(() -> createChart(create, adminAuthHeaders()), NOT_FOUND,
|
||||
entityNotFound("User", NON_EXISTENT_ENTITY));
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -213,25 +199,21 @@ public class ChartResourceTest extends CatalogApplicationTest {
|
||||
@Test
|
||||
public void get_chartListWithInvalidLimitOffset_4xx() {
|
||||
// Limit must be >= 1 and <= 1000,000
|
||||
HttpResponseException exception = assertThrows(HttpResponseException.class, ()
|
||||
-> listCharts(null, null, -1, null, null, adminAuthHeaders()));
|
||||
assertResponse(exception, BAD_REQUEST, "[query param limit must be greater than or equal to 1]");
|
||||
assertResponse(() -> listCharts(null, null, -1, null, null, adminAuthHeaders()),
|
||||
BAD_REQUEST, "[query param limit must be greater than or equal to 1]");
|
||||
|
||||
exception = assertThrows(HttpResponseException.class, ()
|
||||
-> listCharts(null, null, 0, null, null, adminAuthHeaders()));
|
||||
assertResponse(exception, BAD_REQUEST, "[query param limit must be greater than or equal to 1]");
|
||||
assertResponse(() ->listCharts(null, null, 0, null, null, adminAuthHeaders()),
|
||||
BAD_REQUEST, "[query param limit must be greater than or equal to 1]");
|
||||
|
||||
exception = assertThrows(HttpResponseException.class, ()
|
||||
-> listCharts(null, null, 1000001, null, null, adminAuthHeaders()));
|
||||
assertResponse(exception, BAD_REQUEST, "[query param limit must be less than or equal to 1000000]");
|
||||
assertResponse(() -> listCharts(null, null, 1000001, null, null, adminAuthHeaders()),
|
||||
BAD_REQUEST, "[query param limit must be less than or equal to 1000000]");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void get_chartListWithInvalidPaginationCursors_4xx() {
|
||||
// Passing both before and after cursors is invalid
|
||||
HttpResponseException exception = assertThrows(HttpResponseException.class, ()
|
||||
-> listCharts(null, null, 1, "", "", adminAuthHeaders()));
|
||||
assertResponse(exception, BAD_REQUEST, "Only one of before or after query parameter allowed");
|
||||
assertResponse(() -> listCharts(null, null, 1, "", "", adminAuthHeaders()),
|
||||
BAD_REQUEST, "Only one of before or after query parameter allowed");
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -374,9 +356,7 @@ public class ChartResourceTest extends CatalogApplicationTest {
|
||||
|
||||
@Test
|
||||
public void get_nonExistentChart_404_notFound() {
|
||||
HttpResponseException exception = assertThrows(HttpResponseException.class, () ->
|
||||
getChart(NON_EXISTENT_ENTITY, adminAuthHeaders()));
|
||||
assertResponse(exception, NOT_FOUND,
|
||||
assertResponse(() -> getChart(NON_EXISTENT_ENTITY, adminAuthHeaders()), NOT_FOUND,
|
||||
entityNotFound(Entity.CHART, NON_EXISTENT_ENTITY));
|
||||
}
|
||||
|
||||
@ -430,15 +410,13 @@ public class ChartResourceTest extends CatalogApplicationTest {
|
||||
UUID chartId = chart.getId();
|
||||
String chartJson = JsonUtils.pojoToJson(chart);
|
||||
chart.setId(UUID.randomUUID());
|
||||
HttpResponseException exception = assertThrows(HttpResponseException.class, () ->
|
||||
patchChart(chartId, chartJson, chart, adminAuthHeaders()));
|
||||
assertResponse(exception, BAD_REQUEST, readOnlyAttribute(Entity.CHART, "id"));
|
||||
assertResponse(() -> patchChart(chartId, chartJson, chart, adminAuthHeaders()),
|
||||
BAD_REQUEST, readOnlyAttribute(Entity.CHART, "id"));
|
||||
|
||||
// ID can't be deleted
|
||||
chart.setId(null);
|
||||
exception = assertThrows(HttpResponseException.class, () ->
|
||||
patchChart(chartId, chartJson, chart, adminAuthHeaders()));
|
||||
assertResponse(exception, BAD_REQUEST, readOnlyAttribute(Entity.CHART, "id"));
|
||||
assertResponse(() -> patchChart(chartId, chartJson, chart, adminAuthHeaders()), BAD_REQUEST,
|
||||
readOnlyAttribute(Entity.CHART, "id"));
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -447,15 +425,13 @@ public class ChartResourceTest extends CatalogApplicationTest {
|
||||
Chart chart = createChart(create(test), adminAuthHeaders());
|
||||
String chartJson = JsonUtils.pojoToJson(chart);
|
||||
chart.setName("newName");
|
||||
HttpResponseException exception = assertThrows(HttpResponseException.class, () ->
|
||||
patchChart(chartJson, chart, adminAuthHeaders()));
|
||||
assertResponse(exception, BAD_REQUEST, readOnlyAttribute(Entity.CHART, "name"));
|
||||
assertResponse(() -> patchChart(chartJson, chart, adminAuthHeaders()), BAD_REQUEST,
|
||||
readOnlyAttribute(Entity.CHART, "name"));
|
||||
|
||||
// Name can't be removed
|
||||
chart.setName(null);
|
||||
exception = assertThrows(HttpResponseException.class, () ->
|
||||
patchChart(chartJson, chart, adminAuthHeaders()));
|
||||
assertResponse(exception, BAD_REQUEST, readOnlyAttribute(Entity.CHART, "name"));
|
||||
assertResponse(() -> patchChart(chartJson, chart, adminAuthHeaders()), BAD_REQUEST,
|
||||
readOnlyAttribute(Entity.CHART, "name"));
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -466,15 +442,13 @@ public class ChartResourceTest extends CatalogApplicationTest {
|
||||
|
||||
String chartJson = JsonUtils.pojoToJson(chart);
|
||||
chart.setService(LOOKER_REFERENCE);
|
||||
HttpResponseException exception = assertThrows(HttpResponseException.class, () ->
|
||||
patchChart(chartJson, chart, adminAuthHeaders()));
|
||||
assertResponse(exception, BAD_REQUEST, readOnlyAttribute(Entity.CHART, "service"));
|
||||
assertResponse(() -> patchChart(chartJson, chart, adminAuthHeaders()), BAD_REQUEST,
|
||||
readOnlyAttribute(Entity.CHART, "service"));
|
||||
|
||||
// Service relationship can't be removed
|
||||
chart.setService(null);
|
||||
exception = assertThrows(HttpResponseException.class, () ->
|
||||
patchChart(chartJson, chart, adminAuthHeaders()));
|
||||
assertResponse(exception, BAD_REQUEST, readOnlyAttribute(Entity.CHART, "service"));
|
||||
assertResponse(() -> patchChart(chartJson, chart, adminAuthHeaders()), BAD_REQUEST,
|
||||
readOnlyAttribute(Entity.CHART, "service"));
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -513,22 +487,19 @@ public class ChartResourceTest extends CatalogApplicationTest {
|
||||
Chart chart = createAndCheckChart(create(test), adminAuthHeaders());
|
||||
|
||||
// Add non existent user as follower to the chart
|
||||
HttpResponseException exception = assertThrows(HttpResponseException.class, () ->
|
||||
addAndCheckFollower(chart, NON_EXISTENT_ENTITY, CREATED, 1, adminAuthHeaders()));
|
||||
assertResponse(exception, NOT_FOUND, CatalogExceptionMessage.entityNotFound("User", NON_EXISTENT_ENTITY));
|
||||
assertResponse(() -> addAndCheckFollower(chart, NON_EXISTENT_ENTITY, CREATED, 1, adminAuthHeaders()),
|
||||
NOT_FOUND, CatalogExceptionMessage.entityNotFound("User", NON_EXISTENT_ENTITY));
|
||||
|
||||
// Delete non existent user as follower to the chart
|
||||
exception = assertThrows(HttpResponseException.class, () ->
|
||||
deleteAndCheckFollower(chart, NON_EXISTENT_ENTITY, 1, adminAuthHeaders()));
|
||||
assertResponse(exception, NOT_FOUND, CatalogExceptionMessage.entityNotFound("User", NON_EXISTENT_ENTITY));
|
||||
assertResponse(() -> deleteAndCheckFollower(chart, NON_EXISTENT_ENTITY, 1, adminAuthHeaders()),
|
||||
NOT_FOUND, CatalogExceptionMessage.entityNotFound("User", NON_EXISTENT_ENTITY));
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void delete_nonExistentChart_404() {
|
||||
HttpResponseException exception = assertThrows(HttpResponseException.class, () ->
|
||||
deleteChart(NON_EXISTENT_ENTITY, adminAuthHeaders()));
|
||||
assertResponse(exception, NOT_FOUND, entityNotFound(Entity.CHART, NON_EXISTENT_ENTITY));
|
||||
assertResponse(() -> deleteChart(NON_EXISTENT_ENTITY, adminAuthHeaders()), NOT_FOUND,
|
||||
entityNotFound(Entity.CHART, NON_EXISTENT_ENTITY));
|
||||
}
|
||||
|
||||
public static Chart createAndCheckChart(CreateChart create,
|
||||
@ -709,8 +680,7 @@ public class ChartResourceTest extends CatalogApplicationTest {
|
||||
TestUtils.delete(getResource("charts/" + id), authHeaders);
|
||||
|
||||
// Ensure deleted chart does not exist
|
||||
HttpResponseException exception = assertThrows(HttpResponseException.class, () -> getChart(id, authHeaders));
|
||||
assertResponse(exception, NOT_FOUND, entityNotFound(Entity.CHART, id));
|
||||
assertResponse(() -> getChart(id, authHeaders), NOT_FOUND, entityNotFound(Entity.CHART, id));
|
||||
}
|
||||
|
||||
public static String getChartName(TestInfo test) {
|
||||
|
@ -67,6 +67,7 @@ import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||
import static org.junit.jupiter.api.Assertions.assertNull;
|
||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
import static org.openmetadata.catalog.exception.CatalogExceptionMessage.ENTITY_ALREADY_EXISTS;
|
||||
import static org.openmetadata.catalog.exception.CatalogExceptionMessage.entityNotFound;
|
||||
import static org.openmetadata.catalog.exception.CatalogExceptionMessage.readOnlyAttribute;
|
||||
import static org.openmetadata.catalog.util.TestUtils.adminAuthHeaders;
|
||||
@ -121,27 +122,23 @@ public class DashboardResourceTest extends CatalogApplicationTest {
|
||||
public void post_dashboardWithLongName_400_badRequest(TestInfo test) {
|
||||
// Create dashboard with mandatory name field empty
|
||||
CreateDashboard create = create(test).withName(TestUtils.LONG_ENTITY_NAME);
|
||||
HttpResponseException exception = assertThrows(HttpResponseException.class, () ->
|
||||
createDashboard(create, adminAuthHeaders()));
|
||||
assertResponse(exception, BAD_REQUEST, "[name size must be between 1 and 64]");
|
||||
assertResponse(() -> createDashboard(create, adminAuthHeaders()), BAD_REQUEST,
|
||||
"[name size must be between 1 and 64]");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void post_DashboardWithoutName_400_badRequest(TestInfo test) {
|
||||
// Create Dashboard with mandatory name field empty
|
||||
CreateDashboard create = create(test).withName("");
|
||||
HttpResponseException exception = assertThrows(HttpResponseException.class, () ->
|
||||
createDashboard(create, adminAuthHeaders()));
|
||||
assertResponse(exception, BAD_REQUEST, "[name size must be between 1 and 64]");
|
||||
assertResponse(() -> createDashboard(create, adminAuthHeaders()), BAD_REQUEST,
|
||||
"[name size must be between 1 and 64]");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void post_DashboardAlreadyExists_409_conflict(TestInfo test) throws HttpResponseException {
|
||||
CreateDashboard create = create(test);
|
||||
createDashboard(create, adminAuthHeaders());
|
||||
HttpResponseException exception = assertThrows(HttpResponseException.class, () ->
|
||||
createDashboard(create, adminAuthHeaders()));
|
||||
assertResponse(exception, CONFLICT, CatalogExceptionMessage.ENTITY_ALREADY_EXISTS);
|
||||
assertResponse(() -> createDashboard(create, adminAuthHeaders()), CONFLICT, ENTITY_ALREADY_EXISTS);
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -172,17 +169,15 @@ public class DashboardResourceTest extends CatalogApplicationTest {
|
||||
@Test
|
||||
public void post_Dashboard_as_non_admin_401(TestInfo test) {
|
||||
CreateDashboard create = create(test);
|
||||
HttpResponseException exception = assertThrows(HttpResponseException.class, () ->
|
||||
createDashboard(create, authHeaders("test@open-metadata.org")));
|
||||
assertResponse(exception, FORBIDDEN, "Principal: CatalogPrincipal{name='test'} is not admin");
|
||||
assertResponse(() -> createDashboard(create, authHeaders("test@open-metadata.org")), FORBIDDEN,
|
||||
"Principal: CatalogPrincipal{name='test'} is not admin");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void post_DashboardWithoutRequiredService_4xx(TestInfo test) {
|
||||
CreateDashboard create = create(test).withService(null);
|
||||
HttpResponseException exception = assertThrows(HttpResponseException.class, () ->
|
||||
createDashboard(create, adminAuthHeaders()));
|
||||
TestUtils.assertResponseContains(exception, BAD_REQUEST, "service must not be null");
|
||||
TestUtils.assertResponseContains(() -> createDashboard(create, adminAuthHeaders()), BAD_REQUEST,
|
||||
"service must not be null");
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -209,9 +204,8 @@ public class DashboardResourceTest extends CatalogApplicationTest {
|
||||
public void post_DashboardWithNonExistentOwner_4xx(TestInfo test) {
|
||||
EntityReference owner = new EntityReference().withId(TestUtils.NON_EXISTENT_ENTITY).withType("user");
|
||||
CreateDashboard create = create(test).withOwner(owner);
|
||||
HttpResponseException exception = assertThrows(HttpResponseException.class, () ->
|
||||
createDashboard(create, adminAuthHeaders()));
|
||||
assertResponse(exception, NOT_FOUND, entityNotFound("User", TestUtils.NON_EXISTENT_ENTITY));
|
||||
assertResponse(() -> createDashboard(create, adminAuthHeaders()), NOT_FOUND,
|
||||
entityNotFound("User", TestUtils.NON_EXISTENT_ENTITY));
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -233,25 +227,21 @@ public class DashboardResourceTest extends CatalogApplicationTest {
|
||||
@Test
|
||||
public void get_DashboardListWithInvalidLimitOffset_4xx() {
|
||||
// Limit must be >= 1 and <= 1000,000
|
||||
HttpResponseException exception = assertThrows(HttpResponseException.class, ()
|
||||
-> listDashboards(null, null, -1, null, null, adminAuthHeaders()));
|
||||
assertResponse(exception, BAD_REQUEST, "[query param limit must be greater than or equal to 1]");
|
||||
assertResponse(() -> listDashboards(null, null, -1, null, null, adminAuthHeaders()),
|
||||
BAD_REQUEST, "[query param limit must be greater than or equal to 1]");
|
||||
|
||||
exception = assertThrows(HttpResponseException.class, ()
|
||||
-> listDashboards(null, null, 0, null, null, adminAuthHeaders()));
|
||||
assertResponse(exception, BAD_REQUEST, "[query param limit must be greater than or equal to 1]");
|
||||
assertResponse(() -> listDashboards(null, null, 0, null, null, adminAuthHeaders()),
|
||||
BAD_REQUEST, "[query param limit must be greater than or equal to 1]");
|
||||
|
||||
exception = assertThrows(HttpResponseException.class, ()
|
||||
-> listDashboards(null, null, 1000001, null, null, adminAuthHeaders()));
|
||||
assertResponse(exception, BAD_REQUEST, "[query param limit must be less than or equal to 1000000]");
|
||||
assertResponse(() -> listDashboards(null, null, 1000001, null, null, adminAuthHeaders()),
|
||||
BAD_REQUEST, "[query param limit must be less than or equal to 1000000]");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void get_DashboardListWithInvalidPaginationCursors_4xx() {
|
||||
// Passing both before and after cursors is invalid
|
||||
HttpResponseException exception = assertThrows(HttpResponseException.class, ()
|
||||
-> listDashboards(null, null, 1, "", "", adminAuthHeaders()));
|
||||
assertResponse(exception, BAD_REQUEST, "Only one of before or after query parameter allowed");
|
||||
assertResponse(() -> listDashboards(null, null, 1, "", "", adminAuthHeaders()),
|
||||
BAD_REQUEST, "Only one of before or after query parameter allowed");
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -424,9 +414,7 @@ public class DashboardResourceTest extends CatalogApplicationTest {
|
||||
|
||||
@Test
|
||||
public void get_nonExistentDashboard_404_notFound() {
|
||||
HttpResponseException exception = assertThrows(HttpResponseException.class, () ->
|
||||
getDashboard(TestUtils.NON_EXISTENT_ENTITY, adminAuthHeaders()));
|
||||
assertResponse(exception, NOT_FOUND,
|
||||
assertResponse(() -> getDashboard(TestUtils.NON_EXISTENT_ENTITY, adminAuthHeaders()), NOT_FOUND,
|
||||
entityNotFound(Entity.DASHBOARD, TestUtils.NON_EXISTENT_ENTITY));
|
||||
}
|
||||
|
||||
@ -481,15 +469,13 @@ public class DashboardResourceTest extends CatalogApplicationTest {
|
||||
UUID dashboardId = dashboard.getId();
|
||||
String dashboardJson = JsonUtils.pojoToJson(dashboard);
|
||||
dashboard.setId(UUID.randomUUID());
|
||||
HttpResponseException exception = assertThrows(HttpResponseException.class, () ->
|
||||
patchDashboard(dashboardId, dashboardJson, dashboard, adminAuthHeaders()));
|
||||
assertResponse(exception, BAD_REQUEST, readOnlyAttribute(Entity.DASHBOARD, "id"));
|
||||
assertResponse(() -> patchDashboard(dashboardId, dashboardJson, dashboard, adminAuthHeaders()), BAD_REQUEST,
|
||||
readOnlyAttribute(Entity.DASHBOARD, "id"));
|
||||
|
||||
// ID can't be deleted
|
||||
dashboard.setId(null);
|
||||
exception = assertThrows(HttpResponseException.class, () ->
|
||||
patchDashboard(dashboardId, dashboardJson, dashboard, adminAuthHeaders()));
|
||||
assertResponse(exception, BAD_REQUEST, readOnlyAttribute(Entity.DASHBOARD, "id"));
|
||||
assertResponse(() -> patchDashboard(dashboardId, dashboardJson, dashboard, adminAuthHeaders()), BAD_REQUEST,
|
||||
readOnlyAttribute(Entity.DASHBOARD, "id"));
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -498,15 +484,13 @@ public class DashboardResourceTest extends CatalogApplicationTest {
|
||||
Dashboard dashboard = createDashboard(create(test), adminAuthHeaders());
|
||||
String dashboardJson = JsonUtils.pojoToJson(dashboard);
|
||||
dashboard.setName("newName");
|
||||
HttpResponseException exception = assertThrows(HttpResponseException.class, () ->
|
||||
patchDashboard(dashboardJson, dashboard, adminAuthHeaders()));
|
||||
assertResponse(exception, BAD_REQUEST, readOnlyAttribute(Entity.DASHBOARD, "name"));
|
||||
assertResponse(() -> patchDashboard(dashboardJson, dashboard, adminAuthHeaders()), BAD_REQUEST,
|
||||
readOnlyAttribute(Entity.DASHBOARD, "name"));
|
||||
|
||||
// Name can't be removed
|
||||
dashboard.setName(null);
|
||||
exception = assertThrows(HttpResponseException.class, () ->
|
||||
patchDashboard(dashboardJson, dashboard, adminAuthHeaders()));
|
||||
assertResponse(exception, BAD_REQUEST, readOnlyAttribute(Entity.DASHBOARD, "name"));
|
||||
assertResponse(() -> patchDashboard(dashboardJson, dashboard, adminAuthHeaders()), BAD_REQUEST,
|
||||
readOnlyAttribute(Entity.DASHBOARD, "name"));
|
||||
}
|
||||
|
||||
@Test
|
||||
@ -517,15 +501,13 @@ public class DashboardResourceTest extends CatalogApplicationTest {
|
||||
|
||||
String dashboardJson = JsonUtils.pojoToJson(dashboard);
|
||||
dashboard.setService(LOOKER_REFERENCE);
|
||||
HttpResponseException exception = assertThrows(HttpResponseException.class, () ->
|
||||
patchDashboard(dashboardJson, dashboard, adminAuthHeaders()));
|
||||
assertResponse(exception, BAD_REQUEST, readOnlyAttribute(Entity.DASHBOARD, "service"));
|
||||
assertResponse(() -> patchDashboard(dashboardJson, dashboard, adminAuthHeaders()), BAD_REQUEST,
|
||||
readOnlyAttribute(Entity.DASHBOARD, "service"));
|
||||
|
||||
// Service relationship can't be removed
|
||||
dashboard.setService(null);
|
||||
exception = assertThrows(HttpResponseException.class, () ->
|
||||
patchDashboard(dashboardJson, dashboard, adminAuthHeaders()));
|
||||
assertResponse(exception, BAD_REQUEST, readOnlyAttribute(Entity.DASHBOARD, "service"));
|
||||
assertResponse(() -> patchDashboard(dashboardJson, dashboard, adminAuthHeaders()), BAD_REQUEST,
|
||||
readOnlyAttribute(Entity.DASHBOARD, "service"));
|
||||
}
|
||||
|
||||
// TODO listing tables test:1
|
||||
@ -544,9 +526,8 @@ public class DashboardResourceTest extends CatalogApplicationTest {
|
||||
|
||||
@Test
|
||||
public void delete_nonExistentDashboard_404() {
|
||||
HttpResponseException exception = assertThrows(HttpResponseException.class, () ->
|
||||
deleteDashboard(TestUtils.NON_EXISTENT_ENTITY, adminAuthHeaders()));
|
||||
assertResponse(exception, NOT_FOUND, entityNotFound(Entity.DASHBOARD, TestUtils.NON_EXISTENT_ENTITY));
|
||||
assertResponse(() -> deleteDashboard(TestUtils.NON_EXISTENT_ENTITY, adminAuthHeaders()), NOT_FOUND,
|
||||
entityNotFound(Entity.DASHBOARD, TestUtils.NON_EXISTENT_ENTITY));
|
||||
}
|
||||
|
||||
public static Dashboard createAndCheckDashboard(CreateDashboard create,
|
||||
@ -781,8 +762,7 @@ public class DashboardResourceTest extends CatalogApplicationTest {
|
||||
TestUtils.delete(getResource("dashboards/" + id), authHeaders);
|
||||
|
||||
// Ensure deleted Dashboard does not exist
|
||||
HttpResponseException exception = assertThrows(HttpResponseException.class, () -> getDashboard(id, authHeaders));
|
||||
assertResponse(exception, NOT_FOUND, entityNotFound(Entity.DASHBOARD, id));
|
||||
assertResponse(() -> getDashboard(id, authHeaders), NOT_FOUND, entityNotFound(Entity.DASHBOARD, id));
|
||||
}
|
||||
|
||||
public static String getDashboardName(TestInfo test) {
|
||||
|
@ -108,9 +108,8 @@ public class DatabaseResourceTest extends CatalogApplicationTest {
|
||||
public void post_databaseWithLongName_400_badRequest(TestInfo test) {
|
||||
// Create database with mandatory name field empty
|
||||
CreateDatabase create = create(test).withName(TestUtils.LONG_ENTITY_NAME);
|
||||
HttpResponseException exception = assertThrows(HttpResponseException.class, () ->
|
||||
createDatabase(create, adminAuthHeaders()));
|
||||
assertResponse(exception, BAD_REQUEST, "[name size must be between 1 and 64]");
|
||||
assertResponse(() -> createDatabase(create, adminAuthHeaders()), BAD_REQUEST,
|
||||
"[name size must be between 1 and 64]");
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -16,13 +16,14 @@
|
||||
|
||||
package org.openmetadata.catalog.util;
|
||||
|
||||
import org.apache.http.client.HttpResponseException;
|
||||
import org.eclipse.jetty.http.HttpStatus;
|
||||
import org.junit.jupiter.api.function.Executable;
|
||||
import org.openmetadata.catalog.resources.databases.TableResourceTest.TagLabelComparator;
|
||||
import org.openmetadata.catalog.resources.tags.TagResourceTest;
|
||||
import org.openmetadata.catalog.security.CatalogOpenIdAuthorizationRequestFilter;
|
||||
import org.openmetadata.catalog.type.EntityReference;
|
||||
import org.openmetadata.catalog.type.JdbcInfo;
|
||||
import org.apache.http.client.HttpResponseException;
|
||||
import org.eclipse.jetty.http.HttpStatus;
|
||||
import org.openmetadata.catalog.type.TagLabel;
|
||||
|
||||
import javax.json.JsonObject;
|
||||
@ -47,6 +48,7 @@ import java.util.stream.Collectors;
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
|
||||
public final class TestUtils {
|
||||
@ -111,6 +113,20 @@ public final class TestUtils {
|
||||
return response.readEntity(clz);
|
||||
}
|
||||
|
||||
public static void assertResponse(Executable executable, Response.Status expectedStatus, String expectedReason) {
|
||||
HttpResponseException exception = assertThrows(HttpResponseException.class, executable);
|
||||
assertEquals(expectedStatus.getStatusCode(), exception.getStatusCode());
|
||||
assertEquals(expectedReason, exception.getReasonPhrase());
|
||||
}
|
||||
|
||||
public static void assertResponseContains(Executable executable, Response.Status expectedStatus,
|
||||
String expectedReason) {
|
||||
HttpResponseException exception = assertThrows(HttpResponseException.class, executable);
|
||||
assertEquals(expectedStatus.getStatusCode(), exception.getStatusCode());
|
||||
assertTrue(exception.getReasonPhrase().contains(expectedReason),
|
||||
expectedReason + " not in actual " + exception.getReasonPhrase());
|
||||
}
|
||||
|
||||
public static void assertResponse(HttpResponseException exception, Status expectedCode, String expectedReason) {
|
||||
assertEquals(expectedCode.getStatusCode(), exception.getStatusCode());
|
||||
assertEquals(expectedReason, exception.getReasonPhrase());
|
||||
|
Loading…
x
Reference in New Issue
Block a user