mirror of
				https://github.com/open-metadata/OpenMetadata.git
				synced 2025-10-26 16:22:09 +00:00 
			
		
		
		
	Fix #329: Add more tests to Dashboard and Topic
This commit is contained in:
		
							parent
							
								
									5fe66b8535
								
							
						
					
					
						commit
						21c87ad46d
					
				| @ -147,7 +147,8 @@ public abstract class DashboardRepository { | |||||||
|     // Service can't be changed in update since service name is part of FQN and |     // Service can't be changed in update since service name is part of FQN and | ||||||
|     // change to a different service will result in a different FQN and creation of a new database under the new service |     // change to a different service will result in a different FQN and creation of a new database under the new service | ||||||
|     storedDashboard.setService(service); |     storedDashboard.setService(service); | ||||||
|     applyTags(updatedDashboard); |     storedDashboard.setCharts(updatedDashboard.getCharts()); | ||||||
|  |     updateChartRelationships(storedDashboard); | ||||||
| 
 | 
 | ||||||
|     return new PutResponse<>(Response.Status.OK, storedDashboard); |     return new PutResponse<>(Response.Status.OK, storedDashboard); | ||||||
|   } |   } | ||||||
| @ -333,6 +334,17 @@ public abstract class DashboardRepository { | |||||||
|     applyTags(dashboard); |     applyTags(dashboard); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|  |   private void updateChartRelationships(Dashboard dashboard)  { | ||||||
|  |     // Add relationship from dashboard to chart | ||||||
|  |     String dashboardId = dashboard.getId().toString(); | ||||||
|  |     if (dashboard.getCharts() != null) { | ||||||
|  |       for (EntityReference chart : dashboard.getCharts()) { | ||||||
|  |         relationshipDAO().insert(dashboardId, chart.getId().toString(), Entity.DASHBOARD, Entity.CHART, | ||||||
|  |                 Relationship.CONTAINS.ordinal()); | ||||||
|  |       } | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|   private Dashboard validateDashboard(String id) throws IOException { |   private Dashboard validateDashboard(String id) throws IOException { | ||||||
|     return EntityUtil.validate(id, dashboardDAO().findById(id), Dashboard.class); |     return EntityUtil.validate(id, dashboardDAO().findById(id), Dashboard.class); | ||||||
|   } |   } | ||||||
|  | |||||||
| @ -54,7 +54,7 @@ import static org.openmetadata.catalog.exception.CatalogExceptionMessage.entityN | |||||||
| 
 | 
 | ||||||
| public abstract class TopicRepository { | public abstract class TopicRepository { | ||||||
|   private static final Logger LOG = LoggerFactory.getLogger(TopicRepository.class); |   private static final Logger LOG = LoggerFactory.getLogger(TopicRepository.class); | ||||||
|   private static final Fields TOPIC_UPDATE_FIELDS = new Fields(TopicResource.FIELD_LIST, "owner"); |   private static final Fields TOPIC_UPDATE_FIELDS = new Fields(TopicResource.FIELD_LIST, "owner,tags"); | ||||||
|   private static final Fields TOPIC_PATCH_FIELDS = new Fields(TopicResource.FIELD_LIST, "owner,service,tags"); |   private static final Fields TOPIC_PATCH_FIELDS = new Fields(TopicResource.FIELD_LIST, "owner,service,tags"); | ||||||
| 
 | 
 | ||||||
|   public static String getFQN(EntityReference service, Topic topic) { |   public static String getFQN(EntityReference service, Topic topic) { | ||||||
|  | |||||||
| @ -23,14 +23,17 @@ import org.junit.jupiter.api.Test; | |||||||
| import org.junit.jupiter.api.TestInfo; | import org.junit.jupiter.api.TestInfo; | ||||||
| import org.openmetadata.catalog.CatalogApplicationTest; | import org.openmetadata.catalog.CatalogApplicationTest; | ||||||
| import org.openmetadata.catalog.Entity; | import org.openmetadata.catalog.Entity; | ||||||
|  | import org.openmetadata.catalog.api.data.CreateChart; | ||||||
| import org.openmetadata.catalog.api.data.CreateDashboard; | import org.openmetadata.catalog.api.data.CreateDashboard; | ||||||
| import org.openmetadata.catalog.api.services.CreateDashboardService; | import org.openmetadata.catalog.api.services.CreateDashboardService; | ||||||
| import org.openmetadata.catalog.api.services.CreateDashboardService.DashboardServiceType; | import org.openmetadata.catalog.api.services.CreateDashboardService.DashboardServiceType; | ||||||
|  | import org.openmetadata.catalog.entity.data.Chart; | ||||||
| import org.openmetadata.catalog.entity.data.Dashboard; | import org.openmetadata.catalog.entity.data.Dashboard; | ||||||
| import org.openmetadata.catalog.entity.services.DashboardService; | import org.openmetadata.catalog.entity.services.DashboardService; | ||||||
| import org.openmetadata.catalog.entity.teams.Team; | import org.openmetadata.catalog.entity.teams.Team; | ||||||
| import org.openmetadata.catalog.entity.teams.User; | import org.openmetadata.catalog.entity.teams.User; | ||||||
| import org.openmetadata.catalog.exception.CatalogExceptionMessage; | import org.openmetadata.catalog.exception.CatalogExceptionMessage; | ||||||
|  | import org.openmetadata.catalog.resources.charts.ChartResourceTest; | ||||||
| import org.openmetadata.catalog.resources.dashboards.DashboardResource.DashboardList; | import org.openmetadata.catalog.resources.dashboards.DashboardResource.DashboardList; | ||||||
| import org.openmetadata.catalog.resources.services.DashboardServiceResourceTest; | import org.openmetadata.catalog.resources.services.DashboardServiceResourceTest; | ||||||
| import org.openmetadata.catalog.resources.teams.TeamResourceTest; | import org.openmetadata.catalog.resources.teams.TeamResourceTest; | ||||||
| @ -46,6 +49,8 @@ import org.slf4j.LoggerFactory; | |||||||
| import javax.json.JsonPatch; | import javax.json.JsonPatch; | ||||||
| import javax.ws.rs.client.WebTarget; | import javax.ws.rs.client.WebTarget; | ||||||
| import javax.ws.rs.core.Response.Status; | import javax.ws.rs.core.Response.Status; | ||||||
|  | import java.util.ArrayList; | ||||||
|  | import java.util.List; | ||||||
| import java.util.Map; | import java.util.Map; | ||||||
| import java.util.UUID; | import java.util.UUID; | ||||||
| 
 | 
 | ||||||
| @ -59,6 +64,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; | |||||||
| import static org.junit.jupiter.api.Assertions.assertNotNull; | import static org.junit.jupiter.api.Assertions.assertNotNull; | ||||||
| import static org.junit.jupiter.api.Assertions.assertNull; | import static org.junit.jupiter.api.Assertions.assertNull; | ||||||
| import static org.junit.jupiter.api.Assertions.assertThrows; | import static org.junit.jupiter.api.Assertions.assertThrows; | ||||||
|  | import static org.junit.jupiter.api.Assertions.assertTrue; | ||||||
| import static org.openmetadata.catalog.exception.CatalogExceptionMessage.entityNotFound; | import static org.openmetadata.catalog.exception.CatalogExceptionMessage.entityNotFound; | ||||||
| import static org.openmetadata.catalog.exception.CatalogExceptionMessage.readOnlyAttribute; | import static org.openmetadata.catalog.exception.CatalogExceptionMessage.readOnlyAttribute; | ||||||
| import static org.openmetadata.catalog.util.TestUtils.adminAuthHeaders; | import static org.openmetadata.catalog.util.TestUtils.adminAuthHeaders; | ||||||
| @ -74,6 +80,7 @@ public class DashboardResourceTest extends CatalogApplicationTest { | |||||||
|   public static EntityReference TEAM_OWNER1; |   public static EntityReference TEAM_OWNER1; | ||||||
|   public static EntityReference SUPERSET_REFERENCE; |   public static EntityReference SUPERSET_REFERENCE; | ||||||
|   public static EntityReference LOOKER_REFERENCE; |   public static EntityReference LOOKER_REFERENCE; | ||||||
|  |   public static List<EntityReference> CHART_REFERENCES; | ||||||
| 
 | 
 | ||||||
|   @BeforeAll |   @BeforeAll | ||||||
|   public static void setup(TestInfo test) throws HttpResponseException { |   public static void setup(TestInfo test) throws HttpResponseException { | ||||||
| @ -92,6 +99,12 @@ public class DashboardResourceTest extends CatalogApplicationTest { | |||||||
|     createService.withName("looker").withServiceType(DashboardServiceType.Looker); |     createService.withName("looker").withServiceType(DashboardServiceType.Looker); | ||||||
|     service = DashboardServiceResourceTest.createService(createService, adminAuthHeaders()); |     service = DashboardServiceResourceTest.createService(createService, adminAuthHeaders()); | ||||||
|     LOOKER_REFERENCE = EntityUtil.getEntityReference(service); |     LOOKER_REFERENCE = EntityUtil.getEntityReference(service); | ||||||
|  |     CHART_REFERENCES = new ArrayList<>(); | ||||||
|  |     for (int i=0; i < 3; i++) { | ||||||
|  |       CreateChart createChart = ChartResourceTest.create(test, i).withService(SUPERSET_REFERENCE); | ||||||
|  |       Chart chart = ChartResourceTest.createChart(createChart, adminAuthHeaders()); | ||||||
|  |       CHART_REFERENCES.add(EntityUtil.getEntityReference(chart)); | ||||||
|  |     } | ||||||
| 
 | 
 | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
| @ -142,6 +155,11 @@ public class DashboardResourceTest extends CatalogApplicationTest { | |||||||
|     createAndCheckDashboard(create(test).withOwner(TEAM_OWNER1), adminAuthHeaders()); |     createAndCheckDashboard(create(test).withOwner(TEAM_OWNER1), adminAuthHeaders()); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|  |   @Test | ||||||
|  |   public void post_DashboardWithCharts_200_ok(TestInfo test) throws HttpResponseException { | ||||||
|  |     createAndCheckDashboard(create(test), CHART_REFERENCES, adminAuthHeaders()); | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|   @Test |   @Test | ||||||
|   public void post_Dashboard_as_non_admin_401(TestInfo test) { |   public void post_Dashboard_as_non_admin_401(TestInfo test) { | ||||||
|     CreateDashboard create = create(test); |     CreateDashboard create = create(test); | ||||||
| @ -353,6 +371,19 @@ public class DashboardResourceTest extends CatalogApplicationTest { | |||||||
|     assertNull(db.getOwner()); |     assertNull(db.getOwner()); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|  | 
 | ||||||
|  |   @Test | ||||||
|  |   public void put_DashboardChartsUpdate_200(TestInfo test) throws HttpResponseException { | ||||||
|  |     CreateDashboard request = create(test).withService(SUPERSET_REFERENCE).withDescription(null); | ||||||
|  |     createAndCheckDashboard(request, adminAuthHeaders()); | ||||||
|  | 
 | ||||||
|  |     Dashboard dashboard = updateAndCheckDashboard(request | ||||||
|  |                     .withDescription("newDescription").withCharts(CHART_REFERENCES), | ||||||
|  |             OK, adminAuthHeaders()); | ||||||
|  |     validateDashboardCharts(dashboard, CHART_REFERENCES); | ||||||
|  |     assertEquals("newDescription", dashboard.getDescription()); | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|   @Test |   @Test | ||||||
|   public void get_nonExistentDashboard_404_notFound() { |   public void get_nonExistentDashboard_404_notFound() { | ||||||
|     HttpResponseException exception = assertThrows(HttpResponseException.class, () -> |     HttpResponseException exception = assertThrows(HttpResponseException.class, () -> | ||||||
| @ -486,6 +517,14 @@ public class DashboardResourceTest extends CatalogApplicationTest { | |||||||
|     return getAndValidate(dashboard.getId(), create, authHeaders); |     return getAndValidate(dashboard.getId(), create, authHeaders); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|  |   public static Dashboard createAndCheckDashboard(CreateDashboard create, List<EntityReference> charts, | ||||||
|  |                                                   Map<String, String> authHeaders) throws HttpResponseException { | ||||||
|  |     create.withCharts(charts); | ||||||
|  |     Dashboard dashboard = createDashboard(create, authHeaders); | ||||||
|  |     validateDashboard(dashboard, create.getDescription(), create.getOwner(), create.getService(), charts); | ||||||
|  |     return getAndValidate(dashboard.getId(), create, authHeaders); | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|   public static Dashboard updateAndCheckDashboard(CreateDashboard create, |   public static Dashboard updateAndCheckDashboard(CreateDashboard create, | ||||||
|                                                 Status status, |                                                 Status status, | ||||||
|                                                 Map<String, String> authHeaders) throws HttpResponseException { |                                                 Map<String, String> authHeaders) throws HttpResponseException { | ||||||
| @ -501,12 +540,12 @@ public class DashboardResourceTest extends CatalogApplicationTest { | |||||||
|                                         CreateDashboard create, |                                         CreateDashboard create, | ||||||
|                                         Map<String, String> authHeaders) throws HttpResponseException { |                                         Map<String, String> authHeaders) throws HttpResponseException { | ||||||
|     // GET the newly created Dashboard by ID and validate |     // GET the newly created Dashboard by ID and validate | ||||||
|     Dashboard dashboard = getDashboard(dashboardId, "service,owner", authHeaders); |     Dashboard dashboard = getDashboard(dashboardId, "service,owner,charts", authHeaders); | ||||||
|     validateDashboard(dashboard, create.getDescription(), create.getOwner(), create.getService()); |     validateDashboard(dashboard, create.getDescription(), create.getOwner(), create.getService()); | ||||||
| 
 | 
 | ||||||
|     // GET the newly created Dashboard by name and validate |     // GET the newly created Dashboard by name and validate | ||||||
|     String fqn = dashboard.getFullyQualifiedName(); |     String fqn = dashboard.getFullyQualifiedName(); | ||||||
|     dashboard = getDashboardByName(fqn, "service,owner", authHeaders); |     dashboard = getDashboardByName(fqn, "service,owner,charts", authHeaders); | ||||||
|     return validateDashboard(dashboard, create.getDescription(), create.getOwner(), create.getService()); |     return validateDashboard(dashboard, create.getDescription(), create.getOwner(), create.getService()); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
| @ -575,6 +614,46 @@ public class DashboardResourceTest extends CatalogApplicationTest { | |||||||
|     return dashboard; |     return dashboard; | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|  |   private static Dashboard validateDashboard(Dashboard dashboard, String expectedDescription, | ||||||
|  |                                              EntityReference expectedOwner, EntityReference expectedService, | ||||||
|  |                                               List<EntityReference> charts) { | ||||||
|  |     assertNotNull(dashboard.getId()); | ||||||
|  |     assertNotNull(dashboard.getHref()); | ||||||
|  |     assertEquals(expectedDescription, dashboard.getDescription()); | ||||||
|  | 
 | ||||||
|  |     // Validate owner | ||||||
|  |     if (expectedOwner != null) { | ||||||
|  |       TestUtils.validateEntityReference(dashboard.getOwner()); | ||||||
|  |       assertEquals(expectedOwner.getId(), dashboard.getOwner().getId()); | ||||||
|  |       assertEquals(expectedOwner.getType(), dashboard.getOwner().getType()); | ||||||
|  |       assertNotNull(dashboard.getOwner().getHref()); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     // Validate service | ||||||
|  |     if (expectedService != null) { | ||||||
|  |       TestUtils.validateEntityReference(dashboard.getService()); | ||||||
|  |       assertEquals(expectedService.getId(), dashboard.getService().getId()); | ||||||
|  |       assertEquals(expectedService.getType(), dashboard.getService().getType()); | ||||||
|  |     } | ||||||
|  |     validateDashboardCharts(dashboard, charts); | ||||||
|  |     return dashboard; | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|  |   private static void validateDashboardCharts(Dashboard dashboard, List<EntityReference> charts) { | ||||||
|  |     if (charts != null) { | ||||||
|  |       List<UUID> expectedChartReferences = new ArrayList<>(); | ||||||
|  |       for (EntityReference chart: charts) { | ||||||
|  |         expectedChartReferences.add(chart.getId()); | ||||||
|  |       } | ||||||
|  |       List<UUID> actualChartReferences = new ArrayList<>(); | ||||||
|  |       for (EntityReference chart: dashboard.getCharts()) { | ||||||
|  |         TestUtils.validateEntityReference(chart); | ||||||
|  |         actualChartReferences.add(chart.getId()); | ||||||
|  |       } | ||||||
|  |       assertTrue(actualChartReferences.containsAll(expectedChartReferences)); | ||||||
|  |     } | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|   private Dashboard patchDashboardAttributesAndCheck(Dashboard dashboard, String newDescription, |   private Dashboard patchDashboardAttributesAndCheck(Dashboard dashboard, String newDescription, | ||||||
|                                                 EntityReference newOwner, Map<String, String> authHeaders) |                                                 EntityReference newOwner, Map<String, String> authHeaders) | ||||||
|           throws JsonProcessingException, HttpResponseException { |           throws JsonProcessingException, HttpResponseException { | ||||||
|  | |||||||
| @ -26,11 +26,13 @@ import org.openmetadata.catalog.Entity; | |||||||
| import org.openmetadata.catalog.api.data.CreateDatabase; | import org.openmetadata.catalog.api.data.CreateDatabase; | ||||||
| import org.openmetadata.catalog.api.services.CreateDatabaseService; | import org.openmetadata.catalog.api.services.CreateDatabaseService; | ||||||
| import org.openmetadata.catalog.api.services.CreateDatabaseService.DatabaseServiceType; | import org.openmetadata.catalog.api.services.CreateDatabaseService.DatabaseServiceType; | ||||||
|  | import org.openmetadata.catalog.entity.data.Chart; | ||||||
| import org.openmetadata.catalog.entity.data.Database; | import org.openmetadata.catalog.entity.data.Database; | ||||||
| import org.openmetadata.catalog.entity.services.DatabaseService; | import org.openmetadata.catalog.entity.services.DatabaseService; | ||||||
| import org.openmetadata.catalog.entity.teams.Team; | import org.openmetadata.catalog.entity.teams.Team; | ||||||
| import org.openmetadata.catalog.entity.teams.User; | import org.openmetadata.catalog.entity.teams.User; | ||||||
| import org.openmetadata.catalog.exception.CatalogExceptionMessage; | import org.openmetadata.catalog.exception.CatalogExceptionMessage; | ||||||
|  | import org.openmetadata.catalog.resources.charts.ChartResourceTest; | ||||||
| import org.openmetadata.catalog.resources.databases.DatabaseResource.DatabaseList; | import org.openmetadata.catalog.resources.databases.DatabaseResource.DatabaseList; | ||||||
| import org.openmetadata.catalog.resources.services.DatabaseServiceResourceTest; | import org.openmetadata.catalog.resources.services.DatabaseServiceResourceTest; | ||||||
| import org.openmetadata.catalog.resources.teams.TeamResourceTest; | import org.openmetadata.catalog.resources.teams.TeamResourceTest; | ||||||
| @ -46,6 +48,7 @@ import org.slf4j.LoggerFactory; | |||||||
| import javax.json.JsonPatch; | import javax.json.JsonPatch; | ||||||
| import javax.ws.rs.client.WebTarget; | import javax.ws.rs.client.WebTarget; | ||||||
| import javax.ws.rs.core.Response.Status; | import javax.ws.rs.core.Response.Status; | ||||||
|  | import java.util.List; | ||||||
| import java.util.Map; | import java.util.Map; | ||||||
| import java.util.UUID; | import java.util.UUID; | ||||||
| 
 | 
 | ||||||
| @ -101,6 +104,7 @@ public class DatabaseResourceTest extends CatalogApplicationTest { | |||||||
|     createService.withName("mysqlDB").withServiceType(DatabaseServiceType.MySQL); |     createService.withName("mysqlDB").withServiceType(DatabaseServiceType.MySQL); | ||||||
|     service = DatabaseServiceResourceTest.createService(createService, adminAuthHeaders()); |     service = DatabaseServiceResourceTest.createService(createService, adminAuthHeaders()); | ||||||
|     MYSQL_REFERENCE = EntityUtil.getEntityReference(service); |     MYSQL_REFERENCE = EntityUtil.getEntityReference(service); | ||||||
|  | 
 | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   @Test |   @Test | ||||||
|  | |||||||
| @ -17,6 +17,7 @@ | |||||||
| package org.openmetadata.catalog.resources.services; | package org.openmetadata.catalog.resources.services; | ||||||
| 
 | 
 | ||||||
| import org.apache.http.client.HttpResponseException; | import org.apache.http.client.HttpResponseException; | ||||||
|  | import org.junit.jupiter.api.BeforeAll; | ||||||
| import org.junit.jupiter.api.Test; | import org.junit.jupiter.api.Test; | ||||||
| import org.junit.jupiter.api.TestInfo; | import org.junit.jupiter.api.TestInfo; | ||||||
| import org.openmetadata.catalog.CatalogApplicationTest; | import org.openmetadata.catalog.CatalogApplicationTest; | ||||||
| @ -26,16 +27,26 @@ import org.openmetadata.catalog.api.services.CreateMessagingService.MessagingSer | |||||||
| import org.openmetadata.catalog.api.services.UpdateMessagingService; | import org.openmetadata.catalog.api.services.UpdateMessagingService; | ||||||
| import org.openmetadata.catalog.entity.services.MessagingService; | import org.openmetadata.catalog.entity.services.MessagingService; | ||||||
| import org.openmetadata.catalog.exception.CatalogExceptionMessage; | import org.openmetadata.catalog.exception.CatalogExceptionMessage; | ||||||
|  | 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.type.EntityReference; | ||||||
| import org.openmetadata.catalog.type.Schedule; | import org.openmetadata.catalog.type.Schedule; | ||||||
|  | import org.openmetadata.catalog.type.TagLabel; | ||||||
|  | import org.openmetadata.catalog.util.EntityUtil; | ||||||
| import org.openmetadata.catalog.util.RestUtil; | import org.openmetadata.catalog.util.RestUtil; | ||||||
| import org.openmetadata.catalog.util.TestUtils; | import org.openmetadata.catalog.util.TestUtils; | ||||||
| 
 | 
 | ||||||
| import javax.ws.rs.client.WebTarget; | import javax.ws.rs.client.WebTarget; | ||||||
| import javax.ws.rs.core.Response.Status; | import javax.ws.rs.core.Response.Status; | ||||||
|  | import java.net.URI; | ||||||
|  | import java.net.URISyntaxException; | ||||||
|  | import java.util.ArrayList; | ||||||
| import java.util.Date; | import java.util.Date; | ||||||
| import java.util.List; | import java.util.List; | ||||||
| import java.util.Map; | import java.util.Map; | ||||||
| import java.util.UUID; | import java.util.UUID; | ||||||
|  | import java.util.stream.Collectors; | ||||||
| 
 | 
 | ||||||
| import static javax.ws.rs.core.Response.Status.BAD_REQUEST; | 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.CONFLICT; | ||||||
| @ -45,10 +56,21 @@ import static javax.ws.rs.core.Response.Status.OK; | |||||||
| import static org.junit.jupiter.api.Assertions.assertEquals; | import static org.junit.jupiter.api.Assertions.assertEquals; | ||||||
| import static org.junit.jupiter.api.Assertions.assertNotNull; | import static org.junit.jupiter.api.Assertions.assertNotNull; | ||||||
| import static org.junit.jupiter.api.Assertions.assertThrows; | import static org.junit.jupiter.api.Assertions.assertThrows; | ||||||
|  | import static org.junit.jupiter.api.Assertions.assertTrue; | ||||||
| import static org.openmetadata.catalog.util.TestUtils.adminAuthHeaders; | import static org.openmetadata.catalog.util.TestUtils.adminAuthHeaders; | ||||||
| import static org.openmetadata.catalog.util.TestUtils.authHeaders; | import static org.openmetadata.catalog.util.TestUtils.authHeaders; | ||||||
| 
 | 
 | ||||||
| public class MessagingServiceResourceTest extends CatalogApplicationTest { | public class MessagingServiceResourceTest extends CatalogApplicationTest { | ||||||
|  | 
 | ||||||
|  |   public static List<String> KAFKA_BROKERS; | ||||||
|  |   public static URI SCHEMA_REGISTRY_URL; | ||||||
|  | 
 | ||||||
|  |   @BeforeAll | ||||||
|  |   public static void setup(TestInfo test) throws URISyntaxException { | ||||||
|  |     KAFKA_BROKERS = List.of("192.168.1.1:0"); | ||||||
|  |     SCHEMA_REGISTRY_URL = new URI("http://localhost:0"); | ||||||
|  |   } | ||||||
|  | 
 | ||||||
|   @Test |   @Test | ||||||
|   public void post_serviceWithLongName_400_badRequest(TestInfo test) { |   public void post_serviceWithLongName_400_badRequest(TestInfo test) { | ||||||
|     // Create messaging with mandatory name field empty |     // Create messaging with mandatory name field empty | ||||||
| @ -183,9 +205,9 @@ public class MessagingServiceResourceTest extends CatalogApplicationTest { | |||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   @Test |   @Test | ||||||
|   public void put_updateService_as_admin_2xx(TestInfo test) throws HttpResponseException { |   public void put_updateService_as_admin_2xx(TestInfo test) throws HttpResponseException, URISyntaxException { | ||||||
|     MessagingService dbService = createAndCheckService(create(test).withDescription(null).withIngestionSchedule(null), |     MessagingService dbService = createAndCheckService(create(test).withDescription(null).withIngestionSchedule(null) | ||||||
|             adminAuthHeaders()); |             .withBrokers(KAFKA_BROKERS).withSchemaRegistry(SCHEMA_REGISTRY_URL), adminAuthHeaders()); | ||||||
|     String id = dbService.getId().toString(); |     String id = dbService.getId().toString(); | ||||||
| 
 | 
 | ||||||
|     // Update messaging description and ingestion service that are null |     // Update messaging description and ingestion service that are null | ||||||
| @ -200,6 +222,11 @@ public class MessagingServiceResourceTest extends CatalogApplicationTest { | |||||||
|     update.withDescription("description1").withIngestionSchedule(schedule.withRepeatFrequency("PT1H")); |     update.withDescription("description1").withIngestionSchedule(schedule.withRepeatFrequency("PT1H")); | ||||||
|     updateAndCheckService(id, update, OK, adminAuthHeaders()); |     updateAndCheckService(id, update, OK, adminAuthHeaders()); | ||||||
| 
 | 
 | ||||||
|  |     // update broker list and schema registry | ||||||
|  |     update.withBrokers(List.of("localhost:0")).withSchemaRegistry(new URI("http://localhost:9000")); | ||||||
|  |     updateAndCheckService(id, update, OK, adminAuthHeaders()); | ||||||
|  |     MessagingService updatedService = getService(dbService.getId(), adminAuthHeaders()); | ||||||
|  |     validateMessagingServiceConfig(updatedService, List.of("localhost:0"), new URI("http://localhost:9000")); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|   @Test |   @Test | ||||||
| @ -337,7 +364,8 @@ public class MessagingServiceResourceTest extends CatalogApplicationTest { | |||||||
| 
 | 
 | ||||||
|   public static CreateMessagingService create(TestInfo test) { |   public static CreateMessagingService create(TestInfo test) { | ||||||
|     return new CreateMessagingService().withName(getName(test)).withServiceType(MessagingServiceType.Kafka) |     return new CreateMessagingService().withName(getName(test)).withServiceType(MessagingServiceType.Kafka) | ||||||
|             .withBrokers(List.of("192.1.1.1:0")) |             .withBrokers(KAFKA_BROKERS) | ||||||
|  |             .withSchemaRegistry(SCHEMA_REGISTRY_URL) | ||||||
|             .withIngestionSchedule(new Schedule().withStartDate(new Date()).withRepeatFrequency("P1D")); |             .withIngestionSchedule(new Schedule().withStartDate(new Date()).withRepeatFrequency("P1D")); | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
| @ -367,4 +395,11 @@ public class MessagingServiceResourceTest extends CatalogApplicationTest { | |||||||
|     return TestUtils.put(CatalogApplicationTest.getResource("services/messagingServices/" + id), updated, |     return TestUtils.put(CatalogApplicationTest.getResource("services/messagingServices/" + id), updated, | ||||||
|             MessagingService.class, status, authHeaders); |             MessagingService.class, status, authHeaders); | ||||||
|   } |   } | ||||||
|  | 
 | ||||||
|  |   private static void validateMessagingServiceConfig(MessagingService actualService, List<String> expectedBrokers, | ||||||
|  |                                                      URI expectedSchemaRegistry) | ||||||
|  |           throws HttpResponseException { | ||||||
|  |     assertTrue(actualService.getBrokers().containsAll(expectedBrokers)); | ||||||
|  |     assertEquals(actualService.getSchemaRegistry(), expectedSchemaRegistry); | ||||||
|  |   } | ||||||
| } | } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Suresh Srinivas
						Suresh Srinivas