diff --git a/dagger-core/src/intTest/java/EsExternalPostProcessorIntegrationTest.java b/dagger-core/src/intTest/java/EsExternalPostProcessorIntegrationTest.java index 496137feb..aaeae2c3b 100644 --- a/dagger-core/src/intTest/java/EsExternalPostProcessorIntegrationTest.java +++ b/dagger-core/src/intTest/java/EsExternalPostProcessorIntegrationTest.java @@ -120,7 +120,7 @@ public void shouldPopulateFieldFromESOnSuccessResponse() throws Exception { " \"socket_timeout\": \"5000\",\n" + " \"retry_timeout\": \"5000\",\n" + " \"capacity\": \"30\",\n" + - " \"type\": \"com.gojek.esb.fraud.EnrichedBookingLogMessage\", \n" + + " \"type\": \"com.gojek..fraud.EnrichedBookingLogMessage\", \n" + " \"output_mapping\": {\n" + " \"customer_profile\": {\n" + " \"path\": \"$._source\"\n" + diff --git a/dagger-core/src/intTest/java/GrpcExternalPostProcessorIntegrationTest.java b/dagger-core/src/intTest/java/GrpcExternalPostProcessorIntegrationTest.java index dcc360e5d..be130b2d5 100644 --- a/dagger-core/src/intTest/java/GrpcExternalPostProcessorIntegrationTest.java +++ b/dagger-core/src/intTest/java/GrpcExternalPostProcessorIntegrationTest.java @@ -1,6 +1,6 @@ -import com.gojek.esb.consumer.TestGrpcRequest; -import com.gojek.esb.consumer.TestGrpcResponse; -import com.gojek.esb.consumer.TestServerGrpc; +import io.odpf.dagger.consumer.TestGrpcRequest; +import io.odpf.dagger.consumer.TestGrpcResponse; +import io.odpf.dagger.consumer.TestServerGrpc; import org.apache.flink.configuration.Configuration; import org.apache.flink.runtime.testutils.MiniClusterResourceConfiguration; import org.apache.flink.streaming.api.datastream.DataStream; @@ -50,7 +50,7 @@ public class GrpcExternalPostProcessorIntegrationTest { @Before public void setUp() { - String streams = "[{\"TOPIC_NAMES\":\"SG_GO_CAR-booking-log\",\"TABLE_NAME\":\"booking\",\"PROTO_CLASS_NAME\":\"com.gojek.esb.booking.BookingLogMessage\",\"EVENT_TIMESTAMP_FIELD_INDEX\":\"41\",\"KAFKA_CONSUMER_CONFIG_BOOTSTRAP_SERVERS\":\"10.200.216.49:6668,10.200.219.198:6668,10.200.216.58:6668,10.200.216.54:6668,10.200.216.56:6668,10.200.216.63:6668\",\"KAFKA_CONSUMER_CONFIG_AUTO_COMMIT_ENABLE\":\"\",\"KAFKA_CONSUMER_CONFIG_AUTO_OFFSET_RESET\":\"latest\",\"KAFKA_CONSUMER_CONFIG_GROUP_ID\":\"test-config\",\"STREAM_NAME\":\"p-godata-id-mainstream\"}]"; + String streams = "[{\"TOPIC_NAMES\":\"SG_GO_CAR-booking-log\",\"TABLE_NAME\":\"booking\",\"PROTO_CLASS_NAME\":\"io.odpf.dagger.booking.BookingLogMessage\",\"EVENT_TIMESTAMP_FIELD_INDEX\":\"41\",\"KAFKA_CONSUMER_CONFIG_BOOTSTRAP_SERVERS\":\"10.200.216.49:6668,10.200.219.198:6668,10.200.216.58:6668,10.200.216.54:6668,10.200.216.56:6668,10.200.216.63:6668\",\"KAFKA_CONSUMER_CONFIG_AUTO_COMMIT_ENABLE\":\"\",\"KAFKA_CONSUMER_CONFIG_AUTO_OFFSET_RESET\":\"latest\",\"KAFKA_CONSUMER_CONFIG_GROUP_ID\":\"test-config\",\"STREAM_NAME\":\"p-godata-id-mainstream\"}]"; configuration.setString(POST_PROCESSOR_ENABLED_KEY, "true"); configuration.setString(INPUT_STREAMS, streams); configuration.setString(STENCIL_ENABLE_KEY, "false"); @@ -74,9 +74,9 @@ public void shouldPopulateFieldFromGrpcOnSuccess() throws Exception { " \"fail_on_errors\": false,\n" + " \"retain_response_type\": true,\n" + " \"grpc_stencil_url\": \"http://localhost:8000/messages.desc\",\n" + - " \"grpc_request_proto_schema\": \"com.gojek.esb.consumer.TestGrpcRequest\",\n" + - " \"grpc_response_proto_schema\": \"com.gojek.esb.consumer.TestGrpcResponse\",\n" + - " \"grpc_method_url\": \"com.gojek.esb.consumer.TestServer/TestRpcMethod\",\n" + + " \"grpc_request_proto_schema\": \"io.odpf.dagger.consumer.TestGrpcRequest\",\n" + + " \"grpc_response_proto_schema\": \"io.odpf.dagger.consumer.TestGrpcResponse\",\n" + + " \"grpc_method_url\": \"io.odpf.dagger.consumer.TestServer/TestRpcMethod\",\n" + " \"capacity\": \"30\",\n" + " \"headers\": {\n" + " \"content-type\": \"application/json\" \n" + @@ -141,9 +141,9 @@ public void shouldPopulateFieldFromGrpcOnSuccessWithExternalAndInternalSource() " \"fail_on_errors\": false,\n" + " \"retain_response_type\": true,\n" + " \"grpc_stencil_url\": \"http://localhost:8000/messages.desc\",\n" + - " \"grpc_request_proto_schema\": \"com.gojek.esb.consumer.TestGrpcRequest\",\n" + - " \"grpc_response_proto_schema\": \"com.gojek.esb.consumer.TestGrpcResponse\",\n" + - " \"grpc_method_url\": \"com.gojek.esb.consumer.TestServer/TestRpcMethod\",\n" + + " \"grpc_request_proto_schema\": \"io.odpf.dagger.consumer.TestGrpcRequest\",\n" + + " \"grpc_response_proto_schema\": \"io.odpf.dagger.consumer.TestGrpcResponse\",\n" + + " \"grpc_method_url\": \"io.odpf.dagger.consumer.TestServer/TestRpcMethod\",\n" + " \"capacity\": \"30\",\n" + " \"output_mapping\": {\n" + " \"field3\": {\n" + @@ -223,9 +223,9 @@ public void shouldPopulateFieldFromGrpcOnSuccessWithAllThreeSourcesIncludingTran " \"fail_on_errors\": false,\n" + " \"retain_response_type\": true,\n" + " \"grpc_stencil_url\": \"http://localhost:8000/messages.desc\",\n" + - " \"grpc_request_proto_schema\": \"com.gojek.esb.consumer.TestGrpcRequest\",\n" + - " \"grpc_response_proto_schema\": \"com.gojek.esb.consumer.TestGrpcResponse\",\n" + - " \"grpc_method_url\": \"com.gojek.esb.consumer.TestServer/TestRpcMethod\",\n" + + " \"grpc_request_proto_schema\": \"io.odpf.dagger.consumer.TestGrpcRequest\",\n" + + " \"grpc_response_proto_schema\": \"io.odpf.dagger.consumer.TestGrpcResponse\",\n" + + " \"grpc_method_url\": \"io.odpf.dagger.consumer.TestServer/TestRpcMethod\",\n" + " \"capacity\": \"30\",\n" + " \"output_mapping\": {\n" + " \"field3\": {\n" + diff --git a/dagger-core/src/test/java/io/odpf/dagger/config/system/EnvironmentConfigurationProviderTest.java b/dagger-core/src/test/java/io/odpf/dagger/config/system/EnvironmentConfigurationProviderTest.java index bbe4acda9..519a4f751 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/config/system/EnvironmentConfigurationProviderTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/config/system/EnvironmentConfigurationProviderTest.java @@ -1,6 +1,6 @@ package io.odpf.dagger.config.system; -import com.gojek.daggers.config.EnvironmentConfigurationProvider; +import io.odpf.dagger.config.EnvironmentConfigurationProvider; import org.apache.flink.configuration.Configuration; import org.junit.Test; import org.junit.runner.RunWith; diff --git a/dagger-core/src/test/java/io/odpf/dagger/config/system/FileConfigurationProvideTest.java b/dagger-core/src/test/java/io/odpf/dagger/config/system/FileConfigurationProvideTest.java index c76c0d54d..f908d8b22 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/config/system/FileConfigurationProvideTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/config/system/FileConfigurationProvideTest.java @@ -1,7 +1,6 @@ package io.odpf.dagger.config.system; -import com.gojek.daggers.config.EnvironmentConfigurationProvider; -import com.gojek.daggers.config.FileConfigurationProvider; +import io.odpf.dagger.config.FileConfigurationProvider; import org.apache.flink.configuration.Configuration; import org.junit.Test; diff --git a/dagger-core/src/test/java/io/odpf/dagger/core/StencilClientOrchestratorTest.java b/dagger-core/src/test/java/io/odpf/dagger/core/StencilClientOrchestratorTest.java index 24567ccee..c3c8b5697 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/core/StencilClientOrchestratorTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/core/StencilClientOrchestratorTest.java @@ -53,9 +53,9 @@ public void shouldReturnMultiURLStencilClient() throws NoSuchFieldException, Ill when(configuration.getString(STENCIL_CONFIG_TTL_IN_MINUTES_KEY, STENCIL_CONFIG_TTL_IN_MINUTES_DEFAULT)).thenReturn("30"); when(configuration.getString(STENCIL_CONFIG_TIMEOUT_MS_KEY, STENCIL_CONFIG_TIMEOUT_MS_DEFAULT)).thenReturn(STENCIL_CONFIG_TIMEOUT_MS_DEFAULT); when(configuration.getBoolean(STENCIL_ENABLE_KEY, STENCIL_ENABLE_DEFAULT)).thenReturn(true); - when(configuration.getString(STENCIL_URL_KEY, STENCIL_URL_DEFAULT)).thenReturn("http://artifactory-gojek.golabs.io/artifactory/proto-descriptors/esb-log-entities/latest," + - "http://artifactory-gojek.golabs.io/artifactory/proto-descriptors/goid-events/latest," + - "http://artifactory-gojek.golabs.io/artifactory/proto-descriptors/growth-log-entities/release"); + when(configuration.getString(STENCIL_URL_KEY, STENCIL_URL_DEFAULT)).thenReturn("http://localhost/latest," + + "http://localhost/events/latest," + + "http://localhost/entities/release"); StencilClientOrchestrator stencilClientOrchestrator = new StencilClientOrchestrator(configuration); stencilClient = stencilClientOrchestrator.getStencilClient(); @@ -71,13 +71,13 @@ public void shouldEnrichStencilClient() throws NoSuchFieldException, IllegalAcce when(configuration.getString(STENCIL_CONFIG_TTL_IN_MINUTES_KEY, STENCIL_CONFIG_TTL_IN_MINUTES_DEFAULT)).thenReturn("30"); when(configuration.getString(STENCIL_CONFIG_TIMEOUT_MS_KEY, STENCIL_CONFIG_TIMEOUT_MS_DEFAULT)).thenReturn(STENCIL_CONFIG_TIMEOUT_MS_DEFAULT); when(configuration.getBoolean(STENCIL_ENABLE_KEY, STENCIL_ENABLE_DEFAULT)).thenReturn(true); - when(configuration.getString(STENCIL_URL_KEY, STENCIL_URL_DEFAULT)).thenReturn("http://artifactory-gojek.golabs.io/artifactory/proto-descriptors/esb-log-entities/latest,"); + when(configuration.getString(STENCIL_URL_KEY, STENCIL_URL_DEFAULT)).thenReturn("http://localhost/latest,"); StencilClientOrchestrator stencilClientOrchestrator = new StencilClientOrchestrator(configuration); StencilClient oldStencilClient = stencilClientOrchestrator.getStencilClient(); List enrichmentStencilURLs = Collections - .singletonList("http://stencil.golabs.io/artifactory/proto-descriptors/feast-proto/latest"); + .singletonList("http://localhost/latest"); Assert.assertSame(oldStencilClient, stencilClientOrchestrator.getStencilClient()); @@ -99,7 +99,7 @@ public void shouldNotEnrichIfNoNewAdditionalURLsAdded() throws NoSuchFieldExcept when(configuration.getString(STENCIL_CONFIG_TTL_IN_MINUTES_KEY, STENCIL_CONFIG_TTL_IN_MINUTES_DEFAULT)).thenReturn("30"); when(configuration.getString(STENCIL_CONFIG_TIMEOUT_MS_KEY, STENCIL_CONFIG_TIMEOUT_MS_DEFAULT)).thenReturn(STENCIL_CONFIG_TIMEOUT_MS_DEFAULT); when(configuration.getBoolean(STENCIL_ENABLE_KEY, STENCIL_ENABLE_DEFAULT)).thenReturn(true); - when(configuration.getString(STENCIL_URL_KEY, STENCIL_URL_DEFAULT)).thenReturn("http://artifactory-gojek.golabs.io/artifactory/proto-descriptors/esb-log-entities/latest,"); + when(configuration.getString(STENCIL_URL_KEY, STENCIL_URL_DEFAULT)).thenReturn("http://localhost/latest,"); StencilClientOrchestrator stencilClientOrchestrator = new StencilClientOrchestrator(configuration); StencilClient oldStencilClient = stencilClientOrchestrator.getStencilClient(); @@ -130,7 +130,7 @@ public void shouldReturnClassLoadStencilClientWhenStencilDisabledAndEnrichmentSt StencilClientOrchestrator stencilClientOrchestrator = new StencilClientOrchestrator(configuration); List enrichmentStencilURLs = Collections - .singletonList("http://stencil.golabs.io/artifactory/proto-descriptors/feast-proto/latest"); + .singletonList("http://localhost/latest"); StencilClient stencilClient = stencilClientOrchestrator.enrichStencilClient(enrichmentStencilURLs); diff --git a/dagger-core/src/test/java/io/odpf/dagger/core/StreamManagerTest.java b/dagger-core/src/test/java/io/odpf/dagger/core/StreamManagerTest.java index 49d76137a..c6c2c0fb1 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/core/StreamManagerTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/core/StreamManagerTest.java @@ -46,9 +46,9 @@ public class StreamManagerTest { + " \"EVENT_TIMESTAMP_FIELD_INDEX\": \"4\",\n" + " \"KAFKA_CONSUMER_CONFIG_AUTO_COMMIT_ENABLE\": \"false\",\n" + " \"KAFKA_CONSUMER_CONFIG_AUTO_OFFSET_RESET\": \"latest\",\n" - + " \"KAFKA_CONSUMER_CONFIG_BOOTSTRAP_SERVERS\": \"p-esb-kafka-mirror-b-01:6667\",\n" + + " \"KAFKA_CONSUMER_CONFIG_BOOTSTRAP_SERVERS\": \"localhost:6667\",\n" + " \"KAFKA_CONSUMER_CONFIG_GROUP_ID\": \"flink-sql-flud-gp0330\",\n" - + " \"PROTO_CLASS_NAME\": \"com.gojek.esb.booking.BookingLogMessage\",\n" + + " \"PROTO_CLASS_NAME\": \"io.odpf.dagger.consumer.TestBookingLogMessage\",\n" + " \"TABLE_NAME\": \"data_stream\",\n" + " \"TOPIC_NAMES\": \"GO_RIDE-booking-log\"\n" + " }\n" diff --git a/dagger-core/src/test/java/io/odpf/dagger/core/StreamsTest.java b/dagger-core/src/test/java/io/odpf/dagger/core/StreamsTest.java index 1640dd154..fe20c2497 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/core/StreamsTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/core/StreamsTest.java @@ -44,9 +44,9 @@ public void shouldTakeAJSONArrayWithSingleObject() { + " \"EVENT_TIMESTAMP_FIELD_INDEX\": \"4\",\n" + " \"KAFKA_CONSUMER_CONFIG_AUTO_COMMIT_ENABLE\": \"false\",\n" + " \"KAFKA_CONSUMER_CONFIG_AUTO_OFFSET_RESET\": \"latest\",\n" - + " \"KAFKA_CONSUMER_CONFIG_BOOTSTRAP_SERVERS\": \"p-esb-kafka-mirror-b-01:6667\",\n" + + " \"KAFKA_CONSUMER_CONFIG_BOOTSTRAP_SERVERS\": \"localhost:6667\",\n" + " \"KAFKA_CONSUMER_CONFIG_GROUP_ID\": \"flink-sql-flud-gp0330\",\n" - + " \"PROTO_CLASS_NAME\": \"com.gojek.esb.booking.BookingLogMessage\",\n" + + " \"PROTO_CLASS_NAME\": \"io.odpf.dagger.consumer.TestBookingLogMessage\",\n" + " \"TABLE_NAME\": \"data_stream\",\n" + " \"TOPIC_NAMES\": \"GO_RIDE-booking-log\"\n" + " }\n" @@ -66,9 +66,9 @@ public void shouldAddTopicsStreamsAndProtosToMetrics() { + " \"EVENT_TIMESTAMP_FIELD_INDEX\": \"4\",\n" + " \"KAFKA_CONSUMER_CONFIG_AUTO_COMMIT_ENABLE\": \"false\",\n" + " \"KAFKA_CONSUMER_CONFIG_AUTO_OFFSET_RESET\": \"latest\",\n" - + " \"KAFKA_CONSUMER_CONFIG_BOOTSTRAP_SERVERS\": \"p-esb-kafka-mirror-b-01:6667\",\n" + + " \"KAFKA_CONSUMER_CONFIG_BOOTSTRAP_SERVERS\": \"localhost:6667\",\n" + " \"KAFKA_CONSUMER_CONFIG_GROUP_ID\": \"flink-sql-flud-gp0330\",\n" - + " \"PROTO_CLASS_NAME\": \"com.gojek.esb.booking.BookingLogMessage\",\n" + + " \"PROTO_CLASS_NAME\": \"io.odpf.dagger.consumer.TestBookingLogMessage\",\n" + " \"TABLE_NAME\": \"data_stream\",\n" + " \"TOPIC_NAMES\": \"GO_RIDE-booking-log\"\n" + " }\n" @@ -77,7 +77,7 @@ public void shouldAddTopicsStreamsAndProtosToMetrics() { ArrayList topicNames = new ArrayList<>(); topicNames.add("GO_RIDE-booking-log"); ArrayList protoName = new ArrayList<>(); - protoName.add("com.gojek.esb.booking.BookingLogMessage"); + protoName.add("io.odpf.dagger.consumer.TestBookingLogMessage"); ArrayList streamName = new ArrayList<>(); streamName.add(""); HashMap> metrics = new HashMap<>(); @@ -103,9 +103,9 @@ public void shouldAddTopicsStreamsAndProtosToMetricsInCaseOfJoins() { + " \"EVENT_TIMESTAMP_FIELD_INDEX\": \"4\",\n" + " \"KAFKA_CONSUMER_CONFIG_AUTO_COMMIT_ENABLE\": \"false\",\n" + " \"KAFKA_CONSUMER_CONFIG_AUTO_OFFSET_RESET\": \"latest\",\n" - + " \"KAFKA_CONSUMER_CONFIG_BOOTSTRAP_SERVERS\": \"p-esb-kafka-mirror-b-01:6667\",\n" + + " \"KAFKA_CONSUMER_CONFIG_BOOTSTRAP_SERVERS\": \"localhost:6667\",\n" + " \"KAFKA_CONSUMER_CONFIG_GROUP_ID\": \"flink-sql-flud-gp0330\",\n" - + " \"PROTO_CLASS_NAME\": \"com.gojek.esb.booking.BookingLogMessage\",\n" + + " \"PROTO_CLASS_NAME\": \"io.odpf.dagger.consumer.TestBookingLogMessage\",\n" + " \"TABLE_NAME\": \"data_stream\",\n" + " \"STREAM_NAME\": \"mainstream\",\n" + " \"TOPIC_NAMES\": \"GO_RIDE-booking-log\"\n" @@ -114,9 +114,9 @@ public void shouldAddTopicsStreamsAndProtosToMetricsInCaseOfJoins() { + " \"EVENT_TIMESTAMP_FIELD_INDEX\": \"1\",\n" + " \"KAFKA_CONSUMER_CONFIG_AUTO_COMMIT_ENABLE\": \"false\",\n" + " \"KAFKA_CONSUMER_CONFIG_AUTO_OFFSET_RESET\": \"latest\",\n" - + " \"KAFKA_CONSUMER_CONFIG_BOOTSTRAP_SERVERS\": \"p-esb-kafka-mirror-b-01:6667\",\n" + + " \"KAFKA_CONSUMER_CONFIG_BOOTSTRAP_SERVERS\": \"localhost:6667\",\n" + " \"KAFKA_CONSUMER_CONFIG_GROUP_ID\": \"flink-sql-flud-gp0330\",\n" - + " \"PROTO_CLASS_NAME\": \"com.gojek.esb.aggregate.surge.SurgeFactorLogMessage\",\n" + + " \"PROTO_CLASS_NAME\": \"io.odpf.dagger.consumer.TestBookingLogKey\",\n" + " \"TABLE_NAME\": \"data_stream_1\",\n" + " \"STREAM_NAME\": \"locstream\",\n" + " \"TOPIC_NAMES\": \"surge-s2idcluster-log\"\n" @@ -127,8 +127,8 @@ public void shouldAddTopicsStreamsAndProtosToMetricsInCaseOfJoins() { topicNames.add("GO_RIDE-booking-log"); topicNames.add("surge-s2idcluster-log"); ArrayList protoName = new ArrayList<>(); - protoName.add("com.gojek.esb.booking.BookingLogMessage"); - protoName.add("com.gojek.esb.aggregate.surge.SurgeFactorLogMessage"); + protoName.add("io.odpf.dagger.consumer.TestBookingLogMessage"); + protoName.add("io.odpf.dagger.consumer.TestBookingLogKey"); ArrayList streamName = new ArrayList<>(); streamName.add("mainstream"); streamName.add("locstream"); @@ -155,16 +155,16 @@ public void shouldReturnProtoClassName() { + " \"EVENT_TIMESTAMP_FIELD_INDEX\": \"4\",\n" + " \"KAFKA_CONSUMER_CONFIG_AUTO_COMMIT_ENABLE\": \"false\",\n" + " \"KAFKA_CONSUMER_CONFIG_AUTO_OFFSET_RESET\": \"latest\",\n" - + " \"KAFKA_CONSUMER_CONFIG_BOOTSTRAP_SERVERS\": \"p-esb-kafka-mirror-b-01:6667\",\n" + + " \"KAFKA_CONSUMER_CONFIG_BOOTSTRAP_SERVERS\": \"localhost:6667\",\n" + " \"KAFKA_CONSUMER_CONFIG_GROUP_ID\": \"flink-sql-flud-gp0330\",\n" - + " \"PROTO_CLASS_NAME\": \"com.gojek.esb.booking.BookingLogMessage\",\n" + + " \"PROTO_CLASS_NAME\": \"io.odpf.dagger.consumer.TestBookingLogMessage\",\n" + " \"TABLE_NAME\": \"data_stream\",\n" + " \"TOPIC_NAMES\": \"GO_RIDE-booking-log\"\n" + " }\n" + "]"; LinkedHashMap protoClassForTable = new LinkedHashMap<>(); - protoClassForTable.put("data_stream", "com.gojek.esb.booking.BookingLogMessage"); + protoClassForTable.put("data_stream", "io.odpf.dagger.consumer.TestBookingLogMessage"); configuration = new Configuration(); configuration.setString("STREAMS", configString); diff --git a/dagger-core/src/test/java/io/odpf/dagger/processors/PreProcessorFactoryTest.java b/dagger-core/src/test/java/io/odpf/dagger/processors/PreProcessorFactoryTest.java index 35c754dca..cf36095b0 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/processors/PreProcessorFactoryTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/processors/PreProcessorFactoryTest.java @@ -35,9 +35,9 @@ public class PreProcessorFactoryTest { " \"table_transformers\": [{\n" + " \"table_name\": \"booking\",\n" + " \"transformers\": [{\n" + - " \"transformation_class\": \"com.gojek.daggers.PreProcessorClass\"\n" + + " \"transformation_class\": \"PreProcessorClass\"\n" + " }, {\n" + - " \"transformation_class\": \"com.gojek.daggers.PreProcessorClass\",\n" + + " \"transformation_class\": \"PreProcessorClass\",\n" + " \"transformation_arguments\": {\n" + " \"key\": \"value\"\n" + " }\n" + @@ -46,7 +46,7 @@ public class PreProcessorFactoryTest { " {\n" + " \"table_name\": \"another_booking\",\n" + " \"transformers\": [{\n" + - " \"transformation_class\": \"com.gojek.daggers.PreProcessorClass\"\n" + + " \"transformation_class\": \"PreProcessorClass\"\n" + " }]\n" + " }\n" + " ]\n" + @@ -74,7 +74,7 @@ public void shouldParseConfig() { PreProcessorConfig preProcessorConfig = PreProcessorFactory.parseConfig(configuration); Assert.assertEquals(2, preProcessorConfig.getTableTransformers().size()); Assert.assertEquals(2, preProcessorConfig.getTableTransformers().get(0).getTransformers().size()); - Assert.assertEquals("com.gojek.daggers.PreProcessorClass", preProcessorConfig.getTableTransformers().get(0).getTransformers().get(0).getTransformationClass()); + Assert.assertEquals("PreProcessorClass", preProcessorConfig.getTableTransformers().get(0).getTransformers().get(0).getTransformationClass()); } @Test diff --git a/dagger-core/src/test/java/io/odpf/dagger/processors/PreProcessorOrchestratorTest.java b/dagger-core/src/test/java/io/odpf/dagger/processors/PreProcessorOrchestratorTest.java index b85e2e4c5..ba86c2480 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/processors/PreProcessorOrchestratorTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/processors/PreProcessorOrchestratorTest.java @@ -43,7 +43,7 @@ public void shouldGetProcessors() { Configuration configuration = new Configuration(); PreProcessorConfig config = new PreProcessorConfig(); List transformConfigs = new ArrayList<>(); - transformConfigs.add(new TransformConfig("com.gojek.dagger.transformer.filter.InvalidRecordFilterTransformer", new HashMap<>())); + transformConfigs.add(new TransformConfig("InvalidRecordFilterTransformer", new HashMap<>())); TableTransformConfig ttc = new TableTransformConfig("test", transformConfigs); config.tableTransformers = Collections.singletonList(ttc); PreProcessorOrchestrator ppo = new PreProcessorOrchestrator(configuration, config, exporter, "test"); diff --git a/dagger-core/src/test/java/io/odpf/dagger/processors/common/DescriptorManagerTest.java b/dagger-core/src/test/java/io/odpf/dagger/processors/common/DescriptorManagerTest.java index 110a7cd0c..a50e8ded6 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/processors/common/DescriptorManagerTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/processors/common/DescriptorManagerTest.java @@ -1,10 +1,10 @@ package io.odpf.dagger.processors.common; +import io.odpf.dagger.consumer.TestBookingLogMessage; import io.odpf.dagger.core.StencilClientOrchestrator; import io.odpf.dagger.exception.DescriptorNotFoundException; import com.gojek.de.stencil.StencilClientFactory; import com.gojek.de.stencil.client.StencilClient; -import com.gojek.esb.booking.GoFoodBookingLogMessage; import com.google.protobuf.Descriptors; import org.junit.Assert; import org.junit.Before; @@ -40,20 +40,20 @@ public void shouldReturnValidDescriptors() { when(stencilClientOrchestrator.getStencilClient()).thenReturn(stencilClient); DescriptorManager descriptorManager = new DescriptorManager(stencilClientOrchestrator); Descriptors.Descriptor descriptor = descriptorManager - .getDescriptor("com.gojek.esb.booking.GoFoodBookingLogMessage"); + .getDescriptor("io.odpf.dagger.consumer.TestBookingLogMessage"); - Assert.assertEquals(GoFoodBookingLogMessage.getDescriptor(), descriptor); + Assert.assertEquals(TestBookingLogMessage.getDescriptor(), descriptor); } @Test public void shouldReturnValidDescriptorsInCaseOfEnrichment() { - List grpcSpecificStencilURLs = Collections.singletonList("http://artifactory-gojek.golabs.io/artifactory/proto-descriptors/esb-log-entities/latest"); + List grpcSpecificStencilURLs = Collections.singletonList("http://localhost/url"); when(stencilClientOrchestrator.enrichStencilClient(grpcSpecificStencilURLs)).thenReturn(stencilClient); DescriptorManager descriptorManager = new DescriptorManager(stencilClientOrchestrator, grpcSpecificStencilURLs); Descriptors.Descriptor descriptor = descriptorManager - .getDescriptor("com.gojek.esb.booking.GoFoodBookingLogMessage"); + .getDescriptor("io.odpf.dagger.consumer.TestBookingLogMessage"); - Assert.assertEquals(GoFoodBookingLogMessage.getDescriptor(), descriptor); + Assert.assertEquals(TestBookingLogMessage.getDescriptor(), descriptor); } @Test diff --git a/dagger-core/src/test/java/io/odpf/dagger/processors/common/EndpointHandlerTest.java b/dagger-core/src/test/java/io/odpf/dagger/processors/common/EndpointHandlerTest.java index b1e745819..4d4a59e5d 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/processors/common/EndpointHandlerTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/processors/common/EndpointHandlerTest.java @@ -1,5 +1,6 @@ package io.odpf.dagger.processors.common; +import io.odpf.dagger.consumer.TestEnumType; import io.odpf.dagger.metrics.aspects.ExternalSourceAspects; import io.odpf.dagger.processors.types.SourceConfig; import org.apache.flink.streaming.api.functions.async.ResultFuture; @@ -13,7 +14,6 @@ import io.odpf.dagger.processors.ColumnNameManager; import com.gojek.de.stencil.StencilClientFactory; import com.gojek.de.stencil.client.StencilClient; -import com.gojek.esb.types.GoFoodPaymentActionProto.GoFoodPaymentAction.Enum; import org.junit.Assert; import org.junit.Before; import org.junit.Rule; @@ -26,7 +26,6 @@ import java.util.Collections; import java.util.List; -import static com.gojek.esb.types.GoFoodPaymentActionProto.GoFoodPaymentAction.Enum.UNKNOWN; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; @@ -63,7 +62,7 @@ public void setup() { initMocks(this); StencilClient stencilClient = StencilClientFactory.getClient(); Mockito.when(stencilClientOrchestrator.getStencilClient()).thenReturn(stencilClient); - inputProtoClasses = new String[]{"com.gojek.esb.booking.GoFoodBookingLogMessage"}; + inputProtoClasses = new String[]{"io.odpf.dagger.consumer.TestBookingLogMessage"}; descriptorManager = new DescriptorManager(stencilClientOrchestrator); } @@ -106,16 +105,16 @@ public void shouldReturnEndpointQueryVariableValuesForPrimitiveDataIfInputColumn } @Test - public void shouldReturnJsonValueOfEndpointQueryValuesIncaseOfArray() { - Mockito.when(sourceConfig.getVariables()).thenReturn("payment_actions"); + public void shouldReturnJsonValueOfEndpointQueryValuesInCaseOfArray() { + Mockito.when(sourceConfig.getVariables()).thenReturn("test_enums"); Row row = new Row(2); Row inputData = new Row(2); List experimentsRow = new ArrayList<>(); Row row1 = new Row(1); - row1.setField(0, UNKNOWN); + row1.setField(0, TestEnumType.Enum.UNKNOWN); Row row2 = new Row(1); - row2.setField(0, Enum.REFUND_CUSTOMER); + row2.setField(0, TestEnumType.Enum.TYPE1); experimentsRow.add(row1); experimentsRow.add(row2); @@ -126,11 +125,11 @@ public void shouldReturnJsonValueOfEndpointQueryValuesIncaseOfArray() { RowManager rowManager = new RowManager(row); endpointHandler = new EndpointHandler(sourceConfig, meterStatsManager, errorReporter, - inputProtoClasses, getColumnNameManager(new String[]{"order_number", "payment_actions"}), descriptorManager); + inputProtoClasses, getColumnNameManager(new String[]{"order_number", "test_enums"}), descriptorManager); Object[] endpointOrQueryVariablesValues = endpointHandler .getEndpointOrQueryVariablesValues(rowManager, resultFuture); - Assert.assertArrayEquals(endpointOrQueryVariablesValues, new Object[]{"[\"UNKNOWN\",\"REFUND_CUSTOMER\"]"}); + Assert.assertArrayEquals(new Object[]{"[\"UNKNOWN\",\"TYPE1\"]"}, endpointOrQueryVariablesValues); } @Test @@ -161,7 +160,7 @@ public void shouldReturnJsonValueOfEndpointQueryValuesIncaseOfComplexDatatype() @Test public void shouldReturnEndpointQueryVariableValuesForPrimitiveDataFromDescriptorInCaseOfMultipleStreams() { Mockito.when(sourceConfig.getVariables()).thenReturn("customer_id"); - inputProtoClasses = new String[]{"com.gojek.esb.fraud.EnrichedBookingLogMessage", "com.gojek.esb.booking.GoFoodBookingLogMessage"}; + inputProtoClasses = new String[]{"io.odpf.dagger.consumer.TestBookingLogMessage", "io.odpf.dagger.consumer.TestBookingLogMessage"}; Row row = new Row(2); Row inputData = new Row(2); @@ -181,7 +180,7 @@ public void shouldReturnEndpointQueryVariableValuesForPrimitiveDataFromDescripto @Test public void shouldInferEndpointVariablesFromTheCorrectStreams() { Mockito.when(sourceConfig.getVariables()).thenReturn("order_number,customer_url"); - inputProtoClasses = new String[]{"com.gojek.esb.customer.CustomerLogMessage", "com.gojek.esb.booking.GoFoodBookingLogMessage"}; + inputProtoClasses = new String[]{"io.odpf.dagger.consumer.TestBookingLogMessage", "io.odpf.dagger.consumer.TestBookingLogMessage"}; Row row = new Row(2); Row inputData = new Row(2); @@ -202,7 +201,7 @@ public void shouldInferEndpointVariablesFromTheCorrectStreams() { @Test public void shouldReturnEmptyObjectIfNoQueryVariables() { Mockito.when(sourceConfig.getVariables()).thenReturn(""); - inputProtoClasses = new String[]{"com.gojek.esb.customer.CustomerLogMessage", "com.gojek.esb.booking.GoFoodBookingLogMessage"}; + inputProtoClasses = new String[]{"io.odpf.dagger.consumer.TestBookingLogMessage", "io.odpf.dagger.consumer.TestBookingLogMessage"}; Row row = new Row(2); Row inputData = new Row(2); @@ -226,7 +225,7 @@ public void shouldThrowErrorIfVariablesAreNotProperlyConfigures() { expectedException.expectMessage("Column 'czx' not found as configured in the endpoint/query variable"); Mockito.when(sourceConfig.getVariables()).thenReturn("czx"); - inputProtoClasses = new String[]{"com.gojek.esb.customer.CustomerLogMessage", "com.gojek.esb.booking.GoFoodBookingLogMessage"}; + inputProtoClasses = new String[]{"io.odpf.dagger.consumer.TestBookingLogMessage", "io.odpf.dagger.consumer.TestBookingLogMessage"}; Row row = new Row(2); Row inputData = new Row(2); @@ -247,7 +246,7 @@ public void shouldThrowErrorIfVariablesAreNotProperlyConfigures() { @Test public void shouldThrowErrorIfInputProtoNotFound() { Mockito.when(sourceConfig.getVariables()).thenReturn("driver_pickup_location"); - inputProtoClasses = new String[]{"com.gojek.esb.booking.GoFoodBookingLogMessageTest"}; + inputProtoClasses = new String[]{"io.odpf.dagger.consumer.TestBookingLogMessage1"}; Row row = new Row(2); Row inputData = new Row(2); diff --git a/dagger-core/src/test/java/io/odpf/dagger/processors/common/FetchOutputDecoratorTest.java b/dagger-core/src/test/java/io/odpf/dagger/processors/common/FetchOutputDecoratorTest.java index f381bf06c..ec5b23007 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/processors/common/FetchOutputDecoratorTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/processors/common/FetchOutputDecoratorTest.java @@ -1,10 +1,10 @@ package io.odpf.dagger.processors.common; +import io.odpf.dagger.consumer.TestBookingLogMessage; import io.odpf.dagger.core.StencilClientOrchestrator; import io.odpf.dagger.processors.ColumnNameManager; import io.odpf.dagger.processors.external.SchemaConfig; import com.gojek.de.stencil.client.StencilClient; -import com.gojek.esb.booking.BookingLogMessage; import org.apache.flink.api.common.functions.MapFunction; import org.apache.flink.api.common.typeinfo.TypeInformation; import org.apache.flink.api.common.typeinfo.Types; @@ -47,12 +47,12 @@ public class FetchOutputDecoratorTest { public void setup() { initMocks(this); outputColumnNames = new String[]{"order_number", "service_type"}; - when(schemaConfig.getOutputProtoClassName()).thenReturn("com.gojek.esb.booking.BookingLogMessage"); + when(schemaConfig.getOutputProtoClassName()).thenReturn("TestProtoClass"); when(schemaConfig.getStencilClientOrchestrator()).thenReturn(stencilClientOrchestrator); when(schemaConfig.getColumnNameManager()).thenReturn(columnNameManager); when(columnNameManager.getOutputColumnNames()).thenReturn(outputColumnNames); when(stencilClientOrchestrator.getStencilClient()).thenReturn(stencilClient); - when(stencilClient.get("com.gojek.esb.booking.BookingLogMessage")).thenReturn(BookingLogMessage.getDescriptor()); + when(stencilClient.get("TestProtoClass")).thenReturn(TestBookingLogMessage.getDescriptor()); } @@ -103,7 +103,7 @@ public void shouldDecorateStreamAndReturnTypesIfAllFieldsInOutputProtoIfSqlProce @Test public void shouldDecorateStreamAndReturnTypesAsObjectIfDescriptorNullIfSqlProcessorEnabled() { - when(stencilClient.get("com.gojek.esb.booking.BookingLogMessage")).thenReturn(null); + when(stencilClient.get("TestProtoClass")).thenReturn(null); when(inputDataStream.map(any(MapFunction.class))).thenReturn(outputDataStream); FetchOutputDecorator fetchOutputDecorator = new FetchOutputDecorator(schemaConfig, true); fetchOutputDecorator.decorate(inputDataStream); diff --git a/dagger-core/src/test/java/io/odpf/dagger/processors/common/ValidRecordsDecoratorTest.java b/dagger-core/src/test/java/io/odpf/dagger/processors/common/ValidRecordsDecoratorTest.java index c765f0a35..c9c3987f6 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/processors/common/ValidRecordsDecoratorTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/processors/common/ValidRecordsDecoratorTest.java @@ -1,10 +1,10 @@ package io.odpf.dagger.processors.common; +import io.odpf.dagger.consumer.TestBookingLogMessage; import io.odpf.dagger.core.StencilClientOrchestrator; import io.odpf.dagger.metrics.reporters.ErrorReporter; import io.odpf.dagger.processors.types.FilterDecorator; import io.odpf.dagger.source.ProtoDeserializer; -import com.gojek.esb.booking.BookingLogMessage; import com.google.protobuf.Descriptors; import com.google.protobuf.InvalidProtocolBufferException; import org.apache.flink.configuration.Configuration; @@ -46,7 +46,7 @@ public void setUp() { } private String[] getColumns() { - List fields = BookingLogMessage.getDescriptor() + List fields = TestBookingLogMessage.getDescriptor() .getFields() .stream() .map(Descriptors.FieldDescriptor::getName).collect(Collectors.toList()); @@ -59,7 +59,7 @@ private String[] getColumns() { public void shouldThrowExceptionWithBadRecord() throws Exception { expectedException.expectMessage("Bad Record Encountered for table `test`"); expectedException.expect(InvalidProtocolBufferException.class); - ProtoDeserializer protoDeserializer = new ProtoDeserializer(BookingLogMessage.class.getName(), 5, "rowtime", stencilClientOrchestrator); + ProtoDeserializer protoDeserializer = new ProtoDeserializer(TestBookingLogMessage.class.getName(), 5, "rowtime", stencilClientOrchestrator); ConsumerRecord consumerRecord = new ConsumerRecord<>("test-topic", 0, 0, null, "test".getBytes()); Row invalidRow = protoDeserializer.deserialize(consumerRecord); ValidRecordsDecorator filter = new ValidRecordsDecorator("test", getColumns()); @@ -69,8 +69,8 @@ public void shouldThrowExceptionWithBadRecord() throws Exception { @Test public void shouldReturnTrueForCorrectRecord() throws Exception { - ProtoDeserializer protoDeserializer = new ProtoDeserializer(BookingLogMessage.class.getName(), 5, "rowtime", stencilClientOrchestrator); - ConsumerRecord consumerRecord = new ConsumerRecord<>("test-topic", 0, 0, null, BookingLogMessage.newBuilder().build().toByteArray()); + ProtoDeserializer protoDeserializer = new ProtoDeserializer(TestBookingLogMessage.class.getName(), 5, "rowtime", stencilClientOrchestrator); + ConsumerRecord consumerRecord = new ConsumerRecord<>("test-topic", 0, 0, null, TestBookingLogMessage.newBuilder().build().toByteArray()); Row validRow = protoDeserializer.deserialize(consumerRecord); FilterDecorator filter = new ValidRecordsDecorator("test", getColumns()); Assert.assertTrue(filter.filter(validRow)); diff --git a/dagger-core/src/test/java/io/odpf/dagger/processors/external/ExternalPostProcessorTest.java b/dagger-core/src/test/java/io/odpf/dagger/processors/external/ExternalPostProcessorTest.java index d58a1d79b..23c734175 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/processors/external/ExternalPostProcessorTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/processors/external/ExternalPostProcessorTest.java @@ -1,6 +1,7 @@ package io.odpf.dagger.processors.external; import io.odpf.dagger.common.core.StreamInfo; +import io.odpf.dagger.consumer.TestBookingLogMessage; import io.odpf.dagger.core.StencilClientOrchestrator; import io.odpf.dagger.metrics.telemetry.TelemetrySubscriber; import io.odpf.dagger.processors.PostProcessorConfig; @@ -11,7 +12,6 @@ import io.odpf.dagger.processors.external.http.HttpSourceConfig; import io.odpf.dagger.processors.external.http.HttpStreamDecorator; import com.gojek.de.stencil.client.StencilClient; -import com.gojek.esb.aggregate.surge.SurgeFactorLogMessage; import org.apache.flink.configuration.Configuration; import org.apache.flink.streaming.api.datastream.DataStream; import org.junit.Before; @@ -89,7 +89,7 @@ public void setup() { "345", "456", false, new HashMap<>(), "metricId_01", false); ExternalSourceConfig externalSourceConfig = new ExternalSourceConfig(Arrays.asList(httpSourceConfig), Arrays.asList(esSourceConfig), new ArrayList<>(), new ArrayList<>()); when(stencilClientOrchestrator.getStencilClient()).thenReturn(stencilClient); - when(stencilClient.get("com.gojek.esb.aggregate.surge.SurgeFactorLogMessage")).thenReturn(SurgeFactorLogMessage.getDescriptor()); + when(stencilClient.get("TestLogMessage")).thenReturn(TestBookingLogMessage.getDescriptor()); when(httpStreamDecorator.decorate(dataStream)).thenReturn(dataStream); when(configuration.getString(ASYNC_IO_CAPACITY_KEY, ASYNC_IO_CAPACITY_DEFAULT)).thenReturn(ASYNC_IO_CAPACITY_DEFAULT); when(configuration.getLong(SHUTDOWN_PERIOD_KEY, SHUTDOWN_PERIOD_DEFAULT)).thenReturn(SHUTDOWN_PERIOD_DEFAULT); @@ -99,7 +99,7 @@ public void setup() { " \"external_source\": {\n" + " \"http\": [\n" + " {\n" + - " \"endpoint\": \"http://10.202.120.225/seldon/mlp-showcase/integrationtest/api/v0.1/predictions\",\n" + + " \"endpoint\": \"http://localhost/predictions\",\n" + " \"verb\": \"post\",\n" + " \"body_pattern\": \"{'data':{'names': ['s2id'], 'tensor': {'shape': [1,1], 'values':[%s]}}}\",\n" + " \"body_variables\": \"s2_id\",\n" + @@ -110,7 +110,7 @@ public void setup() { " \"headers\": {\n" + " \"content-type\": \"application/json\"\n" + " },\n" + - " \"type\": \"com.gojek.esb.aggregate.surge.SurgeFactorLogMessage\", \n" + + " \"type\": \"TestLogMessage\", \n" + " \"output_mapping\": {\n" + " \"surge_factor\": {\n" + " \"path\": \"$.data.tensor.values[0]\"\n" + diff --git a/dagger-core/src/test/java/io/odpf/dagger/processors/external/ExternalSourceConfigTest.java b/dagger-core/src/test/java/io/odpf/dagger/processors/external/ExternalSourceConfigTest.java index 207826958..d940cc721 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/processors/external/ExternalSourceConfigTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/processors/external/ExternalSourceConfigTest.java @@ -46,8 +46,8 @@ public void setUp() { grpc = new ArrayList<>(); HashMap grpcOutputMapping = new HashMap<>(); grpcOutputMapping.put("grpc_field_1", new OutputMapping("data.key")); - GrpcSourceConfig grpcSourceConfig = new GrpcSourceConfig("localhost", 8080, "com.gojek.esb.consumer.TestGrpcRequest", "com.gojek.esb.de.meta.GrpcResponse", "com.gojek.esb.test/TestMethod", "{'field1': '%s' , 'field2' : 'val2'}", - "customer_id", "123", "234", true, "http://stencil.golabs.io/artifactory/proto-descriptors/feast-proto/latest", null, true, + GrpcSourceConfig grpcSourceConfig = new GrpcSourceConfig("localhost", 8080, "TestGrpcRequest", "test.GrpcResponse", "test/TestMethod", "{'field1': '%s' , 'field2' : 'val2'}", + "customer_id", "123", "234", true, "http://localhost/feast-proto/latest", null, true, new HashMap<>(), grpcOutputMapping, "metricId_02", 30); grpc.add(grpcSourceConfig); } diff --git a/dagger-core/src/test/java/io/odpf/dagger/processors/external/SchemaConfigTest.java b/dagger-core/src/test/java/io/odpf/dagger/processors/external/SchemaConfigTest.java index c1a387634..be6255661 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/processors/external/SchemaConfigTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/processors/external/SchemaConfigTest.java @@ -27,9 +27,9 @@ public class SchemaConfigTest { @Before public void setup() { initMocks(this); - String streams = "[{\"TOPIC_NAMES\":\"SG_GO_CAR-booking-log\",\"TABLE_NAME\":\"booking\",\"PROTO_CLASS_NAME\":\"com.gojek.esb.booking.BookingLogMessage\",\"EVENT_TIMESTAMP_FIELD_INDEX\":\"41\",\"KAFKA_CONSUMER_CONFIG_BOOTSTRAP_SERVERS\":\"10.1.2.3:9092\",\"KAFKA_CONSUMER_CONFIG_AUTO_COMMIT_ENABLE\":\"\",\"KAFKA_CONSUMER_CONFIG_AUTO_OFFSET_RESET\":\"latest\",\"KAFKA_CONSUMER_CONFIG_GROUP_ID\":\"test-config\",\"STREAM_NAME\":\"test\"}]"; + String streams = "[{\"TOPIC_NAMES\":\"SG_GO_CAR-booking-log\",\"TABLE_NAME\":\"booking\",\"PROTO_CLASS_NAME\":\"InputProtoMessage\",\"EVENT_TIMESTAMP_FIELD_INDEX\":\"41\",\"KAFKA_CONSUMER_CONFIG_BOOTSTRAP_SERVERS\":\"10.1.2.3:9092\",\"KAFKA_CONSUMER_CONFIG_AUTO_COMMIT_ENABLE\":\"\",\"KAFKA_CONSUMER_CONFIG_AUTO_OFFSET_RESET\":\"latest\",\"KAFKA_CONSUMER_CONFIG_GROUP_ID\":\"test-config\",\"STREAM_NAME\":\"test\"}]"; configuration.setString(INPUT_STREAMS, streams); - configuration.setString(OUTPUT_PROTO_MESSAGE, "com.gojek.esb.booking.GoFoodBookingLogMessage"); + configuration.setString(OUTPUT_PROTO_MESSAGE, "OutputProtoMessage"); } @Test @@ -47,13 +47,13 @@ public void shouldReturnColumnNameManager() { @Test public void shouldReturnInputProtoClasses() { SchemaConfig schemaConfig = new SchemaConfig(configuration, stencilClientOrchestrator, columnNameManager); - assertArrayEquals(new String[]{"com.gojek.esb.booking.BookingLogMessage"}, schemaConfig.getInputProtoClasses()); + assertArrayEquals(new String[]{"InputProtoMessage"}, schemaConfig.getInputProtoClasses()); } @Test public void shouldReturnOutputProtoClassName() { SchemaConfig schemaConfig = new SchemaConfig(configuration, stencilClientOrchestrator, columnNameManager); - assertEquals("com.gojek.esb.booking.GoFoodBookingLogMessage", schemaConfig.getOutputProtoClassName()); + assertEquals("OutputProtoMessage", schemaConfig.getOutputProtoClassName()); } } diff --git a/dagger-core/src/test/java/io/odpf/dagger/processors/external/es/EsAsyncConnectorTest.java b/dagger-core/src/test/java/io/odpf/dagger/processors/external/es/EsAsyncConnectorTest.java index 8e8974ae1..426c3e6b9 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/processors/external/es/EsAsyncConnectorTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/processors/external/es/EsAsyncConnectorTest.java @@ -1,5 +1,6 @@ package io.odpf.dagger.processors.external.es; +import io.odpf.dagger.consumer.TestBookingLogMessage; import org.apache.flink.configuration.Configuration; import org.apache.flink.streaming.api.functions.async.ResultFuture; import org.apache.flink.types.Row; @@ -16,7 +17,6 @@ import io.odpf.dagger.processors.external.SchemaConfig; import io.odpf.dagger.processors.common.OutputMapping; import com.gojek.de.stencil.client.StencilClient; -import com.gojek.esb.booking.GoFoodBookingLogMessage; import org.elasticsearch.client.Request; import org.elasticsearch.client.RestClient; import org.junit.Assert; @@ -79,8 +79,8 @@ public void setUp() { outputMapping = new HashMap<>(); outputMapping.put("customer_profile", new OutputMapping("$.customer")); outputMapping.put("driver_profile", new OutputMapping("$.driver")); - esSourceConfig = new EsSourceConfig("10.0.60.227,10.0.60.229,10.0.60.228", "9200", "test_user", "mysecretpassword", "/drivers/driver/%s", - "driver_id", "com.gojek.esb.fraud.DriverProfileFlattenLogMessage", "30", + esSourceConfig = new EsSourceConfig("localhost", "9200", "test_user", "mysecretpassword", "/drivers/driver/%s", + "driver_id", "TestMessage", "30", "5000", "5000", "5000", "5000", false, outputMapping, "metricId_01", false); esClient = mock(RestClient.class); resultFuture = mock(ResultFuture.class); @@ -88,19 +88,19 @@ public void setUp() { boolean telemetryEnabled = true; long shutDownPeriod = 0L; - inputProtoClasses = new String[]{"com.gojek.esb.booking.GoFoodBookingLogMessage"}; + inputProtoClasses = new String[]{"InputProtoClass"}; externalMetricConfig = new ExternalMetricConfig("metricId_01", shutDownPeriod, telemetryEnabled); when(schemaConfig.getInputProtoClasses()).thenReturn(inputProtoClasses); when(schemaConfig.getColumnNameManager()).thenReturn(new ColumnNameManager(inputColumnNames, new ArrayList<>())); when(schemaConfig.getStencilClientOrchestrator()).thenReturn(stencilClientOrchestrator); - when(schemaConfig.getOutputProtoClassName()).thenReturn("com.gojek.esb.booking.BookingLogMessage"); + when(schemaConfig.getOutputProtoClassName()).thenReturn("AnotherTestMessage"); stencilClient = mock(StencilClient.class); } @Test public void shouldNotEnrichOutputWhenEndpointVariableIsEmptyAndRequiredInPattern() throws Exception { - esSourceConfig = new EsSourceConfig("10.0.60.227,10.0.60.229,10.0.60.228", "9200", "test_user", "mysecretpassword", "/drivers/driver/%s", - "", "com.gojek.esb.fraud.DriverProfileFlattenLogMessage", "30", + esSourceConfig = new EsSourceConfig("localhost", "9200", "test_user", "mysecretpassword", "/drivers/driver/%s", + "", "TestMessage", "30", "5000", "5000", "5000", "5000", false, outputMapping, "metricId_01", false); EsAsyncConnector esAsyncConnector = new EsAsyncConnector(esSourceConfig, externalMetricConfig, schemaConfig, esClient, errorReporter, meterStatsManager); @@ -115,8 +115,8 @@ public void shouldNotEnrichOutputWhenEndpointVariableIsEmptyAndRequiredInPattern @Test public void shouldEnrichOutputWhenEndpointVariableIsEmptyAndNotRequiredInPattern() throws Exception { when(stencilClientOrchestrator.getStencilClient()).thenReturn(stencilClient); - esSourceConfig = new EsSourceConfig("10.0.60.227,10.0.60.229,10.0.60.228", "9200", "test_user", "mysecretpassword", "/drivers/", - "", "com.gojek.esb.fraud.DriverProfileFlattenLogMessage", "30", + esSourceConfig = new EsSourceConfig("localhost", "9200", "test_user", "mysecretpassword", "/drivers/", + "", "TestMessage", "30", "5000", "5000", "5000", "5000", false, outputMapping, "metricId_01", false); EsAsyncConnector esAsyncConnector = new EsAsyncConnector(esSourceConfig, externalMetricConfig, schemaConfig, esClient, errorReporter, meterStatsManager); @@ -142,22 +142,22 @@ public void shouldFetchDescriptorInInvoke() throws Exception { EsAsyncConnector esAsyncConnector = new EsAsyncConnector(esSourceConfig, externalMetricConfig, schemaConfig, esClient, errorReporter, meterStatsManager); when(stencilClientOrchestrator.getStencilClient()).thenReturn(stencilClient); - when(stencilClient.get(inputProtoClasses[0])).thenReturn(GoFoodBookingLogMessage.getDescriptor()); + when(stencilClient.get(inputProtoClasses[0])).thenReturn(TestBookingLogMessage.getDescriptor()); esAsyncConnector.open(configuration); esAsyncConnector.asyncInvoke(streamRow, resultFuture); - verify(stencilClient, times(1)).get("com.gojek.esb.fraud.DriverProfileFlattenLogMessage"); + verify(stencilClient, times(1)).get("TestMessage"); } @Test public void shouldCompleteExceptionallyIfOutputDescriptorNotFound() throws Exception { inputData.setField(2, "11223344545"); - when(stencilClient.get(inputProtoClasses[0])).thenReturn(GoFoodBookingLogMessage.getDescriptor()); + when(stencilClient.get(inputProtoClasses[0])).thenReturn(TestBookingLogMessage.getDescriptor()); EsAsyncConnector esAsyncConnector = new EsAsyncConnector(esSourceConfig, externalMetricConfig, schemaConfig, esClient, errorReporter, meterStatsManager); when(stencilClientOrchestrator.getStencilClient()).thenReturn(stencilClient); - when(stencilClient.get("com.gojek.esb.fraud.DriverProfileFlattenLogMessage")).thenReturn(null); + when(stencilClient.get("TestMessage")).thenReturn(null); esAsyncConnector.open(configuration); try { @@ -173,10 +173,10 @@ public void shouldCompleteExceptionallyIfOutputDescriptorNotFound() throws Excep @Test public void shouldNotEnrichOutputWhenEndpointVariableIsInvalid() throws Exception { - when(stencilClient.get(inputProtoClasses[0])).thenReturn(GoFoodBookingLogMessage.getDescriptor()); + when(stencilClient.get(inputProtoClasses[0])).thenReturn(TestBookingLogMessage.getDescriptor()); when(stencilClientOrchestrator.getStencilClient()).thenReturn(stencilClient); - esSourceConfig = new EsSourceConfig("10.0.60.227,10.0.60.229,10.0.60.228", "9200", "test_user", "mysecretpassword", "/drivers/driver/%s", - "invalid_variable", "com.gojek.esb.fraud.DriverProfileFlattenLogMessage", "30", + esSourceConfig = new EsSourceConfig("localhost", "9200", "test_user", "mysecretpassword", "/drivers/driver/%s", + "invalid_variable", "TestMessage", "30", "5000", "5000", "5000", "5000", false, outputMapping, "metricId_01", false); EsAsyncConnector esAsyncConnector = new EsAsyncConnector(esSourceConfig, externalMetricConfig, schemaConfig, esClient, errorReporter, meterStatsManager); @@ -191,12 +191,12 @@ public void shouldNotEnrichOutputWhenEndpointVariableIsInvalid() throws Exceptio @Test public void shouldGiveErrorWhenEndpointPatternIsInvalid() throws Exception { - when(stencilClient.get(inputProtoClasses[0])).thenReturn(GoFoodBookingLogMessage.getDescriptor()); + when(stencilClient.get(inputProtoClasses[0])).thenReturn(TestBookingLogMessage.getDescriptor()); when(stencilClientOrchestrator.getStencilClient()).thenReturn(stencilClient); inputData.setField(2, "11223344545"); String invalidEndpointPattern = "/drivers/driver/%"; - esSourceConfig = new EsSourceConfig("10.0.60.227,10.0.60.229,10.0.60.228", "9200", "test_user", "mysecretpassword", invalidEndpointPattern, - "driver_id", "com.gojek.esb.fraud.DriverProfileFlattenLogMessage", "30", + esSourceConfig = new EsSourceConfig("localhost", "9200", "test_user", "mysecretpassword", invalidEndpointPattern, + "driver_id", "TestMessage", "30", "5000", "5000", "5000", "5000", false, outputMapping, "metricId_01", false); EsAsyncConnector esAsyncConnector = new EsAsyncConnector(esSourceConfig, externalMetricConfig, schemaConfig, esClient, errorReporter, meterStatsManager); @@ -211,12 +211,12 @@ public void shouldGiveErrorWhenEndpointPatternIsInvalid() throws Exception { @Test public void shouldGiveErrorWhenEndpointPatternIsIncompatible() throws Exception { - when(stencilClient.get(inputProtoClasses[0])).thenReturn(GoFoodBookingLogMessage.getDescriptor()); + when(stencilClient.get(inputProtoClasses[0])).thenReturn(TestBookingLogMessage.getDescriptor()); when(stencilClientOrchestrator.getStencilClient()).thenReturn(stencilClient); inputData.setField(2, "11223344545"); String invalidEndpointPattern = "/drivers/driver/%d"; - esSourceConfig = new EsSourceConfig("10.0.60.227,10.0.60.229,10.0.60.228", "9200", "test_user", "mysecretpassword", invalidEndpointPattern, - "driver_id", "com.gojek.esb.fraud.DriverProfileFlattenLogMessage", "30", + esSourceConfig = new EsSourceConfig("localhost", "9200", "test_user", "mysecretpassword", invalidEndpointPattern, + "driver_id", "TestMessage", "30", "5000", "5000", "5000", "5000", false, outputMapping, "metricId_01", false); EsAsyncConnector esAsyncConnector = new EsAsyncConnector(esSourceConfig, externalMetricConfig, schemaConfig, esClient, errorReporter, meterStatsManager); @@ -231,7 +231,7 @@ public void shouldGiveErrorWhenEndpointPatternIsIncompatible() throws Exception @Test public void shouldEnrichOutputForCorrespondingEnrichmentKey() throws Exception { - when(stencilClient.get(inputProtoClasses[0])).thenReturn(GoFoodBookingLogMessage.getDescriptor()); + when(stencilClient.get(inputProtoClasses[0])).thenReturn(TestBookingLogMessage.getDescriptor()); when(stencilClientOrchestrator.getStencilClient()).thenReturn(stencilClient); inputData.setField(2, "11223344545"); @@ -248,10 +248,10 @@ public void shouldEnrichOutputForCorrespondingEnrichmentKey() throws Exception { @Test public void shouldEnrichOutputWhenUserAndPasswordAreNull() throws Exception { - when(stencilClient.get(inputProtoClasses[0])).thenReturn(GoFoodBookingLogMessage.getDescriptor()); + when(stencilClient.get(inputProtoClasses[0])).thenReturn(TestBookingLogMessage.getDescriptor()); when(stencilClientOrchestrator.getStencilClient()).thenReturn(stencilClient); inputData.setField(2, "11223344545"); - esSourceConfig = new EsSourceConfig("10.0.60.227,10.0.60.229,10.0.60.228", "9200", null, null, + esSourceConfig = new EsSourceConfig("localhost", "9200", null, null, "/drivers/driver/%s", "driver_id", null, "30", "5000", "5000", "5000", "5000", false, outputMapping, "metricId_01", false); @@ -270,7 +270,7 @@ public void shouldEnrichOutputWhenUserAndPasswordAreNull() throws Exception { @Test public void shouldNotEnrichOutputOnTimeout() throws Exception { - when(stencilClient.get(inputProtoClasses[0])).thenReturn(GoFoodBookingLogMessage.getDescriptor()); + when(stencilClient.get(inputProtoClasses[0])).thenReturn(TestBookingLogMessage.getDescriptor()); when(stencilClientOrchestrator.getStencilClient()).thenReturn(stencilClient); esClient = null; EsAsyncConnector esAsyncConnector = new EsAsyncConnector(esSourceConfig, externalMetricConfig, schemaConfig, esClient, errorReporter, meterStatsManager); @@ -284,7 +284,7 @@ public void shouldNotEnrichOutputOnTimeout() throws Exception { @Test public void shouldAddPostProcessorTypeMetrics() { - when(stencilClient.get(inputProtoClasses[0])).thenReturn(GoFoodBookingLogMessage.getDescriptor()); + when(stencilClient.get(inputProtoClasses[0])).thenReturn(TestBookingLogMessage.getDescriptor()); when(stencilClientOrchestrator.getStencilClient()).thenReturn(stencilClient); ArrayList postProcessorType = new ArrayList<>(); postProcessorType.add(ES_TYPE); @@ -307,11 +307,11 @@ public void shouldNotifySubscribers() { @Test public void shouldGetDescriptorFromOutputProtoIfTypeNotGiven() throws Exception { - esSourceConfig = new EsSourceConfig("10.0.60.227,10.0.60.229,10.0.60.228", "9200", "", "", "/drivers/driver/%s", + esSourceConfig = new EsSourceConfig("localhost", "9200", "", "", "/drivers/driver/%s", "driver_id", null, "30", "5000", "5000", "5000", "5000", false, outputMapping, "metricId_01", false); inputData.setField(2, "11223344545"); - when(stencilClient.get(inputProtoClasses[0])).thenReturn(GoFoodBookingLogMessage.getDescriptor()); + when(stencilClient.get(inputProtoClasses[0])).thenReturn(TestBookingLogMessage.getDescriptor()); EsAsyncConnector esAsyncConnector = new EsAsyncConnector(esSourceConfig, externalMetricConfig, schemaConfig, esClient, errorReporter, meterStatsManager); when(stencilClientOrchestrator.getStencilClient()).thenReturn(stencilClient); @@ -323,13 +323,13 @@ public void shouldGetDescriptorFromOutputProtoIfTypeNotGiven() throws Exception e.printStackTrace(); } - verify(stencilClient, times(1)).get("com.gojek.esb.booking.BookingLogMessage"); + verify(stencilClient, times(1)).get("AnotherTestMessage"); } @Test public void shouldGetDescriptorFromTypeIfGiven() throws Exception { inputData.setField(2, "11223344545"); - when(stencilClient.get(inputProtoClasses[0])).thenReturn(GoFoodBookingLogMessage.getDescriptor()); + when(stencilClient.get(inputProtoClasses[0])).thenReturn(TestBookingLogMessage.getDescriptor()); EsAsyncConnector esAsyncConnector = new EsAsyncConnector(esSourceConfig, externalMetricConfig, schemaConfig, esClient, errorReporter, meterStatsManager); when(stencilClientOrchestrator.getStencilClient()).thenReturn(stencilClient); @@ -340,6 +340,6 @@ public void shouldGetDescriptorFromTypeIfGiven() throws Exception { } catch (Exception e) { e.printStackTrace(); } - verify(stencilClient, times(1)).get("com.gojek.esb.fraud.DriverProfileFlattenLogMessage"); + verify(stencilClient, times(1)).get("TestMessage"); } } diff --git a/dagger-core/src/test/java/io/odpf/dagger/processors/external/es/EsResponseHandlerTest.java b/dagger-core/src/test/java/io/odpf/dagger/processors/external/es/EsResponseHandlerTest.java index e99fe2124..1b2f93e3f 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/processors/external/es/EsResponseHandlerTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/processors/external/es/EsResponseHandlerTest.java @@ -1,5 +1,8 @@ package io.odpf.dagger.processors.external.es; +import io.odpf.dagger.consumer.TestBookingLogMessage; +import io.odpf.dagger.consumer.TestEnrichedBookingLogMessage; +import io.odpf.dagger.consumer.TestProfile; import io.odpf.dagger.exception.HttpFailureException; import io.odpf.dagger.metrics.MeterStatsManager; import io.odpf.dagger.metrics.reporters.ErrorReporter; @@ -9,8 +12,6 @@ import io.odpf.dagger.processors.common.RowManager; import io.odpf.dagger.protohandler.ProtoHandlerFactory; import io.odpf.dagger.protohandler.RowFactory; -import com.gojek.esb.fraud.DriverProfileFlattenLogMessage; -import com.gojek.esb.fraud.EnrichedBookingLogMessage; import com.google.protobuf.Descriptors; import com.jayway.jsonpath.PathNotFoundException; import mockit.Mock; @@ -73,10 +74,10 @@ public void setUp() { rowManager = new RowManager(inputStreamData); outputMapping = new HashMap<>(); esSourceConfig = new EsSourceConfig("localhost", "9200", "", "", "", - "driver_id", "com.gojek.esb.fraud.EnrichedBookingLogMessage", "30", + "driver_id", "test", "30", "5000", "5000", "5000", "5000", false, outputMapping, "metricId_01", false); resultFuture = mock(ResultFuture.class); - descriptor = EnrichedBookingLogMessage.getDescriptor(); + descriptor = TestEnrichedBookingLogMessage.getDescriptor(); meterStatsManager = mock(MeterStatsManager.class); inputColumnNames = new String[3]; outputColumnNames = new ArrayList<>(); @@ -102,20 +103,21 @@ public String toString(HttpEntity entity) { outputMapping.put("driver_profile", new OutputMapping("$._source")); esSourceConfig = new EsSourceConfig("localhost", "9200", "", "", "", - "driver_id", "com.gojek.esb.fraud.DriverProfileFlattenLogMessage", "30", + "driver_id", "test", "30", "5000", "5000", "5000", "5000", false, outputMapping, "metricId_01", false); outputColumnNames.add("driver_profile"); columnNameManager = new ColumnNameManager(inputColumnNames, outputColumnNames); esResponseHandler = new EsResponseHandler(esSourceConfig, meterStatsManager, rowManager, columnNameManager, descriptor, resultFuture, errorReporter, new PostResponseTelemetry()); HashMap outputDataMap = new HashMap<>(); outputDataMap.put("driver_id", 12345); - outputData.setField(0, RowFactory.createRow(outputDataMap, DriverProfileFlattenLogMessage.getDescriptor())); + outputData.setField(0, RowFactory.createRow(outputDataMap, TestProfile.getDescriptor())); outputStreamData.setField(1, outputData); esResponseHandler.startTimer(); esResponseHandler.onSuccess(response); + System.out.println("WOH " + outputStreamData); verify(resultFuture, times(1)).complete(Collections.singleton(outputStreamData)); mockUp.tearDown(); @@ -169,7 +171,7 @@ public String toString(HttpEntity entity) { esResponseHandler = new EsResponseHandler(esSourceConfig, meterStatsManager, rowManager, columnNameManager, descriptor, resultFuture, errorReporter, new PostResponseTelemetry()); HashMap outputDataMap = new HashMap<>(); outputDataMap.put("driver_id", 12345); - outputData.setField(0, RowFactory.createRow(outputDataMap, DriverProfileFlattenLogMessage.getDescriptor())); + outputData.setField(0, RowFactory.createRow(outputDataMap, TestProfile.getDescriptor())); outputStreamData.setField(1, outputData); @@ -191,10 +193,10 @@ public String toString(HttpEntity entity) { } }; - descriptor = DriverProfileFlattenLogMessage.getDescriptor(); + descriptor = TestBookingLogMessage.getDescriptor(); outputMapping.put("driver_id", new OutputMapping("$._source.driver_id")); esSourceConfig = new EsSourceConfig("localhost", "9200", "", "", "", - "driver_id", "com.gojek.esb.fraud.DriverProfileFlattenLogMessage", "30", + "driver_id", "test", "30", "5000", "5000", "5000", "5000", false, outputMapping, "metricId_01", false); outputColumnNames.add("driver_id"); columnNameManager = new ColumnNameManager(inputColumnNames, outputColumnNames); @@ -220,7 +222,7 @@ public String toString(HttpEntity entity) { }; outputMapping.put("driver_id", new OutputMapping("$.invalidPath")); esSourceConfig = new EsSourceConfig("localhost", "9200", "", "", "", - "driver_id", "com.gojek.esb.fraud.DriverProfileFlattenLogMessage", "30", + "driver_id", "test", "30", "5000", "5000", "5000", "5000", false, outputMapping, "metricId_01", false); esResponseHandler.startTimer(); @@ -401,7 +403,7 @@ public void shouldExceptionWhenFailOnErrorTrue() throws IOException { when(statusLine.getStatusCode()).thenReturn(502); esSourceConfig = new EsSourceConfig("localhost", "9200", "", "", "", - "driver_id", "com.gojek.esb.fraud.EnrichedBookingLogMessage", "30", + "driver_id", "test", "30", "5000", "5000", "5000", "5000", true, outputMapping, "metricId_01", false); esResponseHandler = new EsResponseHandler(esSourceConfig, meterStatsManager, rowManager, columnNameManager, descriptor, resultFuture, errorReporter, new PostResponseTelemetry()); diff --git a/dagger-core/src/test/java/io/odpf/dagger/processors/external/es/EsSourceConfigTest.java b/dagger-core/src/test/java/io/odpf/dagger/processors/external/es/EsSourceConfigTest.java index 21b5f336c..1c318879b 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/processors/external/es/EsSourceConfigTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/processors/external/es/EsSourceConfigTest.java @@ -1,6 +1,6 @@ package io.odpf.dagger.processors.external.es; -import com.gojek.daggers.processors.common.OutputMapping; +import io.odpf.dagger.processors.common.OutputMapping; import org.junit.Assert; import org.junit.Before; import org.junit.Rule; @@ -48,7 +48,7 @@ public void setUp() { password = "mysecretpassword"; endpointPattern = "/drivers/driver/%s"; endpointVariables = "driver_id"; - type = "com.gojek.esb.fraud.DriverProfileFlattenLogMessage"; + type = "TestProtoMessage"; capacity = "30"; connectTimeout = "1000"; retryTimeout = "2000"; diff --git a/dagger-core/src/test/java/io/odpf/dagger/processors/external/es/EsStreamDecoratorTest.java b/dagger-core/src/test/java/io/odpf/dagger/processors/external/es/EsStreamDecoratorTest.java index 13a346537..918498ecc 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/processors/external/es/EsStreamDecoratorTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/processors/external/es/EsStreamDecoratorTest.java @@ -1,7 +1,7 @@ package io.odpf.dagger.processors.external.es; -import com.gojek.daggers.processors.external.ExternalMetricConfig; -import com.gojek.daggers.processors.external.SchemaConfig; +import io.odpf.dagger.processors.external.ExternalMetricConfig; +import io.odpf.dagger.processors.external.SchemaConfig; import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -22,7 +22,7 @@ public class EsStreamDecoratorTest { @Before public void setUp() { esSourceConfig = new EsSourceConfig("localhost", "9200", "", "", "", - "driver_id", "com.gojek.esb.fraud.DriverProfileFlattenLogMessage", "30", + "driver_id", "io.odpf.TestProtoMessage", "30", "5000", "5000", "5000", "5000", false, new HashMap<>(), "metricId_01", false); } diff --git a/dagger-core/src/test/java/io/odpf/dagger/processors/external/grpc/GrpcAsyncConnectorTest.java b/dagger-core/src/test/java/io/odpf/dagger/processors/external/grpc/GrpcAsyncConnectorTest.java index 90a4aeed7..dd9d715fe 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/processors/external/grpc/GrpcAsyncConnectorTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/processors/external/grpc/GrpcAsyncConnectorTest.java @@ -1,5 +1,8 @@ package io.odpf.dagger.processors.external.grpc; +import com.gojek.de.stencil.client.StencilClient; +import io.odpf.dagger.consumer.TestBookingLogMessage; +import io.odpf.dagger.consumer.TestGrpcRequest; import org.apache.flink.configuration.Configuration; import org.apache.flink.streaming.api.functions.async.ResultFuture; import org.apache.flink.types.Row; @@ -17,10 +20,6 @@ import io.odpf.dagger.processors.common.DescriptorManager; import io.odpf.dagger.processors.common.OutputMapping; import io.odpf.dagger.processors.external.grpc.client.GrpcClient; -import com.gojek.de.stencil.client.StencilClient; -import com.gojek.esb.booking.BookingLogMessage; -import com.gojek.esb.booking.GoFoodBookingLogMessage; -import com.gojek.esb.consumer.TestGrpcRequest; import org.junit.Assert; import org.junit.Before; import org.junit.Rule; @@ -85,15 +84,15 @@ public void setUp() { streamData.setField(1, new Row(1)); boolean telemetryEnabled = true; long shutDownPeriod = 0L; - grpcStencilUrl = "http://stencil.golabs.io/artifactory/proto-descriptors/feast-proto/latest"; - inputProtoClasses = new String[]{"com.gojek.esb.booking.BookingLogMessage"}; + grpcStencilUrl = "http://localhost/feast-proto/latest"; + inputProtoClasses = new String[]{"InputProtoMessage"}; when(schemaConfig.getInputProtoClasses()).thenReturn(inputProtoClasses); when(schemaConfig.getColumnNameManager()).thenReturn(new ColumnNameManager(inputColumnNames, outputColumnNames)); when(schemaConfig.getStencilClientOrchestrator()).thenReturn(stencilClientOrchestrator); - when(schemaConfig.getOutputProtoClassName()).thenReturn("com.gojek.esb.booking.GoFoodBookingLogMessage"); + when(schemaConfig.getOutputProtoClassName()).thenReturn("OutputProtoMessage"); externalMetricConfig = new ExternalMetricConfig("metricId-grpc-01", shutDownPeriod, telemetryEnabled); - grpcSourceConfig = new GrpcSourceConfig("localhost", 8080, "com.gojek.esb.consumer.TestGrpcRequest", "com.gojek.esb.de.meta.GrpcResponse", "com.gojek.esb.test/TestMethod", "{'field1': '%s' , 'field2' : 'val2'}", + grpcSourceConfig = new GrpcSourceConfig("localhost", 8080, "test.consumer.TestGrpcRequest", "test.meta.GrpcResponse", "test.test/TestMethod", "{'field1': '%s' , 'field2' : 'val2'}", "customer_id", "123", "234", true, grpcStencilUrl, grpcConfigType, true, headers, outputMapping, "metricId_02", 30); @@ -155,7 +154,7 @@ public void shouldInitializeDescriptorManagerInOpen() throws Exception { public void shouldCompleteExceptionallyIfOutputDescriptorNotFound() throws Exception { when(stencilClientOrchestrator.getStencilClient()).thenReturn(stencilClient); - when(descriptorManager.getDescriptor(inputProtoClasses[0])).thenReturn(GoFoodBookingLogMessage.getDescriptor()); + when(descriptorManager.getDescriptor(inputProtoClasses[0])).thenReturn(TestBookingLogMessage.getDescriptor()); when(descriptorManager.getDescriptor(grpcSourceConfig.getGrpcRequestProtoSchema())).thenReturn(TestGrpcRequest.getDescriptor()); when(descriptorManager.getDescriptor(grpcConfigType)).thenThrow(new DescriptorNotFoundException()); @@ -173,12 +172,12 @@ public void shouldCompleteExceptionallyIfOutputDescriptorNotFound() throws Excep @Test public void shouldCompleteExceptionallyWhenEndpointVariableIsInvalid() { - when(descriptorManager.getDescriptor(inputProtoClasses[0])).thenReturn(GoFoodBookingLogMessage.getDescriptor()); + when(descriptorManager.getDescriptor(inputProtoClasses[0])).thenReturn(TestBookingLogMessage.getDescriptor()); when(descriptorManager.getDescriptor(grpcSourceConfig.getGrpcRequestProtoSchema())).thenReturn(TestGrpcRequest.getDescriptor()); when(descriptorManager.getDescriptor(grpcConfigType)).thenThrow(new DescriptorNotFoundException()); String invalid_request_variable = "invalid_variable"; - grpcSourceConfig = new GrpcSourceConfig("localhost", 8080, "com.gojek.esb.consumer.TestGrpcRequest", "com.gojek.esb.de.meta.GrpcResponse", "com.gojek.esb.test/TestMethod", "{'field1': '%s' , 'field2' : 'val2'}", + grpcSourceConfig = new GrpcSourceConfig("localhost", 8080, "test.consumer.TestGrpcRequest", "test.meta.GrpcResponse", "test.test/TestMethod", "{'field1': '%s' , 'field2' : 'val2'}", invalid_request_variable, "123", "234", true, grpcStencilUrl, grpcConfigType, true, headers, outputMapping, "metricId_02", 30); @@ -198,8 +197,8 @@ public void shouldCompleteExceptionallyWhenEndpointVariableIsInvalid() { @Test public void shouldCompleteExceptionallyWhenEndpointVariableIsEmptyAndRequiredInPattern() { String empty_request_variable = ""; - when(descriptorManager.getDescriptor(inputProtoClasses[0])).thenReturn(GoFoodBookingLogMessage.getDescriptor()); - grpcSourceConfig = new GrpcSourceConfig("localhost", 8080, "com.gojek.esb.consumer.TestGrpcRequest", "com.gojek.esb.de.meta.GrpcResponse", "com.gojek.esb.test/TestMethod", "{'field1': '%s' , 'field2' : 'val2'}", + when(descriptorManager.getDescriptor(inputProtoClasses[0])).thenReturn(TestBookingLogMessage.getDescriptor()); + grpcSourceConfig = new GrpcSourceConfig("localhost", 8080, "test.consumer.TestGrpcRequest", "test.meta.GrpcResponse", "test.test/TestMethod", "{'field1': '%s' , 'field2' : 'val2'}", empty_request_variable, "123", "234", true, grpcStencilUrl, grpcConfigType, true, headers, outputMapping, "metricId_02", 30); @@ -220,11 +219,11 @@ public void shouldCompleteExceptionallyWhenEndpointVariableIsEmptyAndRequiredInP @Test public void shouldEnrichWhenEndpointVariableIsEmptyAndNotRequiredInPattern() throws Exception { String empty_request_variable = ""; - when(descriptorManager.getDescriptor(inputProtoClasses[0])).thenReturn(GoFoodBookingLogMessage.getDescriptor()); + when(descriptorManager.getDescriptor(inputProtoClasses[0])).thenReturn(TestBookingLogMessage.getDescriptor()); when(descriptorManager.getDescriptor(grpcSourceConfig.getGrpcRequestProtoSchema())).thenReturn(TestGrpcRequest.getDescriptor()); - grpcSourceConfig = new GrpcSourceConfig("localhost", 8080, "com.gojek.esb.consumer.TestGrpcRequest", "com.gojek.esb.de.meta.GrpcResponse", "com.gojek.esb.test/TestMethod", "{'field1': 'val1' , 'field2' : 'val2'}", + grpcSourceConfig = new GrpcSourceConfig("localhost", 8080, "test.consumer.TestGrpcRequest", "test.meta.GrpcResponse", "test.test/TestMethod", "{'field1': 'val1' , 'field2' : 'val2'}", empty_request_variable, "123", "234", true, grpcStencilUrl, grpcConfigType, true, headers, outputMapping, "metricId_02", 30); @@ -244,11 +243,11 @@ public void shouldEnrichWhenEndpointVariableIsEmptyAndNotRequiredInPattern() thr @Test public void shouldCompleteExceptionallyWhenEndpointPatternIsInvalid() { - when(descriptorManager.getDescriptor(inputProtoClasses[0])).thenReturn(GoFoodBookingLogMessage.getDescriptor()); + when(descriptorManager.getDescriptor(inputProtoClasses[0])).thenReturn(TestBookingLogMessage.getDescriptor()); when(descriptorManager.getDescriptor(grpcSourceConfig.getGrpcRequestProtoSchema())).thenReturn(TestGrpcRequest.getDescriptor()); - grpcSourceConfig = new GrpcSourceConfig("localhost", 8080, "com.gojek.esb.consumer.TestGrpcRequest", "com.gojek.esb.de.meta.GrpcResponse", "com.gojek.esb.test/TestMethod", "{'field1': 'val1' , 'field2' : '%'}", + grpcSourceConfig = new GrpcSourceConfig("localhost", 8080, "test.consumer.TestGrpcRequest", "test.meta.GrpcResponse", "test.test/TestMethod", "{'field1': 'val1' , 'field2' : '%'}", "customer_id", "123", "234", true, grpcStencilUrl, grpcConfigType, true, headers, outputMapping, "metricId_02", 30); @@ -268,46 +267,46 @@ public void shouldCompleteExceptionallyWhenEndpointPatternIsInvalid() { @Test public void shouldGetDescriptorFromOutputProtoIfTypeNotGiven() throws Exception { - grpcSourceConfig = new GrpcSourceConfig("localhost", 8080, "com.gojek.esb.consumer.TestGrpcRequest", "com.gojek.esb.de.meta.GrpcResponse", "com.gojek.esb.test/TestMethod", "{'field1': 'val1' , 'field2' : '%'}", + grpcSourceConfig = new GrpcSourceConfig("localhost", 8080, "test.consumer.TestGrpcRequest", "test.meta.GrpcResponse", "test.test/TestMethod", "{'field1': 'val1' , 'field2' : '%'}", "customer_id", "123", "234", true, grpcStencilUrl, null, true, headers, outputMapping, "metricId_02", 30); when(stencilClientOrchestrator.getStencilClient()).thenReturn(stencilClient); - when(descriptorManager.getDescriptor(inputProtoClasses[0])).thenReturn(GoFoodBookingLogMessage.getDescriptor()); + when(descriptorManager.getDescriptor(inputProtoClasses[0])).thenReturn(TestBookingLogMessage.getDescriptor()); GrpcAsyncConnector grpcAsyncConnector = new GrpcAsyncConnector(grpcSourceConfig, externalMetricConfig, schemaConfig, grpcClient, errorReporter, meterStatsManager, descriptorManager); grpcAsyncConnector.open(flinkConfiguration); grpcAsyncConnector.asyncInvoke(streamData, resultFuture); grpcAsyncConnector.close(); - verify(descriptorManager, times(1)).getDescriptor("com.gojek.esb.booking.BookingLogMessage"); + verify(descriptorManager, times(1)).getDescriptor("InputProtoMessage"); } @Test public void shouldGetDescriptorFromTypeIfGiven() throws Exception { - grpcSourceConfig = new GrpcSourceConfig("localhost", 8080, "com.gojek.esb.consumer.TestGrpcRequest", "com.gojek.esb.de.meta.GrpcResponse", "com.gojek.esb.test/TestMethod", "{'field1': 'val1' , 'field2' : '%s'}", - "customer_id", "123", "234", true, grpcStencilUrl, "com.gojek.esb.booking.TestBookingLogMessage", false, + grpcSourceConfig = new GrpcSourceConfig("localhost", 8080, "test.consumer.TestGrpcRequest", "test.meta.GrpcResponse", "test.test/TestMethod", "{'field1': 'val1' , 'field2' : '%s'}", + "customer_id", "123", "234", true, grpcStencilUrl, "test.booking.TestBookingLogMessage", false, headers, outputMapping, "metricId_02", 30); when(stencilClientOrchestrator.getStencilClient()).thenReturn(stencilClient); - when(descriptorManager.getDescriptor(inputProtoClasses[0])).thenReturn(GoFoodBookingLogMessage.getDescriptor()); - when(descriptorManager.getDescriptor("com.gojek.esb.booking.BookingLogMessage")).thenReturn(BookingLogMessage.getDescriptor()); + when(descriptorManager.getDescriptor(inputProtoClasses[0])).thenReturn(TestBookingLogMessage.getDescriptor()); + when(descriptorManager.getDescriptor("InputProtoMessage")).thenReturn(TestBookingLogMessage.getDescriptor()); when(descriptorManager.getDescriptor(grpcSourceConfig.getGrpcRequestProtoSchema())).thenReturn(TestGrpcRequest.getDescriptor()); GrpcAsyncConnector grpcAsyncConnector = new GrpcAsyncConnector(grpcSourceConfig, externalMetricConfig, schemaConfig, grpcClient, errorReporter, meterStatsManager, descriptorManager); grpcAsyncConnector.open(flinkConfiguration); grpcAsyncConnector.asyncInvoke(streamData, resultFuture); - verify(descriptorManager, times(1)).getDescriptor("com.gojek.esb.booking.TestBookingLogMessage"); + verify(descriptorManager, times(1)).getDescriptor("test.booking.TestBookingLogMessage"); } @Test public void shouldCompleteExceptionallyWhenEndpointPatternIsIncompatible() throws Exception { - when(descriptorManager.getDescriptor(inputProtoClasses[0])).thenReturn(GoFoodBookingLogMessage.getDescriptor()); + when(descriptorManager.getDescriptor(inputProtoClasses[0])).thenReturn(TestBookingLogMessage.getDescriptor()); when(descriptorManager.getDescriptor(grpcSourceConfig.getGrpcRequestProtoSchema())).thenReturn(TestGrpcRequest.getDescriptor()); - grpcSourceConfig = new GrpcSourceConfig("localhost", 8080, "com.gojek.esb.consumer.TestGrpcRequest", "com.gojek.esb.de.meta.GrpcResponse", "com.gojek.esb.test/TestMethod", "{'field1': '%d' , 'field2' : 'val2'}", + grpcSourceConfig = new GrpcSourceConfig("localhost", 8080, "test.consumer.TestGrpcRequest", "test.meta.GrpcResponse", "test.test/TestMethod", "{'field1': '%d' , 'field2' : 'val2'}", "customer_id", "123", "234", true, grpcStencilUrl, grpcConfigType, true, headers, outputMapping, "metricId_02", 30); @@ -330,7 +329,7 @@ public void shouldCompleteExceptionallyWhenEndpointPatternIsIncompatible() throw public void shouldThrowExceptionInTimeoutIfFailOnErrorIsTrue() throws Exception { - grpcSourceConfig = new GrpcSourceConfig("localhost", 8080, "com.gojek.esb.consumer.TestGrpcRequest", "com.gojek.esb.de.meta.GrpcResponse", "com.gojek.esb.test/TestMethod", "{'field1': 'val1' , 'field2' : '%'}", + grpcSourceConfig = new GrpcSourceConfig("localhost", 8080, "test.consumer.TestGrpcRequest", "test.meta.GrpcResponse", "test.test/TestMethod", "{'field1': 'val1' , 'field2' : '%'}", "customer_id", "123", "234", true, grpcStencilUrl, null, true, headers, outputMapping, "metricId_02", 30); @@ -345,7 +344,7 @@ public void shouldThrowExceptionInTimeoutIfFailOnErrorIsTrue() throws Exception @Test public void shouldReportFatalInTimeoutIfFailOnErrorIsTrue() { - grpcSourceConfig = new GrpcSourceConfig("localhost", 8080, "com.gojek.esb.consumer.TestGrpcRequest", "com.gojek.esb.de.meta.GrpcResponse", "com.gojek.esb.test/TestMethod", "{'field1': 'val1' , 'field2' : '%'}", + grpcSourceConfig = new GrpcSourceConfig("localhost", 8080, "test.consumer.TestGrpcRequest", "test.meta.GrpcResponse", "test.test/TestMethod", "{'field1': 'val1' , 'field2' : '%'}", "customer_id", "123", "234", true, grpcStencilUrl, null, true, headers, outputMapping, "metricId_02", 30); @@ -359,7 +358,7 @@ public void shouldReportFatalInTimeoutIfFailOnErrorIsTrue() { @Test public void shouldReportNonFatalInTimeoutIfFailOnErrorIsFalse() { - grpcSourceConfig = new GrpcSourceConfig("localhost", 8080, "com.gojek.esb.consumer.TestGrpcRequest", "com.gojek.esb.de.meta.GrpcResponse", "com.gojek.esb.test/TestMethod", "{'field1': 'val1' , 'field2' : '%'}", + grpcSourceConfig = new GrpcSourceConfig("localhost", 8080, "test.consumer.TestGrpcRequest", "test.meta.GrpcResponse", "test.test/TestMethod", "{'field1': 'val1' , 'field2' : '%'}", "customer_id", "123", "234", false, grpcStencilUrl, null, true, headers, outputMapping, "metricId_02", 30); diff --git a/dagger-core/src/test/java/io/odpf/dagger/processors/external/grpc/GrpcResponseHandlerTest.java b/dagger-core/src/test/java/io/odpf/dagger/processors/external/grpc/GrpcResponseHandlerTest.java index 90fe33eea..80c6bc2ab 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/processors/external/grpc/GrpcResponseHandlerTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/processors/external/grpc/GrpcResponseHandlerTest.java @@ -1,5 +1,8 @@ package io.odpf.dagger.processors.external.grpc; +import io.odpf.dagger.consumer.TestBookingLogMessage; +import io.odpf.dagger.consumer.TestGrpcResponse; +import io.odpf.dagger.consumer.TestLocation; import io.odpf.dagger.metrics.MeterStatsManager; import io.odpf.dagger.metrics.aspects.Aspects; import io.odpf.dagger.metrics.reporters.ErrorReporter; @@ -7,11 +10,6 @@ import io.odpf.dagger.processors.common.OutputMapping; import io.odpf.dagger.processors.common.PostResponseTelemetry; import io.odpf.dagger.processors.common.RowManager; -import com.gojek.esb.bicicilan.BiDriverCicilanLogMessage; -import com.gojek.esb.booking.BookingLogMessage; -import com.gojek.esb.consumer.TestGrpcResponse; -import com.gojek.esb.de.meta.GrpcResponse; -import com.gojek.esb.types.Location; import com.google.protobuf.Descriptors; import com.google.protobuf.DynamicMessage; import com.google.protobuf.InvalidProtocolBufferException; @@ -77,15 +75,15 @@ public void setup() { streamData.setField(1, new Row(2)); rowManager = new RowManager(streamData); columnNameManager = new ColumnNameManager(inputColumnNames, outputColumnNames); - grpcSourceConfig = new GrpcSourceConfig("localhost", 5000, "com.gojek.esb.GrpcRequest", "com.gojek.esb.GrpcResponse", "com.gojek.esb.test/TestMethod", "{\"key\": \"%s\"}", "customer_id", outputMapping); + grpcSourceConfig = new GrpcSourceConfig("localhost", 5000, "io.odpf.dagger.consumer.TestGrpcRequest", "io.odpf.dagger.consumer.GrpcResponse", "io.odpf.dagger.consumer.test/TestMethod", "{\"key\": \"%s\"}", "customer_id", outputMapping); } @Test public void shouldDetectProperBodyAndHandleResponseIfRetainResponseTypeIsFalse() throws InvalidProtocolBufferException { outputMapping.put("success", new OutputMapping("$.success")); - grpcSourceConfig = new GrpcSourceConfig("localhost", 8000, "com.gojek.esb.GrpcRequest", "com.gojek.esb.de.meta.GrpcResponse", "com.gojek.esb.test/TestMethod", "{\"key\": \"%s\"}", "customer_id", outputMapping); + grpcSourceConfig = new GrpcSourceConfig("localhost", 8000, "io.odpf.dagger.consumer.TestGrpcRequest", "io.odpf.dagger.consumer.TestGrpcResponse", "io.odpf.dagger.consumer.test/TestMethod", "{\"key\": \"%s\"}", "customer_id", outputMapping); - grpcSourceConfig.setType("com.gojek.esb.de.meta.GrpcResponse"); + grpcSourceConfig.setType("io.odpf.dagger.consumer.TestGrpcResponse"); DynamicMessage message = DynamicMessage.parseFrom(TestGrpcResponse.getDescriptor(), TestGrpcResponse.newBuilder().setSuccess(true).build().toByteArray()); GrpcResponseHandler grpcResponseHandler = new GrpcResponseHandler(grpcSourceConfig, meterStatsManager, rowManager, columnNameManager, descriptor, resultFuture, errorReporter, new PostResponseTelemetry()); @@ -107,12 +105,12 @@ public void shouldDetectProperBodyAndHandleResponseIfRetainResponseTypeIsFalse() @Test public void shouldDetectProperBodyAndHandleResponseIfRetainResponseTypeIsFalseANdTypeHasDifferentDatType() throws InvalidProtocolBufferException { - descriptor = BiDriverCicilanLogMessage.getDescriptor(); + descriptor = TestBookingLogMessage.getDescriptor(); outputMapping.put("driver_id", new OutputMapping("$.driver_id")); - grpcSourceConfig = new GrpcSourceConfig("localhost", 8000, "com.gojek.esb.GrpcRequest", "com.gojek.esb.de.meta.GrpcResponse", "com.gojek.esb.test/TestMethod", "{\"key\": \"%s\"}", "customer_id", outputMapping); + grpcSourceConfig = new GrpcSourceConfig("localhost", 8000, "io.odpf.dagger.consumer.TestGrpcRequest", "io.odpf.dagger.consumer.TestGrpcResponse", "io.odpf.dagger.consumer.test/TestMethod", "{\"key\": \"%s\"}", "customer_id", outputMapping); grpcSourceConfig.setRetainResponseType(false); - grpcSourceConfig.setType("com.gojek.esb.bicicilan.BiDriverCicilanLogMessage"); + grpcSourceConfig.setType("io.odpf.dagger.consumer.TestAggregatedSupplyMessage"); streamData.setField(0, inputData); @@ -121,16 +119,16 @@ public void shouldDetectProperBodyAndHandleResponseIfRetainResponseTypeIsFalseAN columnNameManager = new ColumnNameManager(inputColumnNames, outputColumnNames); - BookingLogMessage build = BookingLogMessage.newBuilder().setDriverId("250").build(); - DynamicMessage message = DynamicMessage.parseFrom(BookingLogMessage.getDescriptor(), build.toByteArray()); - GrpcResponseHandler grpcResponseHandler = new GrpcResponseHandler(grpcSourceConfig, meterStatsManager, rowManager, columnNameManager, BiDriverCicilanLogMessage.getDescriptor(), resultFuture, errorReporter, new PostResponseTelemetry()); + TestBookingLogMessage build = TestBookingLogMessage.newBuilder().setDriverId("250").build(); + DynamicMessage message = DynamicMessage.parseFrom(TestBookingLogMessage.getDescriptor(), build.toByteArray()); + GrpcResponseHandler grpcResponseHandler = new GrpcResponseHandler(grpcSourceConfig, meterStatsManager, rowManager, columnNameManager, TestBookingLogMessage.getDescriptor(), resultFuture, errorReporter, new PostResponseTelemetry()); streamData.setField(1, new Row(1)); rowManager = new RowManager(streamData); Row resultStreamData = new Row(2); Row outputData = new Row(1); - outputData.setField(0, 250); + outputData.setField(0, "250"); resultStreamData.setField(0, inputData); resultStreamData.setField(1, outputData); @@ -147,7 +145,7 @@ public void shouldDetectProperBodyAndHandleResponseIfRetainResponseTypeIsFalseAN @Test public void shouldRecordErrorInCaseOfUnknownException() throws InvalidProtocolBufferException { outputMapping.put("success", new OutputMapping("$.success")); - grpcSourceConfig = new GrpcSourceConfig("localhost", 8000, "com.gojek.esb.GrpcRequest", "com.gojek.esb.de.meta.GrpcResponse", "com.gojek.esb.test/TestMethod", "{\"key\": \"%s\"}", "customer_id", outputMapping); + grpcSourceConfig = new GrpcSourceConfig("localhost", 8000, "io.odpf.dagger.consumer.TestGrpcRequest", "io.odpf.dagger.consumer.TestGrpcResponse", "io.odpf.dagger.consumer.test/TestMethod", "{\"key\": \"%s\"}", "customer_id", outputMapping); GrpcResponseHandler grpcResponseHandler = new GrpcResponseHandler(grpcSourceConfig, meterStatsManager, rowManager, columnNameManager, descriptor, resultFuture, errorReporter, new PostResponseTelemetry()); @@ -169,7 +167,7 @@ public void shouldRecordErrorInCaseOfUnknownException() throws InvalidProtocolBu @Test public void shouldRecordFatalErrorInCaseOfUnknownExceptionWithFailOnErrorTrue() throws InvalidProtocolBufferException { outputMapping.put("success", new OutputMapping("$.success")); - grpcSourceConfig = new GrpcSourceConfig("localhost", 8000, "com.gojek.esb.GrpcRequest", "com.gojek.esb.de.meta.GrpcResponse", "com.gojek.esb.test/TestMethod", "{\"key\": \"%s\"}", "customer_id", outputMapping); + grpcSourceConfig = new GrpcSourceConfig("localhost", 8000, "io.odpf.dagger.consumer.TestGrpcRequest", "io.odpf.dagger.consumer.TestGrpcResponse", "io.odpf.dagger.consumer.test/TestMethod", "{\"key\": \"%s\"}", "customer_id", outputMapping); grpcSourceConfig.setFailOnErrors(true); GrpcResponseHandler grpcResponseHandler = new GrpcResponseHandler(grpcSourceConfig, meterStatsManager, rowManager, columnNameManager, descriptor, resultFuture, errorReporter, new PostResponseTelemetry()); @@ -192,14 +190,14 @@ public void shouldRecordFatalErrorInCaseOfUnknownExceptionWithFailOnErrorTrue() @Test public void shouldDetectExceptionIfMessageIsWrong() throws InvalidProtocolBufferException { outputMapping.put("success", new OutputMapping("$.order_number")); - grpcSourceConfig = new GrpcSourceConfig("localhost", 8000, "com.gojek.esb.GrpcRequest", "com.gojek.esb.de.meta.WrongGrpcResponse", "com.gojek.esb.test/TestMethod", "{\"key\": \"%s\"}", "customer_id", outputMapping); + grpcSourceConfig = new GrpcSourceConfig("localhost", 8000, "io.odpf.dagger.consumer.TestGrpcRequest", "io.odpf.dagger.consumer.de.meta.WrongGrpcResponse", "io.odpf.dagger.consumer.test/TestMethod", "{\"key\": \"%s\"}", "customer_id", outputMapping); grpcSourceConfig.setRetainResponseType(true); grpcSourceConfig.setFailOnErrors(true); - DynamicMessage message = DynamicMessage.parseFrom(GrpcResponse.getDescriptor(), GrpcResponse.newBuilder().setSuccess(true).build().toByteArray()); + DynamicMessage message = DynamicMessage.parseFrom(TestGrpcResponse.getDescriptor(), TestGrpcResponse.newBuilder().setSuccess(true).build().toByteArray()); - descriptor = BookingLogMessage.getDescriptor(); + descriptor = TestBookingLogMessage.getDescriptor(); GrpcResponseHandler grpcResponseHandler = new GrpcResponseHandler(grpcSourceConfig, meterStatsManager, rowManager, columnNameManager, descriptor, resultFuture, errorReporter, new PostResponseTelemetry()); Row resultStreamData = new Row(2); @@ -220,13 +218,13 @@ public void shouldDetectExceptionIfMessageIsWrong() throws InvalidProtocolBuffer @Test public void shouldThrowErrorWhenFieldIsNotPresentInOutputDescriptor() throws InvalidProtocolBufferException { outputMapping.put("value", new OutputMapping("$.field3")); - grpcSourceConfig = new GrpcSourceConfig("localhost", 8000, "com.gojek.esb.GrpcRequest", "com.gojek.esb.de.meta.GrpcResponse", "com.gojek.esb.test/TestMethod", "{\"key\": \"%s\"}", "customer_id", outputMapping); + grpcSourceConfig = new GrpcSourceConfig("localhost", 8000, "io.odpf.dagger.consumer.TestGrpcRequest", "io.odpf.dagger.consumer.TestGrpcResponse", "io.odpf.dagger.consumer.test/TestMethod", "{\"key\": \"%s\"}", "customer_id", outputMapping); - grpcSourceConfig.setType("com.gojek.esb.de.meta.GrpcResponse"); + grpcSourceConfig.setType("io.odpf.dagger.consumer.TestGrpcResponse"); DynamicMessage message = DynamicMessage.parseFrom(TestGrpcResponse.getDescriptor(), TestGrpcResponse.newBuilder().setSuccess(true).build().toByteArray()); - GrpcResponseHandler grpcResponseHandler = new GrpcResponseHandler(grpcSourceConfig, meterStatsManager, rowManager, columnNameManager, BookingLogMessage.getDescriptor(), resultFuture, errorReporter, new PostResponseTelemetry()); + GrpcResponseHandler grpcResponseHandler = new GrpcResponseHandler(grpcSourceConfig, meterStatsManager, rowManager, columnNameManager, TestBookingLogMessage.getDescriptor(), resultFuture, errorReporter, new PostResponseTelemetry()); Row resultStreamData = new Row(2); Row outputData = new Row(2); @@ -249,20 +247,21 @@ public void shouldThrowErrorWhenFieldIsNotPresentInOutputDescriptor() throws Inv @Test public void shouldDetectProperComplexBodyAndHandleResponseIfRetainResponseTypeIsFalse() throws InvalidProtocolBufferException { - outputMapping.put("address", new OutputMapping("$.driver_arrived_location.address")); - outputMapping.put("name", new OutputMapping("$.driver_arrived_location.name")); + outputMapping.put("address", new OutputMapping("$.driver_pickup_location.address")); + outputMapping.put("name", new OutputMapping("$.driver_pickup_location.name")); + - Location location = Location.newBuilder().setAddress("Indonesia").setName("GojekTech").build(); - BookingLogMessage bookingLogMessage = BookingLogMessage.newBuilder().setDriverArrivedLocation(location).setCustomerId("123456").build(); + TestLocation location = TestLocation.newBuilder().setAddress("Indonesia").setName("GojekTech").build(); + TestBookingLogMessage bookingLogMessage = TestBookingLogMessage.newBuilder().setDriverPickupLocation(location).setCustomerId("123456").build(); - grpcSourceConfig = new GrpcSourceConfig("localhost", 8000, "com.gojek.esb.GrpcRequest", "com.gojek.esb.de.meta.GrpcResponse", "com.gojek.esb.test/TestMethod", "{\"key\": \"%s\"}", "customer_id", outputMapping); + grpcSourceConfig = new GrpcSourceConfig("localhost", 8000, "io.odpf.dagger.consumer.TestGrpcRequest", "io.odpf.dagger.consumer.TestGrpcResponse", "io.odpf.dagger.consumer.test/TestMethod", "{\"key\": \"%s\"}", "customer_id", outputMapping); grpcSourceConfig.setRetainResponseType(true); outputColumnNames = Arrays.asList(new String[]{"address", "name"}); columnNameManager = new ColumnNameManager(inputColumnNames, outputColumnNames); - DynamicMessage message = DynamicMessage.parseFrom(BookingLogMessage.getDescriptor(), bookingLogMessage.toByteArray()); + DynamicMessage message = DynamicMessage.parseFrom(TestBookingLogMessage.getDescriptor(), bookingLogMessage.toByteArray()); GrpcResponseHandler grpcResponseHandler = new GrpcResponseHandler(grpcSourceConfig, meterStatsManager, rowManager, columnNameManager, descriptor, resultFuture, errorReporter, new PostResponseTelemetry()); Row resultStreamData = new Row(2); diff --git a/dagger-core/src/test/java/io/odpf/dagger/processors/external/grpc/GrpcSourceConfigTest.java b/dagger-core/src/test/java/io/odpf/dagger/processors/external/grpc/GrpcSourceConfigTest.java index 5f3ecb3d7..0caa71dc5 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/processors/external/grpc/GrpcSourceConfigTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/processors/external/grpc/GrpcSourceConfigTest.java @@ -56,14 +56,14 @@ public void setup() { requestVariables = "customer_id"; connectTimeout = "234"; failOnErrors = false; - grpcStencilUrl = "http://stencil.golabs.io/artifactory/proto-descriptors/feast-proto/latest"; - type = "com.gojek.esb.booking.BookingLogMessage"; + grpcStencilUrl = "http://localhost/feast-proto/latest"; + type = "InputProtoMessage"; capacity = 345; metricId = "metricId-http-01"; retainResponseType = false; - grpcMethodUrl = "com.esb.test/TestMethod"; - grpcResponseProtoSchema = "com.gojek.esb.response"; - grpcRequestProtoSchema = "com.gojek.esb.request"; + grpcMethodUrl = "test/TestMethod"; + grpcResponseProtoSchema = "ResponseMessage"; + grpcRequestProtoSchema = "RequestMessage"; grpcSourceConfig = new GrpcSourceConfig(endpoint, servicePort, grpcRequestProtoSchema, grpcResponseProtoSchema, grpcMethodUrl, requestPattern, requestVariables, streamTimeout, connectTimeout, failOnErrors, grpcStencilUrl, type, retainResponseType, headerMap, outputMappings, metricId, capacity); } @@ -168,21 +168,21 @@ public void shouldCollectStencilURLSFromGRPCSourceConfiguration() { List grpcStencilUrl = grpcSourceConfig.getGrpcStencilUrl(); Assert.assertEquals(1, grpcStencilUrl.size()); - Assert.assertEquals("http://stencil.golabs.io/artifactory/proto-descriptors/feast-proto/latest", grpcStencilUrl.get(0)); + Assert.assertEquals("http://localhost/feast-proto/latest", grpcStencilUrl.get(0)); } @Test public void shouldCollectMultipleStencilURLSFromGRPCSourceConfiguration() { - grpcStencilUrl = "http://stencil.golabs.io/artifactory/proto-descriptors/feast-proto/latest,http://artifactory-gojek.golabs.io/artifactory/proto-descriptors/esb-log-entities/latest,http://artifactory-gojek.golabs.io/artifactory/proto-descriptors/goid-events/latest,http://artifactory-gojek.golabs.io/artifactory/proto-descriptors/growth-log-entities/release"; + grpcStencilUrl = "http://localhost/feast-proto/latest,http://localhost/log-entities/latest,http://localhost/events/latest,http://localhost/growth/release"; grpcSourceConfig = new GrpcSourceConfig(endpoint, servicePort, grpcRequestProtoSchema, grpcResponseProtoSchema, grpcMethodUrl, requestPattern, requestVariables, streamTimeout, connectTimeout, failOnErrors, grpcStencilUrl, type, retainResponseType, headerMap, outputMappings, metricId, capacity); List grpcStencilUrl = grpcSourceConfig.getGrpcStencilUrl(); Assert.assertEquals(4, grpcStencilUrl.size()); - Assert.assertEquals("http://stencil.golabs.io/artifactory/proto-descriptors/feast-proto/latest", grpcStencilUrl.get(0)); - Assert.assertEquals("http://artifactory-gojek.golabs.io/artifactory/proto-descriptors/esb-log-entities/latest", grpcStencilUrl.get(1)); - Assert.assertEquals("http://artifactory-gojek.golabs.io/artifactory/proto-descriptors/goid-events/latest", grpcStencilUrl.get(2)); - Assert.assertEquals("http://artifactory-gojek.golabs.io/artifactory/proto-descriptors/growth-log-entities/release", grpcStencilUrl.get(3)); + Assert.assertEquals("http://localhost/feast-proto/latest", grpcStencilUrl.get(0)); + Assert.assertEquals("http://localhost/log-entities/latest", grpcStencilUrl.get(1)); + Assert.assertEquals("http://localhost/events/latest", grpcStencilUrl.get(2)); + Assert.assertEquals("http://localhost/growth/release", grpcStencilUrl.get(3)); } diff --git a/dagger-core/src/test/java/io/odpf/dagger/processors/external/grpc/GrpcStreamDecoratorTest.java b/dagger-core/src/test/java/io/odpf/dagger/processors/external/grpc/GrpcStreamDecoratorTest.java index 75c227f53..80338eb4f 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/processors/external/grpc/GrpcStreamDecoratorTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/processors/external/grpc/GrpcStreamDecoratorTest.java @@ -1,7 +1,7 @@ package io.odpf.dagger.processors.external.grpc; -import com.gojek.daggers.processors.external.ExternalMetricConfig; -import com.gojek.daggers.processors.external.SchemaConfig; +import io.odpf.dagger.processors.external.ExternalMetricConfig; +import io.odpf.dagger.processors.external.SchemaConfig; import org.junit.Before; import org.junit.Test; import org.mockito.Mock; diff --git a/dagger-core/src/test/java/io/odpf/dagger/processors/external/grpc/client/DynamicMessageMarshallerTest.java b/dagger-core/src/test/java/io/odpf/dagger/processors/external/grpc/client/DynamicMessageMarshallerTest.java index e1c5a76f5..99de3dd12 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/processors/external/grpc/client/DynamicMessageMarshallerTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/processors/external/grpc/client/DynamicMessageMarshallerTest.java @@ -1,8 +1,8 @@ package io.odpf.dagger.processors.external.grpc.client; -import com.gojek.esb.consumer.TestGrpcRequest; import com.google.protobuf.DynamicMessage; import com.google.protobuf.InvalidProtocolBufferException; +import io.odpf.dagger.consumer.TestGrpcRequest; import org.apache.commons.io.IOUtils; import org.junit.Assert; import org.junit.Test; diff --git a/dagger-core/src/test/java/io/odpf/dagger/processors/external/grpc/client/GrpcRequestHandlerTest.java b/dagger-core/src/test/java/io/odpf/dagger/processors/external/grpc/client/GrpcRequestHandlerTest.java index 1fdd72a84..890e7677d 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/processors/external/grpc/client/GrpcRequestHandlerTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/processors/external/grpc/client/GrpcRequestHandlerTest.java @@ -1,14 +1,12 @@ package io.odpf.dagger.processors.external.grpc.client; +import io.odpf.dagger.consumer.TestGrpcRequest; import io.odpf.dagger.exception.InvalidGrpcBodyException; import io.odpf.dagger.processors.common.DescriptorManager; import io.odpf.dagger.processors.external.grpc.GrpcSourceConfig; -import com.gojek.esb.consumer.TestGrpcRequest; import com.google.protobuf.Descriptors; import com.google.protobuf.DynamicMessage; import com.google.protobuf.InvalidProtocolBufferException; -import io.odpf.dagger.processors.common.DescriptorManager; -import io.odpf.dagger.processors.external.grpc.GrpcSourceConfig; import org.junit.Assert; import org.junit.Test; @@ -33,7 +31,7 @@ public void bodyShouldBeCreatedForProperPayload() throws InvalidProtocolBufferEx requestVariablesValues = new Object[]{"val1", "val2"}; - when(grpcSourceConfig.getGrpcRequestProtoSchema()).thenReturn("com.gojek.esb.consumer.TestGrpcRequest"); + when(grpcSourceConfig.getGrpcRequestProtoSchema()).thenReturn("TestGrpcRequest"); when(grpcSourceConfig.getPattern()).thenReturn("{'field1': '%s' , 'field2' : '%s'}"); when(descriptorManager.getDescriptor(any())).thenReturn(TestGrpcRequest.getDescriptor()); @@ -58,7 +56,7 @@ public void shouldThrowExceptionInCaseOfWrongBody() throws InvalidProtocolBuffer requestVariablesValues = new Object[]{"val1", "val2"}; - when(grpcSourceConfig.getGrpcRequestProtoSchema()).thenReturn("com.gojek.esb.consumer.TestGrpcRequest"); + when(grpcSourceConfig.getGrpcRequestProtoSchema()).thenReturn("TestGrpcRequest"); when(grpcSourceConfig.getPattern()).thenReturn("{'field1': '%s' , 'field2' : '%s'"); when(descriptorManager.getDescriptor(any())).thenReturn(TestGrpcRequest.getDescriptor()); @@ -76,7 +74,7 @@ public void shouldThrowExceptionInCaseOfEmptyPattern() { requestVariablesValues = new Object[]{"val1", "val2"}; - when(grpcSourceConfig.getGrpcRequestProtoSchema()).thenReturn("com.gojek.esb.consumer.TestGrpcRequest"); + when(grpcSourceConfig.getGrpcRequestProtoSchema()).thenReturn("TestGrpcRequest"); when(grpcSourceConfig.getPattern()).thenReturn(""); when(descriptorManager.getDescriptor(any())).thenReturn(TestGrpcRequest.getDescriptor()); diff --git a/dagger-core/src/test/java/io/odpf/dagger/processors/external/http/HttpAsyncConnectorTest.java b/dagger-core/src/test/java/io/odpf/dagger/processors/external/http/HttpAsyncConnectorTest.java index 10b5196c5..6955404e1 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/processors/external/http/HttpAsyncConnectorTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/processors/external/http/HttpAsyncConnectorTest.java @@ -1,5 +1,6 @@ package io.odpf.dagger.processors.external.http; +import io.odpf.dagger.consumer.TestBookingLogMessage; import org.apache.flink.configuration.Configuration; import org.apache.flink.streaming.api.functions.async.ResultFuture; import org.apache.flink.types.Row; @@ -19,7 +20,6 @@ import io.odpf.dagger.processors.common.DescriptorManager; import io.odpf.dagger.processors.common.OutputMapping; import com.gojek.de.stencil.client.StencilClient; -import com.gojek.esb.booking.GoFoodBookingLogMessage; import org.asynchttpclient.AsyncHttpClient; import org.asynchttpclient.BoundRequestBuilder; import org.junit.Assert; @@ -93,11 +93,11 @@ public void setUp() { streamData.setField(1, new Row(1)); boolean telemetryEnabled = true; long shutDownPeriod = 0L; - inputProtoClasses = new String[]{"com.gojek.esb.booking.BookingLogMessage"}; + inputProtoClasses = new String[]{"InputProtoMessage"}; when(schemaConfig.getInputProtoClasses()).thenReturn(inputProtoClasses); when(schemaConfig.getColumnNameManager()).thenReturn(new ColumnNameManager(inputColumnNames, outputColumnNames)); when(schemaConfig.getStencilClientOrchestrator()).thenReturn(stencilClientOrchestrator); - when(schemaConfig.getOutputProtoClassName()).thenReturn("com.gojek.esb.booking.GoFoodBookingLogMessage"); + when(schemaConfig.getOutputProtoClassName()).thenReturn("OutputProtoMessage"); externalMetricConfig = new ExternalMetricConfig("metricId-http-01", shutDownPeriod, telemetryEnabled); httpSourceConfig = new HttpSourceConfig("http://localhost:8080/test", "POST", "{\"key\": \"%s\"}", @@ -159,7 +159,7 @@ public void shouldFetchDescriptorInInvoke() throws Exception { when(httpClient.preparePost("http://localhost:8080/test")).thenReturn(boundRequestBuilder); when(boundRequestBuilder.setBody("{\"key\": \"123456\"}")).thenReturn(boundRequestBuilder); when(stencilClientOrchestrator.getStencilClient()).thenReturn(stencilClient); - when(stencilClient.get(inputProtoClasses[0])).thenReturn(GoFoodBookingLogMessage.getDescriptor()); + when(stencilClient.get(inputProtoClasses[0])).thenReturn(TestBookingLogMessage.getDescriptor()); DescriptorManager descriptorManager = new DescriptorManager(stencilClientOrchestrator); HttpAsyncConnector httpAsyncConnector = new HttpAsyncConnector(httpSourceConfig, externalMetricConfig, schemaConfig, httpClient, errorReporter, meterStatsManager, descriptorManager); @@ -176,7 +176,7 @@ public void shouldCompleteExceptionallyIfOutputDescriptorNotFound() throws Excep when(httpClient.preparePost("http://localhost:8080/test")).thenReturn(boundRequestBuilder); when(boundRequestBuilder.setBody("{\"key\": \"123456\"}")).thenReturn(boundRequestBuilder); when(stencilClientOrchestrator.getStencilClient()).thenReturn(stencilClient); - when(descriptorManager.getDescriptor(inputProtoClasses[0])).thenReturn(GoFoodBookingLogMessage.getDescriptor()); + when(descriptorManager.getDescriptor(inputProtoClasses[0])).thenReturn(TestBookingLogMessage.getDescriptor()); when(descriptorManager.getDescriptor(httpConfigType)).thenThrow(new DescriptorNotFoundException()); HttpAsyncConnector httpAsyncConnector = new HttpAsyncConnector(httpSourceConfig, externalMetricConfig, schemaConfig, httpClient, errorReporter, meterStatsManager, descriptorManager); @@ -193,7 +193,7 @@ public void shouldCompleteExceptionallyIfOutputDescriptorNotFound() throws Excep @Test public void shouldCompleteExceptionallyWhenEndpointVariableIsInvalid() { - when(descriptorManager.getDescriptor(inputProtoClasses[0])).thenReturn(GoFoodBookingLogMessage.getDescriptor()); + when(descriptorManager.getDescriptor(inputProtoClasses[0])).thenReturn(TestBookingLogMessage.getDescriptor()); String invalid_request_variable = "invalid_variable"; httpSourceConfig = new HttpSourceConfig("http://localhost:8080/test", "POST", "{\"key\": \"%s\"}", invalid_request_variable, "123", "234", false, httpConfigType, "345", headers, outputMapping, "metricId_02", false); when(httpClient.preparePost("http://localhost:8080/test")).thenReturn(boundRequestBuilder); @@ -216,7 +216,7 @@ public void shouldCompleteExceptionallyWhenEndpointVariableIsInvalid() { public void shouldCompleteExceptionallyWhenEndpointVariableIsEmptyAndRequiredInPattern() { String empty_request_variable = ""; httpSourceConfig = new HttpSourceConfig("http://localhost:8080/test", "POST", "{\"key\": \"%s\"}", empty_request_variable, "123", "234", false, httpConfigType, "345", headers, outputMapping, "metricId_02", false); - when(descriptorManager.getDescriptor(inputProtoClasses[0])).thenReturn(GoFoodBookingLogMessage.getDescriptor()); + when(descriptorManager.getDescriptor(inputProtoClasses[0])).thenReturn(TestBookingLogMessage.getDescriptor()); when(httpClient.preparePost("http://localhost:8080/test")).thenReturn(boundRequestBuilder); when(boundRequestBuilder.setBody("{\"key\": \"123456\"}")).thenReturn(boundRequestBuilder); HttpAsyncConnector httpAsyncConnector = new HttpAsyncConnector(httpSourceConfig, externalMetricConfig, schemaConfig, httpClient, errorReporter, meterStatsManager, descriptorManager); @@ -257,7 +257,7 @@ public void shouldEnrichWhenEndpointVariableIsEmptyAndNotRequiredInPattern() thr public void shouldCompleteExceptionallyWhenEndpointPatternIsInvalid() { String invalidRequestPattern = "{\"key\": \"%\"}"; httpSourceConfig = new HttpSourceConfig("http://localhost:8080/test", "POST", invalidRequestPattern, "customer_id", "123", "234", false, httpConfigType, "345", headers, outputMapping, "metricId_02", false); - when(descriptorManager.getDescriptor(inputProtoClasses[0])).thenReturn(GoFoodBookingLogMessage.getDescriptor()); + when(descriptorManager.getDescriptor(inputProtoClasses[0])).thenReturn(TestBookingLogMessage.getDescriptor()); when(httpClient.preparePost("http://localhost:8080/test")).thenReturn(boundRequestBuilder); when(boundRequestBuilder.setBody("{\"key\": \"123456\"}")).thenReturn(boundRequestBuilder); HttpAsyncConnector httpAsyncConnector = new HttpAsyncConnector(httpSourceConfig, externalMetricConfig, schemaConfig, httpClient, errorReporter, meterStatsManager, descriptorManager); @@ -279,35 +279,35 @@ public void shouldGetDescriptorFromOutputProtoIfTypeNotGiven() throws Exception when(httpClient.preparePost("http://localhost:8080/test")).thenReturn(boundRequestBuilder); when(boundRequestBuilder.setBody("{\"key\": \"123456\"}")).thenReturn(boundRequestBuilder); when(stencilClientOrchestrator.getStencilClient()).thenReturn(stencilClient); - when(descriptorManager.getDescriptor(inputProtoClasses[0])).thenReturn(GoFoodBookingLogMessage.getDescriptor()); + when(descriptorManager.getDescriptor(inputProtoClasses[0])).thenReturn(TestBookingLogMessage.getDescriptor()); HttpAsyncConnector httpAsyncConnector = new HttpAsyncConnector(httpSourceConfig, externalMetricConfig, schemaConfig, httpClient, errorReporter, meterStatsManager, descriptorManager); httpAsyncConnector.open(flinkConfiguration); httpAsyncConnector.asyncInvoke(streamData, resultFuture); - verify(descriptorManager, times(1)).getDescriptor("com.gojek.esb.booking.BookingLogMessage"); + verify(descriptorManager, times(1)).getDescriptor("InputProtoMessage"); } @Test public void shouldGetDescriptorFromTypeIfGiven() throws Exception { - httpSourceConfig = new HttpSourceConfig("http://localhost:8080/test", "POST", "{\"key\": \"%s\"}", "customer_id", "123", "234", false, "com.gojek.esb.booking.TestBookingLogMessage", "345", headers, outputMapping, "metricId_02", false); + httpSourceConfig = new HttpSourceConfig("http://localhost:8080/test", "POST", "{\"key\": \"%s\"}", "customer_id", "123", "234", false, "TestBookingLogMessage", "345", headers, outputMapping, "metricId_02", false); when(httpClient.preparePost("http://localhost:8080/test")).thenReturn(boundRequestBuilder); when(boundRequestBuilder.setBody("{\"key\": \"123456\"}")).thenReturn(boundRequestBuilder); when(stencilClientOrchestrator.getStencilClient()).thenReturn(stencilClient); - when(descriptorManager.getDescriptor(inputProtoClasses[0])).thenReturn(GoFoodBookingLogMessage.getDescriptor()); + when(descriptorManager.getDescriptor(inputProtoClasses[0])).thenReturn(TestBookingLogMessage.getDescriptor()); HttpAsyncConnector httpAsyncConnector = new HttpAsyncConnector(httpSourceConfig, externalMetricConfig, schemaConfig, httpClient, errorReporter, meterStatsManager, descriptorManager); httpAsyncConnector.open(flinkConfiguration); httpAsyncConnector.asyncInvoke(streamData, resultFuture); - verify(descriptorManager, times(1)).getDescriptor("com.gojek.esb.booking.TestBookingLogMessage"); + verify(descriptorManager, times(1)).getDescriptor("TestBookingLogMessage"); } @Test public void shouldCompleteExceptionallyWhenEndpointPatternIsIncompatible() throws Exception { String invalidRequestPattern = "{\"key\": \"%d\"}"; httpSourceConfig = new HttpSourceConfig("http://localhost:8080/test", "POST", invalidRequestPattern, "customer_id", "123", "234", false, httpConfigType, "345", headers, outputMapping, "metricId_02", false); - when(descriptorManager.getDescriptor(inputProtoClasses[0])).thenReturn(GoFoodBookingLogMessage.getDescriptor()); + when(descriptorManager.getDescriptor(inputProtoClasses[0])).thenReturn(TestBookingLogMessage.getDescriptor()); when(httpClient.preparePost("http://localhost:8080/test")).thenReturn(boundRequestBuilder); when(boundRequestBuilder.setBody("{\"key\": \"123456\"}")).thenReturn(boundRequestBuilder); HttpAsyncConnector httpAsyncConnector = new HttpAsyncConnector(httpSourceConfig, externalMetricConfig, schemaConfig, httpClient, errorReporter, meterStatsManager, descriptorManager); @@ -328,7 +328,7 @@ public void shouldPerformPostRequestWithCorrectParameters() throws Exception { when(httpClient.preparePost("http://localhost:8080/test")).thenReturn(boundRequestBuilder); when(boundRequestBuilder.setBody("{\"key\": \"123456\"}")).thenReturn(boundRequestBuilder); when(stencilClientOrchestrator.getStencilClient()).thenReturn(stencilClient); - when(descriptorManager.getDescriptor(inputProtoClasses[0])).thenReturn(GoFoodBookingLogMessage.getDescriptor()); + when(descriptorManager.getDescriptor(inputProtoClasses[0])).thenReturn(TestBookingLogMessage.getDescriptor()); HttpAsyncConnector httpAsyncConnector = new HttpAsyncConnector(httpSourceConfig, externalMetricConfig, schemaConfig, httpClient, errorReporter, meterStatsManager, descriptorManager); @@ -344,7 +344,7 @@ public void shouldAddCustomHeaders() throws Exception { when(httpClient.preparePost("http://localhost:8080/test")).thenReturn(boundRequestBuilder); when(boundRequestBuilder.setBody("{\"key\": \"123456\"}")).thenReturn(boundRequestBuilder); when(stencilClientOrchestrator.getStencilClient()).thenReturn(stencilClient); - when(descriptorManager.getDescriptor(inputProtoClasses[0])).thenReturn(GoFoodBookingLogMessage.getDescriptor()); + when(descriptorManager.getDescriptor(inputProtoClasses[0])).thenReturn(TestBookingLogMessage.getDescriptor()); HttpAsyncConnector httpAsyncConnector = new HttpAsyncConnector(httpSourceConfig, externalMetricConfig, schemaConfig, httpClient, errorReporter, meterStatsManager, descriptorManager); @@ -394,7 +394,7 @@ public void shouldPassTheInputWithRowSizeCorrespondingToColumnNamesInTimeoutIfFa @Test public void shouldThrowExceptionIfUnsupportedHttpVerbProvided() throws Exception { - when(descriptorManager.getDescriptor(inputProtoClasses[0])).thenReturn(GoFoodBookingLogMessage.getDescriptor()); + when(descriptorManager.getDescriptor(inputProtoClasses[0])).thenReturn(TestBookingLogMessage.getDescriptor()); HttpSourceConfig httpSourceConfig = new HttpSourceConfig("http://localhost:8080/test", "PATCH", "{\"key\": \"%s\"}", "customer_id", "123", "234", true, httpConfigType, "345", headers, outputMapping, "metricId_02", false); HttpAsyncConnector httpAsyncConnector = new HttpAsyncConnector(httpSourceConfig, externalMetricConfig, schemaConfig, httpClient, errorReporter, meterStatsManager, descriptorManager); diff --git a/dagger-core/src/test/java/io/odpf/dagger/processors/external/http/HttpResponseHandlerTest.java b/dagger-core/src/test/java/io/odpf/dagger/processors/external/http/HttpResponseHandlerTest.java index dbfdabb93..28a18be75 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/processors/external/http/HttpResponseHandlerTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/processors/external/http/HttpResponseHandlerTest.java @@ -1,5 +1,7 @@ package io.odpf.dagger.processors.external.http; +import io.odpf.dagger.consumer.TestBookingLogMessage; +import io.odpf.dagger.consumer.TestSurgeFactorLogMessage; import io.odpf.dagger.exception.HttpFailureException; import io.odpf.dagger.metrics.MeterStatsManager; import io.odpf.dagger.metrics.aspects.Aspects; @@ -8,8 +10,6 @@ import io.odpf.dagger.processors.common.OutputMapping; import io.odpf.dagger.processors.common.PostResponseTelemetry; import io.odpf.dagger.processors.common.RowManager; -import com.gojek.esb.aggregate.surge.SurgeFactorLogMessage; -import com.gojek.esb.booking.BookingLogMessage; import com.google.protobuf.Descriptors; import org.apache.flink.streaming.api.functions.async.ResultFuture; import org.apache.flink.types.Row; @@ -63,7 +63,7 @@ public class HttpResponseHandlerTest { @Before public void setup() { initMocks(this); - descriptor = SurgeFactorLogMessage.getDescriptor(); + descriptor = TestSurgeFactorLogMessage.getDescriptor(); outputColumnNames = Collections.singletonList("value"); inputColumnNames = new String[]{"order_id", "customer_id", "driver_id"}; outputMapping = new HashMap<>(); @@ -289,8 +289,8 @@ public void shouldPopulateMultipleResultsFromHttpCallInInputRow() { @Test public void shouldThrowExceptionIfFieldNotFoundInFieldDescriptorWhenTypeIsPassed() { - httpConfigType = "com.gojek.esb.booking.BookingLogMessage"; - descriptor = BookingLogMessage.getDescriptor(); + httpConfigType = "io.odpf.dagger.consumer.TestBookingLogMessage"; + descriptor = TestBookingLogMessage.getDescriptor(); outputMapping.put("surge_factor", new OutputMapping("$.surge")); outputColumnNames = Collections.singletonList("surge_factor"); columnNameManager = new ColumnNameManager(inputColumnNames, outputColumnNames); diff --git a/dagger-core/src/test/java/io/odpf/dagger/processors/external/http/HttpSourceConfigTest.java b/dagger-core/src/test/java/io/odpf/dagger/processors/external/http/HttpSourceConfigTest.java index 9cd5c836d..c188651d4 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/processors/external/http/HttpSourceConfigTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/processors/external/http/HttpSourceConfigTest.java @@ -47,7 +47,7 @@ public void setup() { requestVariables = "customer_id"; connectTimeout = "234"; failOnErrors = false; - type = "com.gojek.esb.booking.BookingLogMessage"; + type = "InputProtoMessage"; capacity = "345"; metricId = "metricId-http-01"; retainResponseType = false; diff --git a/dagger-core/src/test/java/io/odpf/dagger/processors/external/pg/PgAsyncConnectorTest.java b/dagger-core/src/test/java/io/odpf/dagger/processors/external/pg/PgAsyncConnectorTest.java index c440eace0..2bc4244a9 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/processors/external/pg/PgAsyncConnectorTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/processors/external/pg/PgAsyncConnectorTest.java @@ -1,5 +1,6 @@ package io.odpf.dagger.processors.external.pg; +import io.odpf.dagger.consumer.TestBookingLogMessage; import io.odpf.dagger.core.StencilClientOrchestrator; import io.odpf.dagger.exception.DescriptorNotFoundException; import io.odpf.dagger.exception.InvalidConfigurationException; @@ -11,7 +12,6 @@ import io.odpf.dagger.processors.external.ExternalMetricConfig; import io.odpf.dagger.processors.external.SchemaConfig; import com.gojek.de.stencil.client.StencilClient; -import com.gojek.esb.booking.GoFoodBookingLogMessage; import io.vertx.pgclient.PgPool; import io.vertx.sqlclient.RowSet; import org.apache.flink.configuration.Configuration; @@ -73,22 +73,22 @@ public void setUp() { streamRow.setField(0, inputData); streamRow.setField(1, outputData); outputMapping = new HashMap<>(); - pgSourceConfig = new PgSourceConfig("10.0.60.227,10.0.60.229,10.0.60.228", "5432", "user", "password", "db", "com.gojek.esb.fraud.DriverProfileFlattenLogMessage", "30", + pgSourceConfig = new PgSourceConfig("localhost", "5432", "user", "password", "db", "io.odpf.consumer.TestFlattenLogMessage", "30", "5000", outputMapping, "5000", "5000", "customer_id", "select * from public.customers where customer_id = '%s'", false, metricId, false); resultFuture = mock(ResultFuture.class); String[] inputColumnNames = new String[]{"order_id", "event_timestamp", "driver_id", "customer_id", "status", "service_area_id"}; boolean telemetryEnabled = true; long shutDownPeriod = 0L; - inputProtoClasses = new String[]{"com.gojek.esb.booking.GoFoodBookingLogMessage"}; + inputProtoClasses = new String[]{"io.odpf.consumer.TestLogMessage"}; metricId = "metricId-pg-01"; externalMetricConfig = new ExternalMetricConfig(metricId, shutDownPeriod, telemetryEnabled); stencilClient = mock(StencilClient.class); when(schemaConfig.getInputProtoClasses()).thenReturn(inputProtoClasses); when(schemaConfig.getColumnNameManager()).thenReturn(new ColumnNameManager(inputColumnNames, new ArrayList<>())); when(schemaConfig.getStencilClientOrchestrator()).thenReturn(stencilClientOrchestrator); - when(schemaConfig.getOutputProtoClassName()).thenReturn("com.gojek.esb.booking.BookingLogMessage"); - when(stencilClient.get(inputProtoClasses[0])).thenReturn(GoFoodBookingLogMessage.getDescriptor()); + when(schemaConfig.getOutputProtoClassName()).thenReturn("io.odpf.consumer.TestBookingLogMessage"); + when(stencilClient.get(inputProtoClasses[0])).thenReturn(TestBookingLogMessage.getDescriptor()); when(stencilClientOrchestrator.getStencilClient()).thenReturn(stencilClient); } @@ -102,7 +102,7 @@ public void shouldFetchDescriptorInInvoke() throws Exception { pgAsyncConnector.open(configuration); pgAsyncConnector.asyncInvoke(streamRow, resultFuture); - verify(stencilClient, times(1)).get("com.gojek.esb.fraud.DriverProfileFlattenLogMessage"); + verify(stencilClient, times(1)).get("io.odpf.consumer.TestFlattenLogMessage"); } @Test @@ -127,7 +127,7 @@ public void shouldCompleteExceptionallyIfDescriptorNotFound() throws Exception { @Test public void shouldNotEnrichOutputWhenQueryVariableIsInvalid() throws Exception { - pgSourceConfig = new PgSourceConfig("10.0.60.227,10.0.60.229,10.0.60.228", "9200", "user", "password", "db", "com.gojek.esb.fraud.DriverProfileFlattenLogMessage", "30", + pgSourceConfig = new PgSourceConfig("localhost", "9200", "user", "password", "db", "io.odpf.consumer.TestFlattenLogMessage", "30", "5000", outputMapping, "5000", "5000", "invalid_variable", "select * from public.customers where customer_id = '%s'", false, metricId, false); PgAsyncConnector pgAsyncConnector = new PgAsyncConnector(pgSourceConfig, externalMetricConfig, schemaConfig, meterStatsManager, pgClient, errorReporter); @@ -142,7 +142,7 @@ public void shouldNotEnrichOutputWhenQueryVariableIsInvalid() throws Exception { @Test public void shoulCompleteExceptionallyWhenQueryVariableFieldIsNullOrRemovedButRequiredInPattern() throws Exception { - pgSourceConfig = new PgSourceConfig("10.0.60.227,10.0.60.229,10.0.60.228", "9200", "user", "password", "db", "com.gojek.esb.fraud.DriverProfileFlattenLogMessage", "30", + pgSourceConfig = new PgSourceConfig("localhost", "9200", "user", "password", "db", "io.odpf.consumer.TestFlattenLogMessage", "30", "5000", outputMapping, "5000", "5000", null, "select * from public.customers where customer_id = '%s'", false, metricId, false); PgAsyncConnector pgAsyncConnector = new PgAsyncConnector(pgSourceConfig, externalMetricConfig, schemaConfig, meterStatsManager, pgClient, errorReporter); @@ -158,7 +158,7 @@ public void shoulCompleteExceptionallyWhenQueryVariableFieldIsNullOrRemovedButRe @Test public void shouldEnrichWhenQueryVariableFieldIsNullOrRemovedButNotRequiredInPattern() throws Exception { String query = "select * from public.customers where customer_id = '12345'"; - pgSourceConfig = new PgSourceConfig("10.0.60.227,10.0.60.229,10.0.60.228", "9200", "user", "password", "db", "com.gojek.esb.fraud.DriverProfileFlattenLogMessage", "30", + pgSourceConfig = new PgSourceConfig("localhost", "9200", "user", "password", "db", "io.odpf.consumer.TestFlattenLogMessage", "30", "5000", outputMapping, "5000", "5000", null, query, false, metricId, false); PgAsyncConnector pgAsyncConnector = new PgAsyncConnector(pgSourceConfig, externalMetricConfig, schemaConfig, meterStatsManager, pgClient, errorReporter); @@ -179,7 +179,7 @@ public void shouldEnrichWhenQueryVariableFieldIsNullOrRemovedButNotRequiredInPat public void shouldGiveErrorWhenQueryPatternIsInvalid() throws Exception { inputData.setField(3, "11223344545"); String invalidQueryPattern = "select * from public.customers where customer_id = %"; - pgSourceConfig = new PgSourceConfig("10.0.60.227,10.0.60.229,10.0.60.228", "9200", "user", "password", "db", "com.gojek.esb.fraud.DriverProfileFlattenLogMessage", "30", + pgSourceConfig = new PgSourceConfig("localhost", "9200", "user", "password", "db", "io.odpf.consumer.TestFlattenLogMessage", "30", "5000", outputMapping, "5000", "5000", "customer_id", invalidQueryPattern, true, metricId, false); PgAsyncConnector pgAsyncConnector = new PgAsyncConnector(pgSourceConfig, externalMetricConfig, schemaConfig, meterStatsManager, pgClient, errorReporter); pgAsyncConnector.open(configuration); @@ -195,7 +195,7 @@ public void shouldGiveErrorWhenQueryPatternIsInvalid() throws Exception { public void shouldGiveErrorWhenQueryPatternIsIncompatible() throws Exception { inputData.setField(3, "11223344545"); String invalidQueryPattern = "select * from public.customers where customer_id = '%d'"; - pgSourceConfig = new PgSourceConfig("10.0.60.227,10.0.60.229,10.0.60.228", "9200", "user", "password", "db", "com.gojek.esb.fraud.DriverProfileFlattenLogMessage", "30", + pgSourceConfig = new PgSourceConfig("localhost", "9200", "user", "password", "db", "io.odpf.consumer.TestFlattenLogMessage", "30", "5000", outputMapping, "5000", "5000", "customer_id", invalidQueryPattern, false, metricId, false); PgAsyncConnector pgAsyncConnector = new PgAsyncConnector(pgSourceConfig, externalMetricConfig, schemaConfig, meterStatsManager, pgClient, errorReporter); pgAsyncConnector.open(configuration); @@ -302,7 +302,7 @@ public void shouldClosePgClientAndSetItToNullMarkingCloseConnectionEvent() { @Test public void shouldReportFatalExceptionAndCompleteExceptionallyWhenFailOnErrorsIsTrue() throws Exception { - pgSourceConfig = new PgSourceConfig("10.0.60.227,10.0.60.229,10.0.60.228", "9200", "user", "password", "db", "com.gojek.esb.fraud.DriverProfileFlattenLogMessage", "30", + pgSourceConfig = new PgSourceConfig("localhost", "9200", "user", "password", "db", "io.odpf.consumer.TestFlattenLogMessage", "30", "5000", outputMapping, "5000", "5000", "customer_id", "", true, metricId, false); pgClient = null; PgAsyncConnector pgAsyncConnector = new PgAsyncConnector(pgSourceConfig, externalMetricConfig, schemaConfig, meterStatsManager, pgClient, errorReporter); @@ -316,7 +316,7 @@ public void shouldReportFatalExceptionAndCompleteExceptionallyWhenFailOnErrorsIs @Test public void shouldGetDescriptorFromOutputProtoIfTypeNotGiven() throws Exception { - pgSourceConfig = new PgSourceConfig("10.0.60.227,10.0.60.229,10.0.60.228", "5432", "user", "password", "db", null, "30", + pgSourceConfig = new PgSourceConfig("localhost", "5432", "user", "password", "db", null, "30", "5000", outputMapping, "5000", "5000", "customer_id", "select * from public.customers where customer_id = '%s'", false, metricId, false); inputData.setField(3, "11223344545"); @@ -330,7 +330,7 @@ public void shouldGetDescriptorFromOutputProtoIfTypeNotGiven() throws Exception e.printStackTrace(); } - verify(stencilClient, times(1)).get("com.gojek.esb.booking.BookingLogMessage"); + verify(stencilClient, times(1)).get("io.odpf.consumer.TestBookingLogMessage"); } @Test @@ -347,7 +347,7 @@ public void shouldGetDescriptorFromTypeIfGiven() throws Exception { e.printStackTrace(); } - verify(stencilClient, times(1)).get("com.gojek.esb.fraud.DriverProfileFlattenLogMessage"); + verify(stencilClient, times(1)).get("io.odpf.consumer.TestFlattenLogMessage"); } } diff --git a/dagger-core/src/test/java/io/odpf/dagger/processors/external/pg/PgResponseHandlerTest.java b/dagger-core/src/test/java/io/odpf/dagger/processors/external/pg/PgResponseHandlerTest.java index 51e0e88f9..1dee42178 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/processors/external/pg/PgResponseHandlerTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/processors/external/pg/PgResponseHandlerTest.java @@ -1,5 +1,7 @@ package io.odpf.dagger.processors.external.pg; +import io.odpf.dagger.consumer.TestBookingLogMessage; +import io.odpf.dagger.consumer.TestSurgeFactorLogMessage; import io.odpf.dagger.exception.HttpFailureException; import io.odpf.dagger.metrics.MeterStatsManager; import io.odpf.dagger.metrics.aspects.Aspects; @@ -7,7 +9,6 @@ import io.odpf.dagger.processors.ColumnNameManager; import io.odpf.dagger.processors.common.PostResponseTelemetry; import io.odpf.dagger.processors.common.RowManager; -import com.gojek.esb.aggregate.surge.SurgeFactorLogMessage; import com.google.protobuf.Descriptors; import io.vertx.core.AsyncResult; import io.vertx.sqlclient.RowIterator; @@ -74,7 +75,7 @@ public class PgResponseHandlerTest { @Before public void setup() { initMocks(this); - descriptor = SurgeFactorLogMessage.getDescriptor(); + descriptor = TestBookingLogMessage.getDescriptor(); inputColumnNames = new String[0]; outputColumnNames = new ArrayList<>(); outputColumnNames.add("customer_url"); @@ -87,7 +88,7 @@ public void setup() { streamData.setField(1, new Row(2)); rowManager = new RowManager(streamData); columnNameManager = new ColumnNameManager(inputColumnNames, outputColumnNames); - pgSourceConfig = new PgSourceConfig("10.0.60.227,10.0.60.229,10.0.60.228", "5432", "user", "password", "db", "com.gojek.esb.fraud.DriverProfileFlattenLogMessage", "30", + pgSourceConfig = new PgSourceConfig("localhost", "5432", "user", "password", "db", "ProtoClass", "30", "5000", outputMapping, "5000", "5000", "customer_id", "select * from public.customers where customer_id = '%s'", false, metricId, false); } @@ -139,7 +140,7 @@ public void shouldGoToSuccessHandlerButCompleteWithNonFatalErrorWhenFailOnErrorI @Test public void shouldGoToSuccessHandlerButCompleteExceptionallyWithFatalErrorWhenFailOnErrorIsTrueAndIfEventSucceedsAndResultSetHasMultipleRow() { - pgSourceConfig = new PgSourceConfig("10.0.60.227,10.0.60.229,10.0.60.228", "5432", "user", "password", "db", "com.gojek.esb.fraud.DriverProfileFlattenLogMessage", "30", + pgSourceConfig = new PgSourceConfig("localhost", "5432", "user", "password", "db", "ProtoClass", "30", "5000", outputMapping, "5000", "5000", "customer_id", "select * from public.customers where customer_id = '%s'", true, metricId, false); PgResponseHandler pgResponseHandler = new PgResponseHandler(pgSourceConfig, meterStatsManager, rowManager, columnNameManager, descriptor, resultFuture, errorReporter, new PostResponseTelemetry()); when(event.succeeded()).thenReturn(true); @@ -171,7 +172,7 @@ public void shouldGoToFailureHandlerIfEventFails() { @Test public void shouldReportFatalExceptionAndCompleteExceptionallyWhenEventComesToFailureHandleAndFailOnErrorsIsTrue() { - pgSourceConfig = new PgSourceConfig("10.0.60.227,10.0.60.229,10.0.60.228", "5432", "user", "password", "db", "com.gojek.esb.fraud.DriverProfileFlattenLogMessage", "30", + pgSourceConfig = new PgSourceConfig("localhost", "5432", "user", "password", "db", "ProtoClass", "30", "5000", outputMapping, "5000", "5000", "customer_id", "select * from public.customers where customer_id = '%s'", true, metricId, false); PgResponseHandler pgResponseHandler = new PgResponseHandler(pgSourceConfig, meterStatsManager, rowManager, columnNameManager, descriptor, resultFuture, errorReporter, new PostResponseTelemetry()); when(event.succeeded()).thenReturn(false); @@ -209,7 +210,7 @@ public void shouldPopulateResultAsObjectIfTypeIsNotPassedAndRetainResponseTypeIs when(rowSetIterator.hasNext()).thenReturn(true).thenReturn(false); when(rowSetIterator.next()).thenReturn(row); when(row.getValue("surge_factor")).thenReturn("123"); - descriptor = SurgeFactorLogMessage.getDescriptor(); + descriptor = TestBookingLogMessage.getDescriptor(); inputColumnNames = new String[]{"s2_id"}; outputColumnNames = new ArrayList<>(); outputColumnNames.add("s2_id"); @@ -223,7 +224,7 @@ public void shouldPopulateResultAsObjectIfTypeIsNotPassedAndRetainResponseTypeIs streamData.setField(1, new Row(outputColumnNames.size())); rowManager = new RowManager(streamData); columnNameManager = new ColumnNameManager(inputColumnNames, outputColumnNames); - pgSourceConfig = new PgSourceConfig("10.0.60.227,10.0.60.229,10.0.60.228", "5432", "user", "password", "db", null, "30", + pgSourceConfig = new PgSourceConfig("localhost", "5432", "user", "password", "db", null, "30", "5000", outputMapping, "5000", "5000", "s2_id", "select surge_factor from public.surge where s2_id = '%s'", false, "", true); Row outputStreamRow = new Row(2); outputStreamRow.setField(0, inputData); @@ -247,7 +248,7 @@ public void shouldNotPopulateResultAsObjectIfTypeIsNotPassedAndRetainResponseTyp when(rowSetIterator.hasNext()).thenReturn(true).thenReturn(false); when(rowSetIterator.next()).thenReturn(row); when(row.getValue("surge_factor")).thenReturn("123"); - descriptor = SurgeFactorLogMessage.getDescriptor(); + descriptor = TestSurgeFactorLogMessage.getDescriptor(); inputColumnNames = new String[]{"s2_id"}; outputColumnNames = new ArrayList<>(); outputColumnNames.add("s2_id"); @@ -261,7 +262,7 @@ public void shouldNotPopulateResultAsObjectIfTypeIsNotPassedAndRetainResponseTyp streamData.setField(1, new Row(outputColumnNames.size())); rowManager = new RowManager(streamData); columnNameManager = new ColumnNameManager(inputColumnNames, outputColumnNames); - pgSourceConfig = new PgSourceConfig("10.0.60.227,10.0.60.229,10.0.60.228", "5432", "user", "password", "db", null, "30", + pgSourceConfig = new PgSourceConfig("localhost", "5432", "user", "password", "db", null, "30", "5000", outputMapping, "5000", "5000", "s2_id", "select surge_factor from public.surge where s2_id = '%s'", false, "", false); Row outputStreamRow = new Row(2); outputStreamRow.setField(0, inputData); diff --git a/dagger-core/src/test/java/io/odpf/dagger/processors/external/pg/PgSourceConfigTest.java b/dagger-core/src/test/java/io/odpf/dagger/processors/external/pg/PgSourceConfigTest.java index a83faef65..38eeab772 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/processors/external/pg/PgSourceConfigTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/processors/external/pg/PgSourceConfigTest.java @@ -44,7 +44,7 @@ public void setUp() { user = "user"; password = "password"; database = "db"; - type = "com.gojek.esb.fraud.DriverProfileFlattenLogMessage"; + type = "TestMessage"; capacity = "30"; streamTimeout = "4000"; outputMapping = new HashMap<>(); diff --git a/dagger-core/src/test/java/io/odpf/dagger/processors/longbow/LongbowFactoryTest.java b/dagger-core/src/test/java/io/odpf/dagger/processors/longbow/LongbowFactoryTest.java index 5fc6b9ba0..be3970a1c 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/processors/longbow/LongbowFactoryTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/processors/longbow/LongbowFactoryTest.java @@ -48,7 +48,7 @@ public void setup() { public void shouldReturnLongbowProcessorWithWriteOnly() { String[] inputColumnNames = new String[]{"longbow_write_key", "longbow_write", "rowtime", "event_timestamp"}; when(streamInfo.getColumnNames()).thenReturn(inputColumnNames); - when(configuration.getString(INPUT_STREAMS, "")).thenReturn("[{\"PROTO_CLASS_NAME\": \"com.gojek.esb.booking.BookingLogMessage\"}]"); + when(configuration.getString(INPUT_STREAMS, "")).thenReturn("[{\"PROTO_CLASS_NAME\": \"InputProtoMessage\"}]"); LongbowSchema longbowSchema = new LongbowSchema(inputColumnNames); LongbowFactory longbowFactory = new LongbowFactory(longbowSchema, configuration, stencilClientOrchestrator, metricsTelemetryExporter, asyncProcessor); PostProcessor longbowProcessor = longbowFactory.getLongbowProcessor(); diff --git a/dagger-core/src/test/java/io/odpf/dagger/processors/longbow/processor/LongbowReaderTest.java b/dagger-core/src/test/java/io/odpf/dagger/processors/longbow/processor/LongbowReaderTest.java index 5765d1a45..47f467435 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/processors/longbow/processor/LongbowReaderTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/processors/longbow/processor/LongbowReaderTest.java @@ -21,9 +21,11 @@ import java.sql.Timestamp; import java.util.ArrayList; +import java.util.Collection; import java.util.HashMap; import java.util.List; import java.util.concurrent.CompletableFuture; +import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeoutException; import static io.odpf.dagger.metrics.aspects.LongbowReaderAspects.*; @@ -80,9 +82,20 @@ public void shouldCaptureExceptionWithStatsDManagerOnReadDocumentFailure() throw throw new RuntimeException(); })); + CountDownLatch countDownLatch = new CountDownLatch(1); + ResultFuture callback = new ResultFuture() { + @Override + public void complete(Collection result) { + countDownLatch.countDown(); + } + + @Override + public void completeExceptionally(Throwable error) { + } + }; longBowReader.open(configuration); - longBowReader.asyncInvoke(input, outputFuture); - + longBowReader.asyncInvoke(input, callback); + countDownLatch.await(); verify(meterStatsManager, times(1)).markEvent(FAILED_ON_READ_DOCUMENT); verify(errorReporter, times(1)).reportNonFatalException(any(LongbowReaderException.class)); } diff --git a/dagger-core/src/test/java/io/odpf/dagger/processors/longbow/processor/LongbowWriterTest.java b/dagger-core/src/test/java/io/odpf/dagger/processors/longbow/processor/LongbowWriterTest.java index e50be8e6f..433eac77c 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/processors/longbow/processor/LongbowWriterTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/processors/longbow/processor/LongbowWriterTest.java @@ -23,11 +23,9 @@ import org.threeten.bp.Duration; import java.sql.Timestamp; -import java.util.ArrayList; -import java.util.Collections; -import java.util.HashMap; -import java.util.List; +import java.util.*; import java.util.concurrent.CompletableFuture; +import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeoutException; import static org.mockito.Mockito.*; @@ -169,9 +167,20 @@ public void shouldCaptureExceptionWithStatsDManagerOnWriteDocumentFailure() thro throw new RuntimeException(); })); + CountDownLatch countDownLatch = new CountDownLatch(1); + ResultFuture callback = new ResultFuture() { + @Override + public void complete(Collection result) { + countDownLatch.countDown(); + } + + @Override + public void completeExceptionally(Throwable error) { + } + }; defaultLongbowWriter.open(configuration); - defaultLongbowWriter.asyncInvoke(input, resultFuture); - + defaultLongbowWriter.asyncInvoke(input, callback); + countDownLatch.await(); verify(errorReporter, times(1)).reportNonFatalException(any(LongbowWriterException.class)); verify(meterStatsManager, times(1)).markEvent(LongbowWriterAspects.FAILED_ON_WRITE_DOCUMENT); verify(meterStatsManager, times(1)) diff --git a/dagger-core/src/test/java/io/odpf/dagger/processors/longbow/request/PutRequestFactoryTest.java b/dagger-core/src/test/java/io/odpf/dagger/processors/longbow/request/PutRequestFactoryTest.java index 0e14a6145..b1012a7bf 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/processors/longbow/request/PutRequestFactoryTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/processors/longbow/request/PutRequestFactoryTest.java @@ -2,7 +2,6 @@ import org.apache.flink.types.Row; -import com.gojek.daggers.processors.longbow.storage.PutRequest; import io.odpf.dagger.processors.longbow.LongbowSchema; import io.odpf.dagger.processors.longbow.storage.PutRequest; import io.odpf.dagger.sink.ProtoSerializer; diff --git a/dagger-core/src/test/java/io/odpf/dagger/processors/longbow/request/TableScanRequestTest.java b/dagger-core/src/test/java/io/odpf/dagger/processors/longbow/request/TableScanRequestTest.java index 9f1bcea63..8b40dc942 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/processors/longbow/request/TableScanRequestTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/processors/longbow/request/TableScanRequestTest.java @@ -2,7 +2,6 @@ import org.apache.flink.types.Row; -import com.gojek.daggers.processors.longbow.LongbowSchema; import io.odpf.dagger.processors.longbow.LongbowSchema; import org.apache.hadoop.hbase.client.Scan; import org.apache.hadoop.hbase.util.Bytes; diff --git a/dagger-core/src/test/java/io/odpf/dagger/processors/postprocessors/PostProcessorConfigTest.java b/dagger-core/src/test/java/io/odpf/dagger/processors/postprocessors/PostProcessorConfigTest.java index 31e6fb107..364ec2fdb 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/processors/postprocessors/PostProcessorConfigTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/processors/postprocessors/PostProcessorConfigTest.java @@ -32,7 +32,7 @@ public class PostProcessorConfigTest { private PostProcessorConfig postProcessorConfig; private ArrayList internalSource = new ArrayList<>(); private List transformConfigs = new ArrayList<>(); - private String configuration = "{\n \"external_source\": {\n \"es\": [\n {\n \"host\": \"10.240.60.227:9200\",\n \"output_mapping\": {\n \"customer_profile\": {\n \"path\": \"$._source\"\n }\n },\n \"query_param_pattern\": \"/customers/customer/%s\",\n \"query_param_variables\": \"customer_id\",\n \"retry_timeout\": \"5000\",\n \"socket_timeout\": \"6000\",\n \"stream_timeout\": \"5000\",\n \"type\": \"com.gojek.esb.fraud.EnrichedBookingLogMessage\"\n }\n ],\n \"http\": [\n {\n \"body_column_from_sql\": \"request_body\",\n \"connect_timeout\": \"5000\",\n \"endpoint\": \"http://localhost:8000\",\n \"fail_on_errors\": \"true\",\n \"headers\": {\n \"content-type\": \"application/json\"\n },\n \"output_mapping\": {\n \"surge_factor\": {\n \"path\": \"$.data.tensor.values[0]\"\n }\n },\n \"stream_timeout\": \"5000\",\n \"verb\": \"post\"\n }\n ]\n },\n \"internal_source\":[\n \t{\n \"output_field\": \"event_timestamp\",\n \"value\": \"CURRENT_TIMESTAMP\",\n \"type\": \"function\"\n \t},\n \t{\n \"output_field\": \"s2_id_level\",\n \"value\": \"7\",\n \"type\": \"constant\"\n\t }\n\t],\n \"transformers\": [\n {\n \"transformation_arguments\": {\n \"keyColumnName\": \"s2id\",\n \"valueColumnName\": \"features\"\n },\n \"transformation_class\": \"com.gojek.daggers.postprocessor.FeatureTransformer\"\n }\n ]\n}"; + private String configuration = "{\n \"external_source\": {\n \"es\": [\n {\n \"host\": \"localhost:9200\",\n \"output_mapping\": {\n \"customer_profile\": {\n \"path\": \"$._source\"\n }\n },\n \"query_param_pattern\": \"/customers/customer/%s\",\n \"query_param_variables\": \"customer_id\",\n \"retry_timeout\": \"5000\",\n \"socket_timeout\": \"6000\",\n \"stream_timeout\": \"5000\",\n \"type\": \"TestLogMessage\"\n }\n ],\n \"http\": [\n {\n \"body_column_from_sql\": \"request_body\",\n \"connect_timeout\": \"5000\",\n \"endpoint\": \"http://localhost:8000\",\n \"fail_on_errors\": \"true\",\n \"headers\": {\n \"content-type\": \"application/json\"\n },\n \"output_mapping\": {\n \"surge_factor\": {\n \"path\": \"$.data.tensor.values[0]\"\n }\n },\n \"stream_timeout\": \"5000\",\n \"verb\": \"post\"\n }\n ]\n },\n \"internal_source\":[\n \t{\n \"output_field\": \"event_timestamp\",\n \"value\": \"CURRENT_TIMESTAMP\",\n \"type\": \"function\"\n \t},\n \t{\n \"output_field\": \"s2_id_level\",\n \"value\": \"7\",\n \"type\": \"constant\"\n\t }\n\t],\n \"transformers\": [\n {\n \"transformation_arguments\": {\n \"keyColumnName\": \"s2id\",\n \"valueColumnName\": \"features\"\n },\n \"transformation_class\": \"test.postprocessor.FeatureTransformer\"\n }\n ]\n}"; @Test public void shouldParseGivenConfiguration() { @@ -84,7 +84,7 @@ public void shouldReturnTransformConfig() { transformationArguments = new HashMap<>(); transformationArguments.put("keyColumnName", "s2id"); transformationArguments.put("valueColumnName", "features"); - String transformationClass = "com.gojek.daggers.postprocessor.FeatureTransformer"; + String transformationClass = "test.postprocessor.FeatureTransformer"; TransformConfig expectedTransformerConfig = new TransformConfig(transformationClass, transformationArguments); TransformConfig actualTransformerConfig = postProcessorConfig.getTransformers().get(0); @@ -193,7 +193,7 @@ public void shouldReturnInternalSourceConfig() { public void shouldReturnTransformConfigs() { Map transformationArguments = new HashMap<>(); transformationArguments.put("keyValue", "key"); - transformConfigs.add(new TransformConfig("com.gojek.daggers.postprocessor.XTransformer", transformationArguments)); + transformConfigs.add(new TransformConfig("test.postprocessor.XTransformer", transformationArguments)); postProcessorConfig = new PostProcessorConfig(null, transformConfigs, internalSource); assertEquals(transformConfigs, postProcessorConfig.getTransformers()); } @@ -239,7 +239,7 @@ public void shouldBeFalseWhenInternalSourceDoesNotExists() { public void shouldBeTrueWhenTransformerSourceExists() { Map transformationArguments = new HashMap<>(); transformationArguments.put("keyValue", "key"); - transformConfigs.add(new TransformConfig("com.gojek.daggers.postprocessor.XTransformer", transformationArguments)); + transformConfigs.add(new TransformConfig("test.postprocessor.XTransformer", transformationArguments)); postProcessorConfig = new PostProcessorConfig(null, transformConfigs, internalSource); assertTrue(postProcessorConfig.hasTransformConfigs()); } @@ -252,28 +252,28 @@ public void shouldBeFalseWhenTransformerSourceDoesNotExists() { @Test public void shouldReturnTrueForHasSQLTransformerIfTransformConfigContainsSqlTransformer() { - String configuration = "{ \"external_source\": { \"es\": [ { \"host\": \"10.240.60.227:9200\", \"output_mapping\": { \"customer_profile\": { \"path\": \"$._source\" } }, \"query_param_pattern\": \"/customers/customer/%s\", \"query_param_variables\": \"customer_id\", \"retry_timeout\": \"5000\", \"socket_timeout\": \"6000\", \"stream_timeout\": \"5000\", \"type\": \"com.gojek.esb.fraud.EnrichedBookingLogMessage\" } ], \"http\": [ { \"body_column_from_sql\": \"request_body\", \"connect_timeout\": \"5000\", \"endpoint\": \"http://localhost:8000\", \"fail_on_errors\": \"true\", \"headers\": { \"content-type\": \"application/json\" }, \"output_mapping\": { \"surge_factor\": { \"path\": \"$.data.tensor.values[0]\" } }, \"stream_timeout\": \"5000\", \"verb\": \"post\" } ] }, \"internal_source\":[ { \"output_field\": \"event_timestamp\", \"value\": \"CURRENT_TIMESTAMP\", \"type\": \"function\" }, { \"output_field\": \"s2_id_level\", \"value\": \"7\", \"type\": \"constant\" } ], \"transformers\": [ { \"transformation_arguments\": { \"sqlQuery\": \"SELECT * from data_stream\" }, \"transformation_class\": \"com.gojek.dagger.transformer.SQLTransformer\" } ] }"; + String configuration = "{ \"external_source\": { \"es\": [ { \"host\": \"localhost:9200\", \"output_mapping\": { \"customer_profile\": { \"path\": \"$._source\" } }, \"query_param_pattern\": \"/customers/customer/%s\", \"query_param_variables\": \"customer_id\", \"retry_timeout\": \"5000\", \"socket_timeout\": \"6000\", \"stream_timeout\": \"5000\", \"type\": \"TestLogMessage\" } ], \"http\": [ { \"body_column_from_sql\": \"request_body\", \"connect_timeout\": \"5000\", \"endpoint\": \"http://localhost:8000\", \"fail_on_errors\": \"true\", \"headers\": { \"content-type\": \"application/json\" }, \"output_mapping\": { \"surge_factor\": { \"path\": \"$.data.tensor.values[0]\" } }, \"stream_timeout\": \"5000\", \"verb\": \"post\" } ] }, \"internal_source\":[ { \"output_field\": \"event_timestamp\", \"value\": \"CURRENT_TIMESTAMP\", \"type\": \"function\" }, { \"output_field\": \"s2_id_level\", \"value\": \"7\", \"type\": \"constant\" } ], \"transformers\": [ { \"transformation_arguments\": { \"sqlQuery\": \"SELECT * from data_stream\" }, \"transformation_class\": \"com.gojek.dagger.transformer.SQLTransformer\" } ] }"; PostProcessorConfig postProcessorConfig = PostProcessorConfig.parse(configuration); assertTrue(postProcessorConfig.hasSQLTransformer()); } @Test public void shouldNotReturnTrueForHasSQLTransformerIfTransformConfigDoesNotContainSqlTransformer() { - String configuration = "{ \"external_source\": { \"es\": [ { \"host\": \"10.240.60.227:9200\", \"output_mapping\": { \"customer_profile\": { \"path\": \"$._source\" } }, \"query_param_pattern\": \"/customers/customer/%s\", \"query_param_variables\": \"customer_id\", \"retry_timeout\": \"5000\", \"socket_timeout\": \"6000\", \"stream_timeout\": \"5000\", \"type\": \"com.gojek.esb.fraud.EnrichedBookingLogMessage\" } ], \"http\": [ { \"body_column_from_sql\": \"request_body\", \"connect_timeout\": \"5000\", \"endpoint\": \"http://localhost:8000\", \"fail_on_errors\": \"true\", \"headers\": { \"content-type\": \"application/json\" }, \"output_mapping\": { \"surge_factor\": { \"path\": \"$.data.tensor.values[0]\" } }, \"stream_timeout\": \"5000\", \"verb\": \"post\" } ] }, \"internal_source\":[ { \"output_field\": \"event_timestamp\", \"value\": \"CURRENT_TIMESTAMP\", \"type\": \"function\" }, { \"output_field\": \"s2_id_level\", \"value\": \"7\", \"type\": \"constant\" } ], \"transformers\": [ { \"transformation_arguments\": { \"sqlQuery\": \"SELECT * from data_stream\" }, \"transformation_class\": \"com.gojek.dagger.transformer.DeDuplicationTransformer\" } ] }"; + String configuration = "{ \"external_source\": { \"es\": [ { \"host\": \"localhost:9200\", \"output_mapping\": { \"customer_profile\": { \"path\": \"$._source\" } }, \"query_param_pattern\": \"/customers/customer/%s\", \"query_param_variables\": \"customer_id\", \"retry_timeout\": \"5000\", \"socket_timeout\": \"6000\", \"stream_timeout\": \"5000\", \"type\": \"TestLogMessage\" } ], \"http\": [ { \"body_column_from_sql\": \"request_body\", \"connect_timeout\": \"5000\", \"endpoint\": \"http://localhost:8000\", \"fail_on_errors\": \"true\", \"headers\": { \"content-type\": \"application/json\" }, \"output_mapping\": { \"surge_factor\": { \"path\": \"$.data.tensor.values[0]\" } }, \"stream_timeout\": \"5000\", \"verb\": \"post\" } ] }, \"internal_source\":[ { \"output_field\": \"event_timestamp\", \"value\": \"CURRENT_TIMESTAMP\", \"type\": \"function\" }, { \"output_field\": \"s2_id_level\", \"value\": \"7\", \"type\": \"constant\" } ], \"transformers\": [ { \"transformation_arguments\": { \"sqlQuery\": \"SELECT * from data_stream\" }, \"transformation_class\": \"com.gojek.dagger.transformer.DeDuplicationTransformer\" } ] }"; PostProcessorConfig postProcessorConfig = PostProcessorConfig.parse(configuration); assertFalse(postProcessorConfig.hasSQLTransformer()); } @Test public void shouldNotReturnTrueForHasSQLTransformerIfTransformConfigDoesNotExist() { - String configuration = "{ \"external_source\": { \"es\": [ { \"host\": \"10.240.60.227:9200\", \"output_mapping\": { \"customer_profile\": { \"path\": \"$._source\" } }, \"query_param_pattern\": \"/customers/customer/%s\", \"query_param_variables\": \"customer_id\", \"retry_timeout\": \"5000\", \"socket_timeout\": \"6000\", \"stream_timeout\": \"5000\", \"type\": \"com.gojek.esb.fraud.EnrichedBookingLogMessage\" } ], \"http\": [ { \"body_column_from_sql\": \"request_body\", \"connect_timeout\": \"5000\", \"endpoint\": \"http://localhost:8000\", \"fail_on_errors\": \"true\", \"headers\": { \"content-type\": \"application/json\" }, \"output_mapping\": { \"surge_factor\": { \"path\": \"$.data.tensor.values[0]\" } }, \"stream_timeout\": \"5000\", \"verb\": \"post\" } ] }, \"internal_source\":[ { \"output_field\": \"event_timestamp\", \"value\": \"CURRENT_TIMESTAMP\", \"type\": \"function\" }, { \"output_field\": \"s2_id_level\", \"value\": \"7\", \"type\": \"constant\" } ] }"; + String configuration = "{ \"external_source\": { \"es\": [ { \"host\": \"localhost:9200\", \"output_mapping\": { \"customer_profile\": { \"path\": \"$._source\" } }, \"query_param_pattern\": \"/customers/customer/%s\", \"query_param_variables\": \"customer_id\", \"retry_timeout\": \"5000\", \"socket_timeout\": \"6000\", \"stream_timeout\": \"5000\", \"type\": \"TestLogMessage\" } ], \"http\": [ { \"body_column_from_sql\": \"request_body\", \"connect_timeout\": \"5000\", \"endpoint\": \"http://localhost:8000\", \"fail_on_errors\": \"true\", \"headers\": { \"content-type\": \"application/json\" }, \"output_mapping\": { \"surge_factor\": { \"path\": \"$.data.tensor.values[0]\" } }, \"stream_timeout\": \"5000\", \"verb\": \"post\" } ] }, \"internal_source\":[ { \"output_field\": \"event_timestamp\", \"value\": \"CURRENT_TIMESTAMP\", \"type\": \"function\" }, { \"output_field\": \"s2_id_level\", \"value\": \"7\", \"type\": \"constant\" } ] }"; PostProcessorConfig postProcessorConfig = PostProcessorConfig.parse(configuration); assertFalse(postProcessorConfig.hasSQLTransformer()); } @Test public void shouldReturnTrueForHasSQLTransformerIfAnyOneTransformConfigContainsSQLTransformer() { - String configuration = "{ \"external_source\": { \"es\": [ { \"host\": \"10.240.60.227:9200\", \"output_mapping\": { \"customer_profile\": { \"path\": \"$._source\" } }, \"query_param_pattern\": \"/customers/customer/%s\", \"query_param_variables\": \"customer_id\", \"retry_timeout\": \"5000\", \"socket_timeout\": \"6000\", \"stream_timeout\": \"5000\", \"type\": \"com.gojek.esb.fraud.EnrichedBookingLogMessage\" } ], \"http\": [ { \"body_column_from_sql\": \"request_body\", \"connect_timeout\": \"5000\", \"endpoint\": \"http://localhost:8000\", \"fail_on_errors\": \"true\", \"headers\": { \"content-type\": \"application/json\" }, \"output_mapping\": { \"surge_factor\": { \"path\": \"$.data.tensor.values[0]\" } }, \"stream_timeout\": \"5000\", \"verb\": \"post\" } ] }, \"internal_source\":[ { \"output_field\": \"event_timestamp\", \"value\": \"CURRENT_TIMESTAMP\", \"type\": \"function\" }, { \"output_field\": \"s2_id_level\", \"value\": \"7\", \"type\": \"constant\" } ], \"transformers\": [ { \"transformation_arguments\": { \"sqlQuery\": \"SELECT * from data_stream\" }, \"transformation_class\": \"com.gojek.dagger.transformer.SQLTransformer\" }, { \"transformation_arguments\": { \"arg1\": \"test\" }, \"transformation_class\": \"com.gojek.dagger.transformer.Test\" } ] }"; + String configuration = "{ \"external_source\": { \"es\": [ { \"host\": \"localhost:9200\", \"output_mapping\": { \"customer_profile\": { \"path\": \"$._source\" } }, \"query_param_pattern\": \"/customers/customer/%s\", \"query_param_variables\": \"customer_id\", \"retry_timeout\": \"5000\", \"socket_timeout\": \"6000\", \"stream_timeout\": \"5000\", \"type\": \"TestLogMessage\" } ], \"http\": [ { \"body_column_from_sql\": \"request_body\", \"connect_timeout\": \"5000\", \"endpoint\": \"http://localhost:8000\", \"fail_on_errors\": \"true\", \"headers\": { \"content-type\": \"application/json\" }, \"output_mapping\": { \"surge_factor\": { \"path\": \"$.data.tensor.values[0]\" } }, \"stream_timeout\": \"5000\", \"verb\": \"post\" } ] }, \"internal_source\":[ { \"output_field\": \"event_timestamp\", \"value\": \"CURRENT_TIMESTAMP\", \"type\": \"function\" }, { \"output_field\": \"s2_id_level\", \"value\": \"7\", \"type\": \"constant\" } ], \"transformers\": [ { \"transformation_arguments\": { \"sqlQuery\": \"SELECT * from data_stream\" }, \"transformation_class\": \"com.gojek.dagger.transformer.SQLTransformer\" }, { \"transformation_arguments\": { \"arg1\": \"test\" }, \"transformation_class\": \"com.gojek.dagger.transformer.Test\" } ] }"; PostProcessorConfig postProcessorConfig = PostProcessorConfig.parse(configuration); assertTrue(postProcessorConfig.hasSQLTransformer()); } diff --git a/dagger-core/src/test/java/io/odpf/dagger/processors/postprocessors/PostProcessorFactoryTest.java b/dagger-core/src/test/java/io/odpf/dagger/processors/postprocessors/PostProcessorFactoryTest.java index 23d9eee16..3c2aced34 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/processors/postprocessors/PostProcessorFactoryTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/processors/postprocessors/PostProcessorFactoryTest.java @@ -38,9 +38,9 @@ public class PostProcessorFactoryTest { + " \"EVENT_TIMESTAMP_FIELD_INDEX\": \"4\",\n" + " \"KAFKA_CONSUMER_CONFIG_AUTO_COMMIT_ENABLE\": \"false\",\n" + " \"KAFKA_CONSUMER_CONFIG_AUTO_OFFSET_RESET\": \"latest\",\n" - + " \"KAFKA_CONSUMER_CONFIG_BOOTSTRAP_SERVERS\": \"p-esb-kafka-mirror-b-01:6667\",\n" + + " \"KAFKA_CONSUMER_CONFIG_BOOTSTRAP_SERVERS\": \"localhost:6667\",\n" + " \"KAFKA_CONSUMER_CONFIG_GROUP_ID\": \"flink-sql-flud-gp0330\",\n" - + " \"PROTO_CLASS_NAME\": \"com.gojek.esb.booking.BookingLogMessage\",\n" + + " \"PROTO_CLASS_NAME\": \"TestLogMessage\",\n" + " \"TABLE_NAME\": \"data_stream\",\n" + " \"TOPIC_NAMES\": \"GO_RIDE-booking-log\"\n" + " }\n" diff --git a/dagger-core/src/test/java/io/odpf/dagger/processors/transformers/MockTransformer.java b/dagger-core/src/test/java/io/odpf/dagger/processors/transformers/MockTransformer.java new file mode 100644 index 000000000..35f0d7d43 --- /dev/null +++ b/dagger-core/src/test/java/io/odpf/dagger/processors/transformers/MockTransformer.java @@ -0,0 +1,28 @@ +package io.odpf.dagger.processors.transformers; + +import io.odpf.dagger.common.contracts.Transformer; +import io.odpf.dagger.common.core.StreamInfo; +import org.apache.flink.api.common.functions.MapFunction; +import org.apache.flink.configuration.Configuration; +import org.apache.flink.streaming.api.datastream.DataStream; +import org.apache.flink.streaming.api.datastream.SingleOutputStreamOperator; +import org.apache.flink.types.Row; + +import java.util.Map; + +public class MockTransformer implements Transformer, MapFunction { + public MockTransformer(Map transformationArguments, String[] columnNames, Configuration configuration) { + } + + @Override + public StreamInfo transform(StreamInfo inputStreamInfo) { + DataStream inputStream = inputStreamInfo.getDataStream(); + SingleOutputStreamOperator outputStream = inputStream.map(this); + return new StreamInfo(outputStream, inputStreamInfo.getColumnNames()); + } + + @Override + public Row map(Row value) throws Exception { + return value; + } +} diff --git a/dagger-core/src/test/java/io/odpf/dagger/processors/transformers/TransformProcessorTest.java b/dagger-core/src/test/java/io/odpf/dagger/processors/transformers/TransformProcessorTest.java index 6c5cbd33a..050e9d014 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/processors/transformers/TransformProcessorTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/processors/transformers/TransformProcessorTest.java @@ -76,12 +76,11 @@ public void shouldThrowExceptionInCaseOfWrongConstructorTypeSupported() { when(streamInfo.getDataStream()).thenReturn(dataStream); when(streamInfo.getColumnNames()).thenReturn(null); expectedException.expect(RuntimeException.class); - expectedException.expectMessage("com.gojek.daggers.processors.transformers.TransformProcessor.(java.util.Map," + - " [Ljava.lang.String;, org.apache.flink.configuration.Configuration)"); + expectedException.expectMessage("io.odpf.dagger.processors.transformers.TransformProcessor.(java.util.Map, [Ljava.lang.String;, org.apache.flink.configuration.Configuration)"); HashMap transformationArguments = new HashMap<>(); transformationArguments.put("keyField", "keystore"); transfromConfigs = new ArrayList<>(); - transfromConfigs.add(new TransformConfig("com.gojek.daggers.processors.transformers.TransformProcessor", transformationArguments)); + transfromConfigs.add(new TransformConfig("io.odpf.dagger.processors.transformers.TransformProcessor", transformationArguments)); TransformProcessor transformProcessor = new TransformProcessor(transfromConfigs, configuration); transformProcessor.process(streamInfo); @@ -164,10 +163,10 @@ public void shouldProcessTwoPostTransformers() { when(streamInfo.getColumnNames()).thenReturn(null); when(dataStream.map(any(MapFunction.class))).thenReturn(mappedDataStream); transfromConfigs = new ArrayList<>(); - transfromConfigs.add(new TransformConfig("com.gojek.dagger.transformer.FeatureTransformer", new HashMap() {{ + transfromConfigs.add(new TransformConfig("io.odpf.dagger.processors.transformers.MockTransformer", new HashMap() {{ put("keyField", "keystore"); }})); - transfromConfigs.add(new TransformConfig("com.gojek.dagger.transformer.ClearColumnTransformer", new HashMap() {{ + transfromConfigs.add(new TransformConfig("io.odpf.dagger.processors.transformers.MockTransformer", new HashMap() {{ put("keyField", "keystore"); }})); @@ -184,13 +183,13 @@ public void shouldProcessMultiplePostTransformers() { when(dataStream.map(any(MapFunction.class))).thenReturn(mappedDataStream); when(mappedDataStream.map(any(MapFunction.class))).thenReturn(mappedDataStream); transfromConfigs = new ArrayList<>(); - transfromConfigs.add(new TransformConfig("com.gojek.dagger.transformer.FeatureTransformer", new HashMap() {{ + transfromConfigs.add(new TransformConfig("io.odpf.dagger.processors.transformers.MockTransformer", new HashMap() {{ put("keyField", "keystore"); }})); - transfromConfigs.add(new TransformConfig("com.gojek.dagger.transformer.ClearColumnTransformer", new HashMap() {{ + transfromConfigs.add(new TransformConfig("io.odpf.dagger.processors.transformers.MockTransformer", new HashMap() {{ put("keyField", "keystore"); }})); - transfromConfigs.add(new TransformConfig("com.gojek.dagger.transformer.FieldToMapTransformer", new HashMap() {{ + transfromConfigs.add(new TransformConfig("io.odpf.dagger.processors.transformers.MockTransformer", new HashMap() {{ put("keyField", "keystore"); }})); @@ -214,6 +213,13 @@ public void shouldPopulateDefaultArguments() { Assert.assertEquals("test-value", processor.transformConfigs.get(0).getTransformationArguments().get("test-key")); } + static class TransformerMock implements Transformer { + @Override + public StreamInfo transform(StreamInfo streamInfo) { + return null; + } + } + class TransformProcessorMock extends TransformProcessor { private Transformer mockMapFunction; diff --git a/dagger-core/src/test/java/io/odpf/dagger/protohandler/EnumProtoHandlerTest.java b/dagger-core/src/test/java/io/odpf/dagger/protohandler/EnumProtoHandlerTest.java index a3904a4b1..09965db8d 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/protohandler/EnumProtoHandlerTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/protohandler/EnumProtoHandlerTest.java @@ -1,10 +1,11 @@ package io.odpf.dagger.protohandler; +import io.odpf.dagger.consumer.TestBookingLogMessage; +import io.odpf.dagger.consumer.TestRepeatedEnumMessage; +import io.odpf.dagger.consumer.TestServiceType; import org.apache.flink.api.common.typeinfo.Types; import io.odpf.dagger.exception.EnumFieldNotFoundException; -import com.gojek.esb.booking.BookingLogMessage; -import com.gojek.esb.consumer.TestRepeatedEnumMessage; import com.google.protobuf.Descriptors; import com.google.protobuf.DynamicMessage; import org.junit.Assert; @@ -12,7 +13,6 @@ import org.junit.Test; import org.junit.rules.ExpectedException; -import static com.gojek.esb.types.ServiceTypeProto.ServiceType.Enum.GO_LIFE; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; @@ -24,7 +24,7 @@ public class EnumProtoHandlerTest { @Test public void shouldReturnTrueIfEnumFieldDescriptorIsPassed() { - Descriptors.FieldDescriptor enumFieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("service_type"); + Descriptors.FieldDescriptor enumFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("service_type"); EnumProtoHandler enumProtoHandler = new EnumProtoHandler(enumFieldDescriptor); assertTrue(enumProtoHandler.canHandle()); @@ -40,7 +40,7 @@ public void shouldReturnFalseIfRepeatedEnumFieldDescriptorIsPassed() { @Test public void shouldReturnFalseIfFieldDescriptorOtherThanEnumTypeIsPassed() { - Descriptors.FieldDescriptor otherFieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("order_number"); + Descriptors.FieldDescriptor otherFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("order_number"); EnumProtoHandler enumProtoHandler = new EnumProtoHandler(otherFieldDescriptor); assertFalse(enumProtoHandler.canHandle()); @@ -48,7 +48,7 @@ public void shouldReturnFalseIfFieldDescriptorOtherThanEnumTypeIsPassed() { @Test public void shouldReturnTheSameBuilderWithoutSettingIfCanNotHandle() { - Descriptors.FieldDescriptor fieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("order_number"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("order_number"); EnumProtoHandler enumProtoHandler = new EnumProtoHandler(fieldDescriptor); DynamicMessage.Builder builder = DynamicMessage.newBuilder(fieldDescriptor.getContainingType()); @@ -57,7 +57,7 @@ public void shouldReturnTheSameBuilderWithoutSettingIfCanNotHandle() { @Test public void shouldReturnTheSameBuilderWithoutSettingIfNullPassed() { - Descriptors.FieldDescriptor fieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("order_number"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("order_number"); EnumProtoHandler enumProtoHandler = new EnumProtoHandler(fieldDescriptor); DynamicMessage.Builder builder = DynamicMessage.newBuilder(fieldDescriptor.getContainingType()); @@ -66,19 +66,19 @@ public void shouldReturnTheSameBuilderWithoutSettingIfNullPassed() { @Test public void shouldSetTheFieldPassedInTheBuilderForEnumFieldTypeDescriptor() { - Descriptors.FieldDescriptor enumFieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("service_type"); + Descriptors.FieldDescriptor enumFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("service_type"); EnumProtoHandler enumProtoHandler = new EnumProtoHandler(enumFieldDescriptor); DynamicMessage.Builder builder = DynamicMessage.newBuilder(enumFieldDescriptor.getContainingType()); - DynamicMessage.Builder returnedBuilder = enumProtoHandler.transformForKafka(builder, "GO_LIFE"); - assertEquals(GO_LIFE.getValueDescriptor(), returnedBuilder.getField(enumFieldDescriptor)); + DynamicMessage.Builder returnedBuilder = enumProtoHandler.transformForKafka(builder, "GO_RIDE"); + assertEquals(TestServiceType.Enum.GO_RIDE.getValueDescriptor(), returnedBuilder.getField(enumFieldDescriptor)); } @Test public void shouldThrowExceptionIfFieldNotFoundInGivenEnumFieldTypeDescriptor() { expectedException.expect(EnumFieldNotFoundException.class); - expectedException.expectMessage("field: test not found in gojek.esb.booking.BookingLogMessage.service_type"); - Descriptors.FieldDescriptor enumFieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("service_type"); + expectedException.expectMessage("field: test not found in io.odpf.dagger.consumer.TestBookingLogMessage.service_type"); + Descriptors.FieldDescriptor enumFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("service_type"); EnumProtoHandler enumProtoHandler = new EnumProtoHandler(enumFieldDescriptor); DynamicMessage.Builder builder = DynamicMessage.newBuilder(enumFieldDescriptor.getContainingType()); @@ -89,7 +89,7 @@ public void shouldThrowExceptionIfFieldNotFoundInGivenEnumFieldTypeDescriptor() public void shouldReturnEnumStringGivenEnumStringForFieldDescriptorOfTypeEnum() { String inputField = "DRIVER_FOUND"; - Descriptors.Descriptor descriptor = BookingLogMessage.getDescriptor(); + Descriptors.Descriptor descriptor = TestBookingLogMessage.getDescriptor(); Descriptors.FieldDescriptor fieldDescriptor = descriptor.findFieldByName("status"); Object value = ProtoHandlerFactory.getProtoHandler(fieldDescriptor).transformFromPostProcessor(inputField); @@ -99,7 +99,7 @@ public void shouldReturnEnumStringGivenEnumStringForFieldDescriptorOfTypeEnum() @Test public void shouldReturnDefaultEnumStringIfNotFoundForFieldDescriptorOfTypeEnum() { - Descriptors.Descriptor descriptor = BookingLogMessage.getDescriptor(); + Descriptors.Descriptor descriptor = TestBookingLogMessage.getDescriptor(); Descriptors.FieldDescriptor fieldDescriptor = descriptor.findFieldByName("status"); Object value = ProtoHandlerFactory.getProtoHandler(fieldDescriptor).transformFromPostProcessor(null); @@ -109,7 +109,7 @@ public void shouldReturnDefaultEnumStringIfNotFoundForFieldDescriptorOfTypeEnum( @Test public void shouldReturnDefaultEnumStringIfInputIsAEnumPositionAndNotInTheProtoDefinitionForFieldDescriptorOfTypeEnum() { - Descriptors.Descriptor descriptor = BookingLogMessage.getDescriptor(); + Descriptors.Descriptor descriptor = TestBookingLogMessage.getDescriptor(); Descriptors.FieldDescriptor fieldDescriptor = descriptor.findFieldByName("status"); Object value = ProtoHandlerFactory.getProtoHandler(fieldDescriptor).transformFromPostProcessor(-1); @@ -119,7 +119,7 @@ public void shouldReturnDefaultEnumStringIfInputIsAEnumPositionAndNotInTheProtoD @Test public void shouldReturnDefaultEnumStringIfInputIsAStringAndNotInTheProtoDefinitionForFieldDescriptorOfTypeEnum() { - Descriptors.Descriptor descriptor = BookingLogMessage.getDescriptor(); + Descriptors.Descriptor descriptor = TestBookingLogMessage.getDescriptor(); Descriptors.FieldDescriptor fieldDescriptor = descriptor.findFieldByName("status"); Object value = ProtoHandlerFactory.getProtoHandler(fieldDescriptor).transformFromPostProcessor("dummy"); @@ -129,7 +129,7 @@ public void shouldReturnDefaultEnumStringIfInputIsAStringAndNotInTheProtoDefinit @Test public void shouldReturnDefaultEnumStringIfInputIsNullForFieldDescriptorOfTypeEnum() { - Descriptors.Descriptor descriptor = BookingLogMessage.getDescriptor(); + Descriptors.Descriptor descriptor = TestBookingLogMessage.getDescriptor(); Descriptors.FieldDescriptor fieldDescriptor = descriptor.findFieldByName("status"); Object value = ProtoHandlerFactory.getProtoHandler(fieldDescriptor).transformFromPostProcessor(null); @@ -139,7 +139,7 @@ public void shouldReturnDefaultEnumStringIfInputIsNullForFieldDescriptorOfTypeEn @Test public void shouldReturnEnumStringGivenEnumPositionForFieldDescriptorOfTypeEnum() { - Descriptors.Descriptor descriptor = BookingLogMessage.getDescriptor(); + Descriptors.Descriptor descriptor = TestBookingLogMessage.getDescriptor(); Descriptors.FieldDescriptor fieldDescriptor = descriptor.findFieldByName("status"); Object value = ProtoHandlerFactory.getProtoHandler(fieldDescriptor).transformFromPostProcessor(2); @@ -149,7 +149,7 @@ public void shouldReturnEnumStringGivenEnumPositionForFieldDescriptorOfTypeEnum( @Test public void shouldReturnTypeInformation() { - Descriptors.Descriptor descriptor = BookingLogMessage.getDescriptor(); + Descriptors.Descriptor descriptor = TestBookingLogMessage.getDescriptor(); Descriptors.FieldDescriptor fieldDescriptor = descriptor.findFieldByName("status"); EnumProtoHandler enumProtoHandler = new EnumProtoHandler(fieldDescriptor); assertEquals(Types.STRING, enumProtoHandler.getTypeInformation()); @@ -157,7 +157,7 @@ public void shouldReturnTypeInformation() { @Test public void shouldTransformValueForKafka() { - Descriptors.Descriptor descriptor = BookingLogMessage.getDescriptor(); + Descriptors.Descriptor descriptor = TestBookingLogMessage.getDescriptor(); Descriptors.FieldDescriptor fieldDescriptor = descriptor.findFieldByName("status"); EnumProtoHandler enumProtoHandler = new EnumProtoHandler(fieldDescriptor); assertEquals("DRIVER_FOUND", enumProtoHandler.transformFromKafka("DRIVER_FOUND")); @@ -165,7 +165,7 @@ public void shouldTransformValueForKafka() { @Test public void shouldConvertEnumToJsonString() { - Descriptors.FieldDescriptor fieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("status"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("status"); Object value = new EnumProtoHandler(fieldDescriptor).transformToJson("DRIVER_FOUND"); Assert.assertEquals("DRIVER_FOUND", value); diff --git a/dagger-core/src/test/java/io/odpf/dagger/protohandler/MapProtoHandlerTest.java b/dagger-core/src/test/java/io/odpf/dagger/protohandler/MapProtoHandlerTest.java index 3a4614c40..7a99c9134 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/protohandler/MapProtoHandlerTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/protohandler/MapProtoHandlerTest.java @@ -1,10 +1,9 @@ package io.odpf.dagger.protohandler; -import com.gojek.esb.booking.BookingLogMessage; -import com.gojek.esb.consumer.TestComplexMap; -import com.gojek.esb.consumer.TestMessage; -import com.gojek.esb.fraud.DriverProfileFlattenLogMessage; import com.google.protobuf.*; +import io.odpf.dagger.consumer.TestBookingLogMessage; +import io.odpf.dagger.consumer.TestComplexMap; +import io.odpf.dagger.consumer.TestMessage; import org.apache.flink.api.common.typeinfo.Types; import org.apache.flink.types.Row; import org.junit.Test; @@ -17,7 +16,7 @@ public class MapProtoHandlerTest { @Test public void shouldReturnTrueIfMapFieldDescriptorIsPassed() { - Descriptors.FieldDescriptor mapFieldDescriptor = DriverProfileFlattenLogMessage.getDescriptor().findFieldByName("metadata"); + Descriptors.FieldDescriptor mapFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("metadata"); MapProtoHandler mapProtoHandler = new MapProtoHandler(mapFieldDescriptor); assertTrue(mapProtoHandler.canHandle()); @@ -25,7 +24,7 @@ public void shouldReturnTrueIfMapFieldDescriptorIsPassed() { @Test public void shouldReturnFalseIfFieldDescriptorOtherThanMapTypeIsPassed() { - Descriptors.FieldDescriptor otherFieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("order_number"); + Descriptors.FieldDescriptor otherFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("order_number"); MapProtoHandler mapProtoHandler = new MapProtoHandler(otherFieldDescriptor); assertFalse(mapProtoHandler.canHandle()); @@ -33,7 +32,7 @@ public void shouldReturnFalseIfFieldDescriptorOtherThanMapTypeIsPassed() { @Test public void shouldReturnSameBuilderWithoutSettingFieldIfCannotHandle() { - Descriptors.FieldDescriptor otherFieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("order_number"); + Descriptors.FieldDescriptor otherFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("order_number"); MapProtoHandler mapProtoHandler = new MapProtoHandler(otherFieldDescriptor); DynamicMessage.Builder builder = DynamicMessage.newBuilder(otherFieldDescriptor.getContainingType()); @@ -43,7 +42,7 @@ public void shouldReturnSameBuilderWithoutSettingFieldIfCannotHandle() { @Test public void shouldReturnSameBuilderWithoutSettingFieldIfNullPassed() { - Descriptors.FieldDescriptor mapFieldDescriptor = DriverProfileFlattenLogMessage.getDescriptor().findFieldByName("metadata"); + Descriptors.FieldDescriptor mapFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("metadata"); MapProtoHandler mapProtoHandler = new MapProtoHandler(mapFieldDescriptor); DynamicMessage.Builder builder = DynamicMessage.newBuilder(mapFieldDescriptor.getContainingType()); @@ -54,7 +53,7 @@ public void shouldReturnSameBuilderWithoutSettingFieldIfNullPassed() { @Test public void shouldSetMapFieldIfStringMapPassed() { - Descriptors.FieldDescriptor mapFieldDescriptor = DriverProfileFlattenLogMessage.getDescriptor().findFieldByName("metadata"); + Descriptors.FieldDescriptor mapFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("metadata"); MapProtoHandler mapProtoHandler = new MapProtoHandler(mapFieldDescriptor); DynamicMessage.Builder builder = DynamicMessage.newBuilder(mapFieldDescriptor.getContainingType()); @@ -74,7 +73,7 @@ public void shouldSetMapFieldIfStringMapPassed() { @Test public void shouldSetMapFieldIfArrayofObjectsHavingRowsWithStringFieldsPassed() { - Descriptors.FieldDescriptor mapFieldDescriptor = DriverProfileFlattenLogMessage.getDescriptor().findFieldByName("metadata"); + Descriptors.FieldDescriptor mapFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("metadata"); MapProtoHandler mapProtoHandler = new MapProtoHandler(mapFieldDescriptor); DynamicMessage.Builder builder = DynamicMessage.newBuilder(mapFieldDescriptor.getContainingType()); @@ -104,7 +103,7 @@ public void shouldSetMapFieldIfArrayofObjectsHavingRowsWithStringFieldsPassed() @Test public void shouldThrowExceptionIfRowsPassedAreNotOfArityTwo() { - Descriptors.FieldDescriptor mapFieldDescriptor = DriverProfileFlattenLogMessage.getDescriptor().findFieldByName("metadata"); + Descriptors.FieldDescriptor mapFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("metadata"); MapProtoHandler mapProtoHandler = new MapProtoHandler(mapFieldDescriptor); DynamicMessage.Builder builder = DynamicMessage.newBuilder(mapFieldDescriptor.getContainingType()); @@ -122,7 +121,7 @@ public void shouldThrowExceptionIfRowsPassedAreNotOfArityTwo() { @Test public void shouldReturnArrayOfRowHavingSameSizeAsInputMapForTransformForPostProcessor() { - Descriptors.FieldDescriptor mapFieldDescriptor = DriverProfileFlattenLogMessage.getDescriptor().findFieldByName("metadata"); + Descriptors.FieldDescriptor mapFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("metadata"); MapProtoHandler mapProtoHandler = new MapProtoHandler(mapFieldDescriptor); HashMap inputMap = new HashMap<>(); inputMap.put("a", "123"); @@ -135,7 +134,7 @@ public void shouldReturnArrayOfRowHavingSameSizeAsInputMapForTransformForPostPro @Test public void shouldReturnArrayOfRowHavingFieldsSetAsInputMapAndOfSizeTwoForTransformForPostProcessor() { - Descriptors.FieldDescriptor mapFieldDescriptor = DriverProfileFlattenLogMessage.getDescriptor().findFieldByName("metadata"); + Descriptors.FieldDescriptor mapFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("metadata"); MapProtoHandler mapProtoHandler = new MapProtoHandler(mapFieldDescriptor); HashMap inputMap = new HashMap<>(); inputMap.put("a", "123"); @@ -153,7 +152,7 @@ public void shouldReturnArrayOfRowHavingFieldsSetAsInputMapAndOfSizeTwoForTransf @Test public void shouldReturnEmptyArrayOfRowIfNullPassedForTransformForPostProcessor() { - Descriptors.FieldDescriptor mapFieldDescriptor = DriverProfileFlattenLogMessage.getDescriptor().findFieldByName("metadata"); + Descriptors.FieldDescriptor mapFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("metadata"); MapProtoHandler mapProtoHandler = new MapProtoHandler(mapFieldDescriptor); List outputValues = Arrays.asList((Object[]) mapProtoHandler.transformFromPostProcessor(null)); @@ -162,17 +161,17 @@ public void shouldReturnEmptyArrayOfRowIfNullPassedForTransformForPostProcessor( @Test public void shouldReturnArrayOfRowHavingSameSizeAsInputMapForTransformForKafka() throws InvalidProtocolBufferException { - Descriptors.FieldDescriptor mapFieldDescriptor = DriverProfileFlattenLogMessage.getDescriptor().findFieldByName("metadata"); + Descriptors.FieldDescriptor mapFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("metadata"); MapProtoHandler mapProtoHandler = new MapProtoHandler(mapFieldDescriptor); MapEntry mapEntry = MapEntry .newDefaultInstance(mapFieldDescriptor.getMessageType(), WireFormat.FieldType.STRING, "", WireFormat.FieldType.STRING, ""); - DriverProfileFlattenLogMessage driverProfileFlattenLogMessage = DriverProfileFlattenLogMessage + TestBookingLogMessage driverProfileFlattenLogMessage = TestBookingLogMessage .newBuilder() .addRepeatedField(mapFieldDescriptor, mapEntry.toBuilder().setKey("a").setValue("123").buildPartial()) .addRepeatedField(mapFieldDescriptor, mapEntry.toBuilder().setKey("b").setValue("456").buildPartial()) .build(); - DynamicMessage dynamicMessage = DynamicMessage.parseFrom(DriverProfileFlattenLogMessage.getDescriptor(), driverProfileFlattenLogMessage.toByteArray()); + DynamicMessage dynamicMessage = DynamicMessage.parseFrom(TestBookingLogMessage.getDescriptor(), driverProfileFlattenLogMessage.toByteArray()); List outputValues = Arrays.asList((Object[]) mapProtoHandler.transformFromKafka(dynamicMessage.getField(mapFieldDescriptor))); @@ -181,17 +180,17 @@ public void shouldReturnArrayOfRowHavingSameSizeAsInputMapForTransformForKafka() @Test public void shouldReturnArrayOfRowHavingFieldsSetAsInputMapAndOfSizeTwoForTransformForKafka() throws InvalidProtocolBufferException { - Descriptors.FieldDescriptor mapFieldDescriptor = DriverProfileFlattenLogMessage.getDescriptor().findFieldByName("metadata"); + Descriptors.FieldDescriptor mapFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("metadata"); MapProtoHandler mapProtoHandler = new MapProtoHandler(mapFieldDescriptor); MapEntry mapEntry = MapEntry .newDefaultInstance(mapFieldDescriptor.getMessageType(), WireFormat.FieldType.STRING, "", WireFormat.FieldType.STRING, ""); - DriverProfileFlattenLogMessage driverProfileFlattenLogMessage = DriverProfileFlattenLogMessage + TestBookingLogMessage driverProfileFlattenLogMessage = TestBookingLogMessage .newBuilder() .addRepeatedField(mapFieldDescriptor, mapEntry.toBuilder().setKey("a").setValue("123").buildPartial()) .addRepeatedField(mapFieldDescriptor, mapEntry.toBuilder().setKey("b").setValue("456").buildPartial()) .build(); - DynamicMessage dynamicMessage = DynamicMessage.parseFrom(DriverProfileFlattenLogMessage.getDescriptor(), driverProfileFlattenLogMessage.toByteArray()); + DynamicMessage dynamicMessage = DynamicMessage.parseFrom(TestBookingLogMessage.getDescriptor(), driverProfileFlattenLogMessage.toByteArray()); List outputValues = Arrays.asList((Object[]) mapProtoHandler.transformFromKafka(dynamicMessage.getField(mapFieldDescriptor))); @@ -322,7 +321,7 @@ public void shouldReturnArrayOfRowsHavingFieldsSetAsInputMapHavingComplexDataFie @Test public void shouldReturnEmptyArrayOfRowIfNullPassedForTransformForKafka() { - Descriptors.FieldDescriptor mapFieldDescriptor = DriverProfileFlattenLogMessage.getDescriptor().findFieldByName("metadata"); + Descriptors.FieldDescriptor mapFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("metadata"); MapProtoHandler mapProtoHandler = new MapProtoHandler(mapFieldDescriptor); List outputValues = Arrays.asList((Object[]) mapProtoHandler.transformFromPostProcessor(null)); @@ -331,7 +330,7 @@ public void shouldReturnEmptyArrayOfRowIfNullPassedForTransformForKafka() { @Test public void shouldReturnTypeInformation() { - Descriptors.FieldDescriptor mapFieldDescriptor = DriverProfileFlattenLogMessage.getDescriptor().findFieldByName("metadata"); + Descriptors.FieldDescriptor mapFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("metadata"); MapProtoHandler mapProtoHandler = new MapProtoHandler(mapFieldDescriptor); assertEquals(Types.OBJECT_ARRAY(Types.ROW_NAMED(new String[]{"key", "value"}, Types.STRING, Types.STRING)), mapProtoHandler.getTypeInformation()); } diff --git a/dagger-core/src/test/java/io/odpf/dagger/protohandler/MessageProtoHandlerTest.java b/dagger-core/src/test/java/io/odpf/dagger/protohandler/MessageProtoHandlerTest.java index 48bd532a6..c4061b5b4 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/protohandler/MessageProtoHandlerTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/protohandler/MessageProtoHandlerTest.java @@ -1,11 +1,11 @@ package io.odpf.dagger.protohandler; +import io.odpf.dagger.consumer.TestBookingLogMessage; +import io.odpf.dagger.consumer.TestPaymentOptionMetadata; import org.apache.flink.api.common.typeinfo.TypeInformation; import org.apache.flink.api.common.typeinfo.Types; import org.apache.flink.types.Row; -import com.gojek.esb.booking.BookingLogMessage; -import com.gojek.esb.booking.PaymentOptionMetadata; import com.google.protobuf.Descriptors; import com.google.protobuf.DynamicMessage; import com.google.protobuf.InvalidProtocolBufferException; @@ -22,7 +22,7 @@ public class MessageProtoHandlerTest { @Test public void shouldReturnTrueIfMessageFieldDescriptorIsPassed() { - Descriptors.FieldDescriptor messageFieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("payment_option_metadata"); + Descriptors.FieldDescriptor messageFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("payment_option_metadata"); MessageProtoHandler messsageProtoHandler = new MessageProtoHandler(messageFieldDescriptor); assertTrue(messsageProtoHandler.canHandle()); @@ -30,7 +30,7 @@ public void shouldReturnTrueIfMessageFieldDescriptorIsPassed() { @Test public void shouldReturnFalseIfFieldDescriptorOtherThanMessageTypeIsPassed() { - Descriptors.FieldDescriptor otherFieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("order_number"); + Descriptors.FieldDescriptor otherFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("order_number"); MessageProtoHandler messsageProtoHandler = new MessageProtoHandler(otherFieldDescriptor); assertFalse(messsageProtoHandler.canHandle()); @@ -38,7 +38,7 @@ public void shouldReturnFalseIfFieldDescriptorOtherThanMessageTypeIsPassed() { @Test public void shouldReturnTheSameBuilderWithoutSettingFieldIfCanNotHandle() { - Descriptors.FieldDescriptor fieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("order_number"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("order_number"); MessageProtoHandler messsageProtoHandler = new MessageProtoHandler(fieldDescriptor); DynamicMessage.Builder builder = DynamicMessage.newBuilder(fieldDescriptor.getContainingType()); @@ -48,7 +48,7 @@ public void shouldReturnTheSameBuilderWithoutSettingFieldIfCanNotHandle() { @Test public void shouldReturnTheSameBuilderWithoutSettingFieldIfNullPassed() { - Descriptors.FieldDescriptor fieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("order_number"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("order_number"); MessageProtoHandler messsageProtoHandler = new MessageProtoHandler(fieldDescriptor); DynamicMessage.Builder builder = DynamicMessage.newBuilder(fieldDescriptor.getContainingType()); @@ -59,7 +59,7 @@ public void shouldReturnTheSameBuilderWithoutSettingFieldIfNullPassed() { @Test public void shouldSetTheFieldsPassedInTheBuilderForMessageFieldTypeDescriptorIfAllFieldsPassed() throws InvalidProtocolBufferException { - Descriptors.FieldDescriptor messageFieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("payment_option_metadata"); + Descriptors.FieldDescriptor messageFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("payment_option_metadata"); MessageProtoHandler messageProtoHandler = new MessageProtoHandler(messageFieldDescriptor); DynamicMessage.Builder builder = DynamicMessage.newBuilder(messageFieldDescriptor.getContainingType()); @@ -68,15 +68,16 @@ public void shouldSetTheFieldsPassedInTheBuilderForMessageFieldTypeDescriptorIfA inputRow.setField(1, "test2"); DynamicMessage.Builder returnedBuilder = messageProtoHandler.transformForKafka(builder, inputRow); - PaymentOptionMetadata returnedValue = PaymentOptionMetadata.parseFrom(((DynamicMessage) returnedBuilder.getField(messageFieldDescriptor)).toByteArray()); + TestPaymentOptionMetadata returnedValue = TestPaymentOptionMetadata.parseFrom(((DynamicMessage) returnedBuilder.getField(messageFieldDescriptor)).toByteArray()); assertEquals("test1", returnedValue.getMaskedCard()); assertEquals("test2", returnedValue.getNetwork()); + } @Test public void shouldSetTheFieldsPassedInTheBuilderForMessageFieldTypeDescriptorIfAllFieldsAreNotPassed() throws InvalidProtocolBufferException { - Descriptors.FieldDescriptor messageFieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("payment_option_metadata"); + Descriptors.FieldDescriptor messageFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("payment_option_metadata"); MessageProtoHandler messageProtoHandler = new MessageProtoHandler(messageFieldDescriptor); DynamicMessage.Builder builder = DynamicMessage.newBuilder(messageFieldDescriptor.getContainingType()); @@ -84,10 +85,11 @@ public void shouldSetTheFieldsPassedInTheBuilderForMessageFieldTypeDescriptorIfA inputRow.setField(0, "test1"); DynamicMessage.Builder returnedBuilder = messageProtoHandler.transformForKafka(builder, inputRow); - PaymentOptionMetadata returnedValue = PaymentOptionMetadata.parseFrom(((DynamicMessage) returnedBuilder.getField(messageFieldDescriptor)).toByteArray()); + TestPaymentOptionMetadata returnedValue = TestPaymentOptionMetadata.parseFrom(((DynamicMessage) returnedBuilder.getField(messageFieldDescriptor)).toByteArray()); assertEquals("test1", returnedValue.getMaskedCard()); assertEquals("", returnedValue.getNetwork()); + } @Test @@ -96,7 +98,7 @@ public void shouldReturnRowGivenAMapForFieldDescriptorOfTypeMessageIfAllValueAre inputValues.put("masked_card", "test1"); inputValues.put("network", "test2"); - Descriptors.Descriptor descriptor = BookingLogMessage.getDescriptor(); + Descriptors.Descriptor descriptor = TestBookingLogMessage.getDescriptor(); Descriptors.FieldDescriptor fieldDescriptor = descriptor.findFieldByName("payment_option_metadata"); Row value = (Row) ProtoHandlerFactory.getProtoHandler(fieldDescriptor).transformFromPostProcessor(inputValues); @@ -110,7 +112,7 @@ public void shouldReturnRowGivenAMapForFieldDescriptorOfTypeMessageIfAllValueAre HashMap inputValues = new HashMap<>(); inputValues.put("masked_card", "test1"); - Descriptors.Descriptor descriptor = BookingLogMessage.getDescriptor(); + Descriptors.Descriptor descriptor = TestBookingLogMessage.getDescriptor(); Descriptors.FieldDescriptor fieldDescriptor = descriptor.findFieldByName("payment_option_metadata"); Row value = (Row) ProtoHandlerFactory.getProtoHandler(fieldDescriptor).transformFromPostProcessor(inputValues); @@ -124,7 +126,7 @@ public void shouldReturnEmptyRowIfNullPassedForTransformForPostProcessor() { HashMap inputValues = new HashMap<>(); inputValues.put("masked_card", "test1"); - Descriptors.Descriptor descriptor = BookingLogMessage.getDescriptor(); + Descriptors.Descriptor descriptor = TestBookingLogMessage.getDescriptor(); Descriptors.FieldDescriptor fieldDescriptor = descriptor.findFieldByName("payment_option_metadata"); Row value = (Row) ProtoHandlerFactory.getProtoHandler(fieldDescriptor).transformFromPostProcessor(null); @@ -136,14 +138,14 @@ public void shouldReturnEmptyRowIfNullPassedForTransformForPostProcessor() { @Test public void shouldReturnRowGivenAMapForFieldDescriptorOfTypeMessageIfAllValueArePassedForTransformForKafka() throws InvalidProtocolBufferException { - BookingLogMessage bookingLogMessage = BookingLogMessage + TestBookingLogMessage bookingLogMessage = TestBookingLogMessage .newBuilder() - .setPaymentOptionMetadata(PaymentOptionMetadata.newBuilder().setMaskedCard("test1").setNetwork("test2").build()) + .setPaymentOptionMetadata(TestPaymentOptionMetadata.newBuilder().setMaskedCard("test1").setNetwork("test2").build()) .build(); - DynamicMessage dynamicMessage = DynamicMessage.parseFrom(BookingLogMessage.getDescriptor(), bookingLogMessage.toByteArray()); + DynamicMessage dynamicMessage = DynamicMessage.parseFrom(TestBookingLogMessage.getDescriptor(), bookingLogMessage.toByteArray()); - Descriptors.Descriptor descriptor = BookingLogMessage.getDescriptor(); + Descriptors.Descriptor descriptor = TestBookingLogMessage.getDescriptor(); Descriptors.FieldDescriptor fieldDescriptor = descriptor.findFieldByName("payment_option_metadata"); Row value = (Row) new MessageProtoHandler(fieldDescriptor).transformFromKafka(dynamicMessage.getField(fieldDescriptor)); @@ -154,14 +156,14 @@ public void shouldReturnRowGivenAMapForFieldDescriptorOfTypeMessageIfAllValueAre @Test public void shouldReturnRowGivenAMapForFieldDescriptorOfTypeMessageIfAllValueAreNotPassedForTransformForKafka() throws InvalidProtocolBufferException { - BookingLogMessage bookingLogMessage = BookingLogMessage + TestBookingLogMessage bookingLogMessage = TestBookingLogMessage .newBuilder() - .setPaymentOptionMetadata(PaymentOptionMetadata.newBuilder().setMaskedCard("test1").build()) + .setPaymentOptionMetadata(TestPaymentOptionMetadata.newBuilder().setMaskedCard("test1").build()) .build(); - DynamicMessage dynamicMessage = DynamicMessage.parseFrom(BookingLogMessage.getDescriptor(), bookingLogMessage.toByteArray()); + DynamicMessage dynamicMessage = DynamicMessage.parseFrom(TestBookingLogMessage.getDescriptor(), bookingLogMessage.toByteArray()); - Descriptors.Descriptor descriptor = BookingLogMessage.getDescriptor(); + Descriptors.Descriptor descriptor = TestBookingLogMessage.getDescriptor(); Descriptors.FieldDescriptor fieldDescriptor = descriptor.findFieldByName("payment_option_metadata"); Row value = (Row) new MessageProtoHandler(fieldDescriptor).transformFromKafka(dynamicMessage.getField(fieldDescriptor)); @@ -172,7 +174,7 @@ public void shouldReturnRowGivenAMapForFieldDescriptorOfTypeMessageIfAllValueAre @Test public void shouldReturnTypeInformation() { - Descriptors.Descriptor descriptor = BookingLogMessage.getDescriptor(); + Descriptors.Descriptor descriptor = TestBookingLogMessage.getDescriptor(); Descriptors.FieldDescriptor fieldDescriptor = descriptor.findFieldByName("payment_option_metadata"); TypeInformation actualTypeInformation = new MessageProtoHandler(fieldDescriptor).getTypeInformation(); TypeInformation expectedTypeInformation = Types.ROW_NAMED(new String[]{"masked_card", "network"}, Types.STRING, Types.STRING); @@ -181,7 +183,7 @@ public void shouldReturnTypeInformation() { @Test public void shouldConvertComplexRowDataToJsonString() { - Descriptors.Descriptor descriptor = BookingLogMessage.getDescriptor(); + Descriptors.Descriptor descriptor = TestBookingLogMessage.getDescriptor(); Descriptors.FieldDescriptor fieldDescriptor = descriptor.findFieldByName("payment_option_metadata"); Row inputRow = new Row(2); diff --git a/dagger-core/src/test/java/io/odpf/dagger/protohandler/PrimitiveProtoHandlerTest.java b/dagger-core/src/test/java/io/odpf/dagger/protohandler/PrimitiveProtoHandlerTest.java index c06af028c..b47f3de0d 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/protohandler/PrimitiveProtoHandlerTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/protohandler/PrimitiveProtoHandlerTest.java @@ -1,9 +1,9 @@ package io.odpf.dagger.protohandler; +import io.odpf.dagger.consumer.TestBookingLogMessage; +import io.odpf.dagger.exception.InvalidDataTypeException; import org.apache.flink.api.common.typeinfo.Types; -import com.gojek.daggers.exception.InvalidDataTypeException; -import com.gojek.esb.booking.BookingLogMessage; import com.google.protobuf.Descriptors; import com.google.protobuf.DynamicMessage; import org.junit.Assert; @@ -21,7 +21,7 @@ public class PrimitiveProtoHandlerTest { @Test public void shouldReturnTrueForAnyDataType() { - Descriptors.FieldDescriptor fieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("order_number"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("order_number"); PrimitiveProtoHandler primitiveProtoHandler = new PrimitiveProtoHandler(fieldDescriptor); assertTrue(primitiveProtoHandler.canHandle()); @@ -29,7 +29,7 @@ public void shouldReturnTrueForAnyDataType() { @Test public void shouldReturnSameBuilderWithoutSettingFieldIfNullFieldIsPassed() { - Descriptors.FieldDescriptor fieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("order_number"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("order_number"); PrimitiveProtoHandler primitiveProtoHandler = new PrimitiveProtoHandler(fieldDescriptor); DynamicMessage.Builder builder = DynamicMessage.newBuilder(fieldDescriptor.getContainingType()); @@ -39,7 +39,7 @@ public void shouldReturnSameBuilderWithoutSettingFieldIfNullFieldIsPassed() { @Test public void shouldSetFieldPassedInTheBuilder() { - Descriptors.FieldDescriptor fieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("order_number"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("order_number"); PrimitiveProtoHandler primitiveProtoHandler = new PrimitiveProtoHandler(fieldDescriptor); DynamicMessage.Builder builder = DynamicMessage.newBuilder(fieldDescriptor.getContainingType()); @@ -49,7 +49,7 @@ public void shouldSetFieldPassedInTheBuilder() { @Test public void shouldReturnIntegerValueForIntegerTypeFieldDescriptorIfIntegerIsPassedForPostProcessorTransform() { - Descriptors.Descriptor descriptor = BookingLogMessage.getDescriptor(); + Descriptors.Descriptor descriptor = TestBookingLogMessage.getDescriptor(); Descriptors.FieldDescriptor fieldDescriptor = descriptor.findFieldByName("cancel_reason_id"); PrimitiveProtoHandler primitiveProtoHandler = new PrimitiveProtoHandler(fieldDescriptor); @@ -58,7 +58,7 @@ public void shouldReturnIntegerValueForIntegerTypeFieldDescriptorIfIntegerIsPass @Test public void shouldReturnIntegerValueForIntegerTypeFieldDescriptorIfIntegerIsPassedAsStringForPostProcessorTransform() { - Descriptors.Descriptor descriptor = BookingLogMessage.getDescriptor(); + Descriptors.Descriptor descriptor = TestBookingLogMessage.getDescriptor(); Descriptors.FieldDescriptor fieldDescriptor = descriptor.findFieldByName("cancel_reason_id"); PrimitiveProtoHandler primitiveProtoHandler = new PrimitiveProtoHandler(fieldDescriptor); @@ -67,7 +67,7 @@ public void shouldReturnIntegerValueForIntegerTypeFieldDescriptorIfIntegerIsPass @Test public void shouldReturnStringValueForStringTypeFieldDescriptorIfStringIsPassedForPostProcessorTransform() { - Descriptors.Descriptor descriptor = BookingLogMessage.getDescriptor(); + Descriptors.Descriptor descriptor = TestBookingLogMessage.getDescriptor(); Descriptors.FieldDescriptor stringFieldDescriptor = descriptor.findFieldByName("order_number"); PrimitiveProtoHandler primitiveProtoHandler = new PrimitiveProtoHandler(stringFieldDescriptor); @@ -76,7 +76,7 @@ public void shouldReturnStringValueForStringTypeFieldDescriptorIfStringIsPassedF @Test public void shouldReturnStringValueForStringTypeFieldDescriptorIfStringIsNotPassedForPostProcessorTransform() { - Descriptors.Descriptor descriptor = BookingLogMessage.getDescriptor(); + Descriptors.Descriptor descriptor = TestBookingLogMessage.getDescriptor(); Descriptors.FieldDescriptor stringFieldDescriptor = descriptor.findFieldByName("order_number"); PrimitiveProtoHandler primitiveProtoHandler = new PrimitiveProtoHandler(stringFieldDescriptor); @@ -86,9 +86,9 @@ public void shouldReturnStringValueForStringTypeFieldDescriptorIfStringIsNotPass @Test public void shouldThrowInvalidDataTypeExceptionInCaseOfTypeMismatchForPostProcessorTransform() { expectedException.expect(InvalidDataTypeException.class); - expectedException.expectMessage("type mismatch of field: customer_price, expecting FLOAT type, actual type class java.lang.String"); + expectedException.expectMessage("type mismatch of field: total_customer_discount, expecting FLOAT type, actual type class java.lang.String"); - Descriptors.FieldDescriptor floatFieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("customer_price"); + Descriptors.FieldDescriptor floatFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("total_customer_discount"); PrimitiveProtoHandler primitiveProtoHandler = new PrimitiveProtoHandler(floatFieldDescriptor); primitiveProtoHandler.transformFromPostProcessor("stringValue"); @@ -96,7 +96,7 @@ public void shouldThrowInvalidDataTypeExceptionInCaseOfTypeMismatchForPostProces @Test public void shouldReturnSameValueForTransformForKafka() { - Descriptors.Descriptor descriptor = BookingLogMessage.getDescriptor(); + Descriptors.Descriptor descriptor = TestBookingLogMessage.getDescriptor(); Descriptors.FieldDescriptor stringFieldDescriptor = descriptor.findFieldByName("order_number"); PrimitiveProtoHandler primitiveProtoHandler = new PrimitiveProtoHandler(stringFieldDescriptor); @@ -106,7 +106,7 @@ public void shouldReturnSameValueForTransformForKafka() { @Test public void shouldReturnTypeInformation() { - Descriptors.Descriptor descriptor = BookingLogMessage.getDescriptor(); + Descriptors.Descriptor descriptor = TestBookingLogMessage.getDescriptor(); Descriptors.FieldDescriptor stringFieldDescriptor = descriptor.findFieldByName("order_number"); PrimitiveProtoHandler primitiveProtoHandler = new PrimitiveProtoHandler(stringFieldDescriptor); assertEquals(Types.STRING, primitiveProtoHandler.getTypeInformation()); @@ -114,7 +114,7 @@ public void shouldReturnTypeInformation() { @Test public void shouldConvertPrimitiveStringToJsonString() { - Descriptors.FieldDescriptor fieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("order_number"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("order_number"); Object value = new PrimitiveProtoHandler(fieldDescriptor).transformToJson("123"); Assert.assertEquals("123", value); diff --git a/dagger-core/src/test/java/io/odpf/dagger/protohandler/ProtoHandlerFactoryTest.java b/dagger-core/src/test/java/io/odpf/dagger/protohandler/ProtoHandlerFactoryTest.java index f289328b2..b733083c5 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/protohandler/ProtoHandlerFactoryTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/protohandler/ProtoHandlerFactoryTest.java @@ -1,12 +1,10 @@ package io.odpf.dagger.protohandler; -import com.gojek.esb.booking.BookingLogMessage; -import com.gojek.esb.booking.GoLifeBookingLogMessage; -import com.gojek.esb.clevertap.ClevertapEventLogMessage; -import com.gojek.esb.consumer.TestNestedRepeatedMessage; -import com.gojek.esb.consumer.TestRepeatedEnumMessage; -import com.gojek.esb.customersanction.CustomerSanctionLogMessage; import com.google.protobuf.Descriptors; +import io.odpf.dagger.consumer.TestBookingLogMessage; +import io.odpf.dagger.consumer.TestFeedbackLogMessage; +import io.odpf.dagger.consumer.TestNestedRepeatedMessage; +import io.odpf.dagger.consumer.TestRepeatedEnumMessage; import org.junit.Before; import org.junit.Test; @@ -24,35 +22,35 @@ public void setup() { @Test public void shouldReturnMapProtoHandlerIfMapFieldDescriptorPassed() { - Descriptors.FieldDescriptor mapFieldDescriptor = CustomerSanctionLogMessage.getDescriptor().findFieldByName("metadata"); + Descriptors.FieldDescriptor mapFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("metadata"); ProtoHandler protoHandler = ProtoHandlerFactory.getProtoHandler(mapFieldDescriptor); assertEquals(MapProtoHandler.class, protoHandler.getClass()); } @Test public void shouldReturnTimestampProtoHandlerIfTimestampFieldDescriptorPassed() { - Descriptors.FieldDescriptor timestampFieldDescriptor = CustomerSanctionLogMessage.getDescriptor().findFieldByName("event_timestamp"); + Descriptors.FieldDescriptor timestampFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("event_timestamp"); ProtoHandler protoHandler = ProtoHandlerFactory.getProtoHandler(timestampFieldDescriptor); assertEquals(TimestampProtoHandler.class, protoHandler.getClass()); } @Test public void shouldReturnEnumProtoHandlerIfEnumFieldDescriptorPassed() { - Descriptors.FieldDescriptor enumFieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("service_type"); + Descriptors.FieldDescriptor enumFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("service_type"); ProtoHandler protoHandler = ProtoHandlerFactory.getProtoHandler(enumFieldDescriptor); assertEquals(EnumProtoHandler.class, protoHandler.getClass()); } @Test public void shouldReturnRepeatedProtoHandlerIfRepeatedFieldDescriptorPassed() { - Descriptors.FieldDescriptor repeatedFieldDescriptor = GoLifeBookingLogMessage.getDescriptor().findFieldByName("favourite_service_provider_guids"); + Descriptors.FieldDescriptor repeatedFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("meta_array"); ProtoHandler protoHandler = ProtoHandlerFactory.getProtoHandler(repeatedFieldDescriptor); assertEquals(RepeatedPrimitiveProtoHandler.class, protoHandler.getClass()); } @Test public void shouldReturnRepeatedMessageProtoHandlerIfRepeatedMessageFieldDescriptorPassed() { - Descriptors.FieldDescriptor repeatedMessageFieldDescriptor = GoLifeBookingLogMessage.getDescriptor().findFieldByName("routes"); + Descriptors.FieldDescriptor repeatedMessageFieldDescriptor = TestFeedbackLogMessage.getDescriptor().findFieldByName("reason"); ProtoHandler protoHandler = ProtoHandlerFactory.getProtoHandler(repeatedMessageFieldDescriptor); assertEquals(RepeatedMessageProtoHandler.class, protoHandler.getClass()); } @@ -73,21 +71,21 @@ public void shouldReturnRepeatedStructProtoHandlerIfRepeatedStructFieldDescripto @Test public void shouldReturnStructProtoHandlerIfStructFieldDescriptorPassed() { - Descriptors.FieldDescriptor structFieldDescriptor = ClevertapEventLogMessage.getDescriptor().findFieldByName("profile_data"); + Descriptors.FieldDescriptor structFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("profile_data"); ProtoHandler protoHandler = ProtoHandlerFactory.getProtoHandler(structFieldDescriptor); assertEquals(StructMessageProtoHandler.class, protoHandler.getClass()); } @Test public void shouldReturnMessageProtoHandlerIfMessageFieldDescriptorPassed() { - Descriptors.FieldDescriptor messageFieldDescriptor = GoLifeBookingLogMessage.getDescriptor().findFieldByName("driver_eta_pickup"); + Descriptors.FieldDescriptor messageFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("payment_option_metadata"); ProtoHandler protoHandler = ProtoHandlerFactory.getProtoHandler(messageFieldDescriptor); assertEquals(MessageProtoHandler.class, protoHandler.getClass()); } @Test public void shouldReturnDefaultProtoHandlerIfPrimitiveFieldDescriptorPassed() { - Descriptors.FieldDescriptor primitiveFieldDescriptor = GoLifeBookingLogMessage.getDescriptor().findFieldByName("order_number"); + Descriptors.FieldDescriptor primitiveFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("order_number"); ProtoHandler protoHandler = ProtoHandlerFactory.getProtoHandler(primitiveFieldDescriptor); assertEquals(PrimitiveProtoHandler.class, protoHandler.getClass()); } @@ -98,7 +96,7 @@ public void shouldReturnTheSameObjectWithMultipleThreads() throws InterruptedExc final ProtoHandler[] cache = {null}; for (int i = 0; i < 1000; i++) { e.submit(() -> { - Descriptors.FieldDescriptor primitiveFieldDescriptor = GoLifeBookingLogMessage.getDescriptor().findFieldByName("order_number"); + Descriptors.FieldDescriptor primitiveFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("order_number"); ProtoHandler protoHandler = ProtoHandlerFactory.getProtoHandler(primitiveFieldDescriptor); assertEquals(PrimitiveProtoHandler.class, protoHandler.getClass()); synchronized (cache) { @@ -118,7 +116,7 @@ public void shouldReturnTheSameObjectWithMultipleThreads() throws InterruptedExc @Test public void shouldReturnTheSameObjectWhenFactoryMethodIsCalledMultipleTimes() { - Descriptors.FieldDescriptor primitiveFieldDescriptor = GoLifeBookingLogMessage.getDescriptor().findFieldByName("order_number"); + Descriptors.FieldDescriptor primitiveFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("order_number"); ProtoHandler protoHandler = ProtoHandlerFactory.getProtoHandler(primitiveFieldDescriptor); assertEquals(PrimitiveProtoHandler.class, protoHandler.getClass()); ProtoHandler newProtoHandler = ProtoHandlerFactory.getProtoHandler(primitiveFieldDescriptor); diff --git a/dagger-core/src/test/java/io/odpf/dagger/protohandler/RepeatedEnumProtoHandlerTest.java b/dagger-core/src/test/java/io/odpf/dagger/protohandler/RepeatedEnumProtoHandlerTest.java index e21e3a35a..3ea669e1f 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/protohandler/RepeatedEnumProtoHandlerTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/protohandler/RepeatedEnumProtoHandlerTest.java @@ -1,11 +1,11 @@ package io.odpf.dagger.protohandler; -import com.gojek.esb.booking.BookingLogMessage; -import com.gojek.esb.consumer.TestEnumMessage; -import com.gojek.esb.consumer.TestRepeatedEnumMessage; import com.google.protobuf.Descriptors; import com.google.protobuf.DynamicMessage; import com.google.protobuf.InvalidProtocolBufferException; +import io.odpf.dagger.consumer.TestBookingLogMessage; +import io.odpf.dagger.consumer.TestEnumMessage; +import io.odpf.dagger.consumer.TestRepeatedEnumMessage; import org.apache.flink.api.common.typeinfo.TypeInformation; import org.apache.flink.api.common.typeinfo.Types; import org.apache.flink.api.java.typeutils.ObjectArrayTypeInfo; @@ -27,7 +27,7 @@ public void shouldReturnTrueIfRepeatedEnumFieldDescriptorIsPassed() { @Test public void shouldReturnFalseIfEnumFieldDescriptorIsPassed() { - Descriptors.FieldDescriptor enumFieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("service_type"); + Descriptors.FieldDescriptor enumFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("service_type"); RepeatedEnumProtoHandler repeatedEnumProtoHandler = new RepeatedEnumProtoHandler(enumFieldDescriptor); assertFalse(repeatedEnumProtoHandler.canHandle()); @@ -35,7 +35,7 @@ public void shouldReturnFalseIfEnumFieldDescriptorIsPassed() { @Test public void shouldReturnFalseIfFieldDescriptorOtherThanRepeatedEnumTypeIsPassed() { - Descriptors.FieldDescriptor otherFieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("order_number"); + Descriptors.FieldDescriptor otherFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("order_number"); RepeatedEnumProtoHandler repeatedEnumProtoHandler = new RepeatedEnumProtoHandler(otherFieldDescriptor); assertFalse(repeatedEnumProtoHandler.canHandle()); diff --git a/dagger-core/src/test/java/io/odpf/dagger/protohandler/RepeatedMessageProtoHandlerTest.java b/dagger-core/src/test/java/io/odpf/dagger/protohandler/RepeatedMessageProtoHandlerTest.java index 4e0dcfca7..0a571d587 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/protohandler/RepeatedMessageProtoHandlerTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/protohandler/RepeatedMessageProtoHandlerTest.java @@ -1,14 +1,14 @@ package io.odpf.dagger.protohandler; +import com.google.protobuf.InvalidProtocolBufferException; +import io.odpf.dagger.consumer.TestBookingLogMessage; +import io.odpf.dagger.consumer.TestFeedbackLogMessage; +import io.odpf.dagger.consumer.TestReason; import org.apache.flink.api.common.typeinfo.TypeInformation; import org.apache.flink.types.Row; -import com.gojek.esb.booking.BookingLogMessage; -import com.gojek.esb.booking.GoFoodBookingLogMessage; -import com.gojek.esb.types.GoFoodShoppingItemProto.GoFoodShoppingItem; import com.google.protobuf.Descriptors; import com.google.protobuf.DynamicMessage; -import com.google.protobuf.InvalidProtocolBufferException; import net.minidev.json.JSONArray; import org.junit.Assert; import org.junit.Test; @@ -17,10 +17,6 @@ import java.util.HashMap; import java.util.List; -import static org.apache.flink.api.common.typeinfo.Types.BOOLEAN; -import static org.apache.flink.api.common.typeinfo.Types.DOUBLE; -import static org.apache.flink.api.common.typeinfo.Types.INT; -import static org.apache.flink.api.common.typeinfo.Types.LONG; import static org.apache.flink.api.common.typeinfo.Types.OBJECT_ARRAY; import static org.apache.flink.api.common.typeinfo.Types.ROW_NAMED; import static org.apache.flink.api.common.typeinfo.Types.STRING; @@ -32,15 +28,15 @@ public class RepeatedMessageProtoHandlerTest { @Test public void shouldReturnTrueIfRepeatedMessageFieldDescriptorIsPassed() { - Descriptors.FieldDescriptor repeatedMessageFieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("routes"); - RepeatedMessageProtoHandler repeatedMesssageProtoHandler = new RepeatedMessageProtoHandler(repeatedMessageFieldDescriptor); + Descriptors.FieldDescriptor repeatedMessageFieldDescriptor = TestFeedbackLogMessage.getDescriptor().findFieldByName("reason"); + RepeatedMessageProtoHandler repeatedMessageProtoHandler = new RepeatedMessageProtoHandler(repeatedMessageFieldDescriptor); - assertTrue(repeatedMesssageProtoHandler.canHandle()); + assertTrue(repeatedMessageProtoHandler.canHandle()); } @Test public void shouldReturnFalseIfFieldDescriptorOtherThanRepeatedMessageTypeIsPassed() { - Descriptors.FieldDescriptor otherFieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("order_number"); + Descriptors.FieldDescriptor otherFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("order_number"); RepeatedMessageProtoHandler repeatedMesssageProtoHandler = new RepeatedMessageProtoHandler(otherFieldDescriptor); assertFalse(repeatedMesssageProtoHandler.canHandle()); @@ -48,7 +44,7 @@ public void shouldReturnFalseIfFieldDescriptorOtherThanRepeatedMessageTypeIsPass @Test public void shouldReturnTheSameBuilderWithoutSettingFieldIfCanNotHandle() { - Descriptors.FieldDescriptor fieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("order_number"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("order_number"); RepeatedMessageProtoHandler repeatedMesssageProtoHandler = new RepeatedMessageProtoHandler(fieldDescriptor); DynamicMessage.Builder builder = DynamicMessage.newBuilder(fieldDescriptor.getContainingType()); @@ -58,7 +54,7 @@ public void shouldReturnTheSameBuilderWithoutSettingFieldIfCanNotHandle() { @Test public void shouldReturnTheSameBuilderWithoutSettingFieldIfNullPassed() { - Descriptors.FieldDescriptor fieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("order_number"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("order_number"); RepeatedMessageProtoHandler repeatedMesssageProtoHandler = new RepeatedMessageProtoHandler(fieldDescriptor); DynamicMessage.Builder builder = DynamicMessage.newBuilder(fieldDescriptor.getContainingType()); @@ -69,48 +65,49 @@ public void shouldReturnTheSameBuilderWithoutSettingFieldIfNullPassed() { @Test public void shouldSetTheFieldsPassedInTheBuilderForRepeatedMessageFieldTypeDescriptor() throws InvalidProtocolBufferException { - Descriptors.FieldDescriptor repeatedMessageFieldDescriptor = GoFoodBookingLogMessage.getDescriptor().findFieldByName("shopping_items"); - RepeatedMessageProtoHandler repeatedMesssageProtoHandler = new RepeatedMessageProtoHandler(repeatedMessageFieldDescriptor); + Descriptors.FieldDescriptor repeatedMessageFieldDescriptor = TestFeedbackLogMessage.getDescriptor().findFieldByName("reason"); + RepeatedMessageProtoHandler repeatedMessageProtoHandler = new RepeatedMessageProtoHandler(repeatedMessageFieldDescriptor); DynamicMessage.Builder builder = DynamicMessage.newBuilder(repeatedMessageFieldDescriptor.getContainingType()); - Row inputRow1 = new Row(9); - inputRow1.setField(0, 123L); - inputRow1.setField(2, "pizza"); + Row inputRow1 = new Row(2); + inputRow1.setField(0, "reason1"); + inputRow1.setField(1, "group1"); Row inputRow2 = new Row(9); - inputRow2.setField(0, 456L); - inputRow2.setField(5, "test_id"); + inputRow2.setField(0, "reason2"); + inputRow2.setField(1, "group2"); - ArrayList inputRows = new ArrayList<>(); + List inputRows = new ArrayList<>(); inputRows.add(inputRow1); inputRows.add(inputRow2); - DynamicMessage.Builder returnedBuilder = repeatedMesssageProtoHandler.transformForKafka(builder, inputRows.toArray()); + DynamicMessage.Builder returnedBuilder = repeatedMessageProtoHandler.transformForKafka(builder, inputRows.toArray()); - List returnedShoppingItems = (List) returnedBuilder.getField(repeatedMessageFieldDescriptor); + List reasons = (List) returnedBuilder.getField(repeatedMessageFieldDescriptor); - GoFoodShoppingItem returnedShoppingItem1 = GoFoodShoppingItem.parseFrom(returnedShoppingItems.get(0).toByteArray()); - GoFoodShoppingItem returnedShoppingItem2 = GoFoodShoppingItem.parseFrom(returnedShoppingItems.get(1).toByteArray()); + TestReason reason1 = TestReason.parseFrom(reasons.get(0).toByteArray()); + TestReason reason2 = TestReason.parseFrom(reasons.get(1).toByteArray()); - assertEquals(123L, returnedShoppingItem1.getId()); - assertEquals("pizza", returnedShoppingItem1.getName()); - assertEquals(456L, returnedShoppingItem2.getId()); - assertEquals("test_id", returnedShoppingItem2.getPromoId()); + assertEquals("reason1", reason1.getReasonId()); + assertEquals("group1", reason1.getGroupId()); + assertEquals("reason2", reason2.getReasonId()); + assertEquals("group2", reason2.getGroupId()); } @Test public void shouldSetTheFieldsPassedInTheBuilderForRepeatedMessageFieldTypeDescriptorIfInputIsList() throws InvalidProtocolBufferException { - Descriptors.FieldDescriptor repeatedMessageFieldDescriptor = GoFoodBookingLogMessage.getDescriptor().findFieldByName("shopping_items"); + Descriptors.FieldDescriptor repeatedMessageFieldDescriptor = TestFeedbackLogMessage.getDescriptor().findFieldByName("reason"); RepeatedMessageProtoHandler repeatedMesssageProtoHandler = new RepeatedMessageProtoHandler(repeatedMessageFieldDescriptor); DynamicMessage.Builder builder = DynamicMessage.newBuilder(repeatedMessageFieldDescriptor.getContainingType()); - Row inputRow1 = new Row(9); - inputRow1.setField(0, 123L); - inputRow1.setField(2, "pizza"); + Row inputRow1 = new Row(2); + inputRow1.setField(0, "reason1"); + inputRow1.setField(1, "group1"); Row inputRow2 = new Row(9); - inputRow2.setField(0, 456L); - inputRow2.setField(5, "test_id"); + inputRow2.setField(0, "reason2"); + inputRow2.setField(1, "group2"); + ArrayList inputRows = new ArrayList<>(); inputRows.add(inputRow1); @@ -118,81 +115,54 @@ public void shouldSetTheFieldsPassedInTheBuilderForRepeatedMessageFieldTypeDescr DynamicMessage.Builder returnedBuilder = repeatedMesssageProtoHandler.transformForKafka(builder, inputRows); - List returnedShoppingItems = (List) returnedBuilder.getField(repeatedMessageFieldDescriptor); - GoFoodShoppingItem returnedShoppingItem1 = GoFoodShoppingItem.parseFrom(returnedShoppingItems.get(0).toByteArray()); - GoFoodShoppingItem returnedShoppingItem2 = GoFoodShoppingItem.parseFrom(returnedShoppingItems.get(1).toByteArray()); + List reasons = (List) returnedBuilder.getField(repeatedMessageFieldDescriptor); - assertEquals(123L, returnedShoppingItem1.getId()); - assertEquals("pizza", returnedShoppingItem1.getName()); - assertEquals(456L, returnedShoppingItem2.getId()); - assertEquals("test_id", returnedShoppingItem2.getPromoId()); + TestReason reason1 = TestReason.parseFrom(reasons.get(0).toByteArray()); + TestReason reason2 = TestReason.parseFrom(reasons.get(1).toByteArray()); + + assertEquals("reason1", reason1.getReasonId()); + assertEquals("group1", reason1.getGroupId()); + assertEquals("reason2", reason2.getReasonId()); + assertEquals("group2", reason2.getGroupId()); } + @Test public void shouldSetTheFieldsNotPassedInTheBuilderForRepeatedMessageFieldTypeDescriptorToDefaults() throws InvalidProtocolBufferException { - Descriptors.FieldDescriptor repeatedMessageFieldDescriptor = GoFoodBookingLogMessage.getDescriptor().findFieldByName("shopping_items"); + Descriptors.FieldDescriptor repeatedMessageFieldDescriptor = TestFeedbackLogMessage.getDescriptor().findFieldByName("reason"); RepeatedMessageProtoHandler repeatedMesssageProtoHandler = new RepeatedMessageProtoHandler(repeatedMessageFieldDescriptor); DynamicMessage.Builder builder = DynamicMessage.newBuilder(repeatedMessageFieldDescriptor.getContainingType()); - Row inputRow1 = new Row(9); - inputRow1.setField(0, 123L); - inputRow1.setField(2, "pizza"); + Row inputRow1 = new Row(2); + inputRow1.setField(1, "group1"); Row inputRow2 = new Row(9); - inputRow2.setField(0, 456L); - inputRow2.setField(5, "test_id"); + inputRow2.setField(0, "reason2"); + ArrayList inputRows = new ArrayList<>(); inputRows.add(inputRow1); inputRows.add(inputRow2); - DynamicMessage.Builder returnedBuilder = repeatedMesssageProtoHandler.transformForKafka(builder, inputRows.toArray()); - - List returnedShoppingItems = (List) returnedBuilder.getField(repeatedMessageFieldDescriptor); - - GoFoodShoppingItem returnedShoppingItem1 = GoFoodShoppingItem.parseFrom(returnedShoppingItems.get(0).toByteArray()); - GoFoodShoppingItem returnedShoppingItem2 = GoFoodShoppingItem.parseFrom(returnedShoppingItems.get(1).toByteArray()); - - assertEquals(0, returnedShoppingItem1.getQuantity()); - assertEquals(0.0D, returnedShoppingItem1.getPrice(), 0.0D); - assertEquals("", returnedShoppingItem2.getNotes()); - assertEquals("", returnedShoppingItem2.getUuid()); - } - - @Test - public void shouldNotSetPreviousEntryValuesToFieldsOfNextEntry() throws InvalidProtocolBufferException { - Descriptors.FieldDescriptor repeatedMessageFieldDescriptor = GoFoodBookingLogMessage.getDescriptor().findFieldByName("shopping_items"); - RepeatedMessageProtoHandler repeatedMesssageProtoHandler = new RepeatedMessageProtoHandler(repeatedMessageFieldDescriptor); - DynamicMessage.Builder builder = DynamicMessage.newBuilder(repeatedMessageFieldDescriptor.getContainingType()); + DynamicMessage.Builder returnedBuilder = repeatedMesssageProtoHandler.transformForKafka(builder, inputRows); - Row inputRow1 = new Row(9); - inputRow1.setField(0, 123L); - inputRow1.setField(2, "pizza"); - Row inputRow2 = new Row(9); - inputRow2.setField(4, "test_notes"); - inputRow2.setField(5, "test_id"); + List reasons = (List) returnedBuilder.getField(repeatedMessageFieldDescriptor); - ArrayList inputRows = new ArrayList<>(); - inputRows.add(inputRow1); - inputRows.add(inputRow2); + TestReason reason1 = TestReason.parseFrom(reasons.get(0).toByteArray()); + TestReason reason2 = TestReason.parseFrom(reasons.get(1).toByteArray()); - DynamicMessage.Builder returnedBuilder = repeatedMesssageProtoHandler.transformForKafka(builder, inputRows.toArray()); + assertTrue(reason1.getReasonId().isEmpty()); + assertEquals("group1", reason1.getGroupId()); + assertEquals("reason2", reason2.getReasonId()); + assertTrue(reason2.getGroupId().isEmpty()); - List returnedShoppingItems = (List) returnedBuilder.getField(repeatedMessageFieldDescriptor); - - GoFoodShoppingItem returnedShoppingItem1 = GoFoodShoppingItem.parseFrom(returnedShoppingItems.get(0).toByteArray()); - GoFoodShoppingItem returnedShoppingItem2 = GoFoodShoppingItem.parseFrom(returnedShoppingItems.get(1).toByteArray()); - - assertEquals(123L, returnedShoppingItem1.getId()); - assertEquals(0L, returnedShoppingItem2.getId()); } @Test public void shouldReturnEmptyArrayOfRowsIfNullPassedForPostProcessorTransform() { - Descriptors.FieldDescriptor repeatedMessageFieldDescriptor = GoFoodBookingLogMessage.getDescriptor().findFieldByName("shopping_items"); - + Descriptors.FieldDescriptor repeatedMessageFieldDescriptor = TestFeedbackLogMessage.getDescriptor().findFieldByName("reason"); Object[] values = (Object[]) ProtoHandlerFactory.getProtoHandler(repeatedMessageFieldDescriptor).transformFromPostProcessor(null); assertEquals(0, values.length); @@ -203,19 +173,17 @@ public void shouldReturnArrayOfRowsGivenAListForFieldDescriptorOfTypeRepeatedMes JSONArray jsonArray = new JSONArray(); HashMap inputValues1 = new HashMap<>(); - inputValues1.put("id", 123L); - inputValues1.put("quantity", 1); - inputValues1.put("name", "pizza"); + inputValues1.put("group_id", "group1"); + inputValues1.put("reason_id", "reason1"); HashMap inputValues2 = new HashMap<>(); - inputValues2.put("id", 456L); - inputValues2.put("quantity", 2); - inputValues2.put("name", "pasta"); + inputValues2.put("group_id", "group2"); + inputValues2.put("reason_id", "reason2"); jsonArray.appendElement(inputValues1); jsonArray.appendElement(inputValues2); - Descriptors.FieldDescriptor repeatedMessageFieldDescriptor = GoFoodBookingLogMessage.getDescriptor().findFieldByName("shopping_items"); + Descriptors.FieldDescriptor repeatedMessageFieldDescriptor = TestFeedbackLogMessage.getDescriptor().findFieldByName("reason"); Object[] values = (Object[]) ProtoHandlerFactory.getProtoHandler(repeatedMessageFieldDescriptor).transformFromPostProcessor(jsonArray); @@ -228,55 +196,50 @@ public void shouldReturnArrayOfRowsGivenAListForFieldDescriptorOfTypeRepeatedMes JSONArray jsonArray = new JSONArray(); HashMap inputValues1 = new HashMap<>(); - inputValues1.put("id", 123L); - inputValues1.put("quantity", 1); - inputValues1.put("name", "pizza"); + inputValues1.put("group_id", "group1"); + inputValues1.put("reason_id", "reason1"); HashMap inputValues2 = new HashMap<>(); - inputValues2.put("id", 456L); - inputValues2.put("quantity", 2); - inputValues2.put("name", "pasta"); + inputValues2.put("group_id", "group2"); + inputValues2.put("reason_id", "reason2"); jsonArray.appendElement(inputValues1); jsonArray.appendElement(inputValues2); - Descriptors.FieldDescriptor repeatedMessageFieldDescriptor = GoFoodBookingLogMessage.getDescriptor().findFieldByName("shopping_items"); + Descriptors.FieldDescriptor repeatedMessageFieldDescriptor = TestFeedbackLogMessage.getDescriptor().findFieldByName("reason"); Object[] values = (Object[]) ProtoHandlerFactory.getProtoHandler(repeatedMessageFieldDescriptor).transformFromPostProcessor(jsonArray); - assertEquals(123L, ((Row) values[0]).getField(0)); - assertEquals(1, ((Row) values[0]).getField(1)); - assertEquals("pizza", ((Row) values[0]).getField(2)); - assertEquals(456L, ((Row) values[1]).getField(0)); - assertEquals(2, ((Row) values[1]).getField(1)); - assertEquals("pasta", ((Row) values[1]).getField(2)); + assertEquals("reason1", ((Row) values[0]).getField(0)); + assertEquals("group1", ((Row) values[0]).getField(1)); + assertEquals("reason2", ((Row) values[1]).getField(0)); + assertEquals("group2", ((Row) values[1]).getField(1)); } @Test public void shouldReturnArrayOfRowsGivenAListForFieldDescriptorOfTypeRepeatedMessageIfExtraFieldsGivenForPostProcessorTransform() { JSONArray jsonArray = new JSONArray(); + HashMap inputValues = new HashMap<>(); - inputValues.put("id", 123L); - inputValues.put("quantity", 1); - inputValues.put("name", "pizza"); + inputValues.put("group_id", "group1"); + inputValues.put("reason_id", "reason1"); inputValues.put("random_key", "random_value"); jsonArray.appendElement(inputValues); - Descriptors.FieldDescriptor repeatedMessageFieldDescriptor = GoFoodBookingLogMessage.getDescriptor().findFieldByName("shopping_items"); + Descriptors.FieldDescriptor repeatedMessageFieldDescriptor = TestFeedbackLogMessage.getDescriptor().findFieldByName("reason"); Object[] values = (Object[]) ProtoHandlerFactory.getProtoHandler(repeatedMessageFieldDescriptor).transformFromPostProcessor(jsonArray); - assertEquals(123L, ((Row) values[0]).getField(0)); - assertEquals(1, ((Row) values[0]).getField(1)); - assertEquals("pizza", ((Row) values[0]).getField(2)); + assertEquals("reason1", ((Row) values[0]).getField(0)); + assertEquals("group1", ((Row) values[0]).getField(1)); } @Test public void shouldReturnEmptyArrayOfRowsIfNullPassedForKafkaTransform() { - Descriptors.FieldDescriptor repeatedMessageFieldDescriptor = GoFoodBookingLogMessage.getDescriptor().findFieldByName("shopping_items"); + Descriptors.FieldDescriptor repeatedMessageFieldDescriptor = TestFeedbackLogMessage.getDescriptor().findFieldByName("reason"); Object[] values = (Object[]) new RepeatedMessageProtoHandler(repeatedMessageFieldDescriptor).transformFromKafka(null); @@ -285,55 +248,53 @@ public void shouldReturnEmptyArrayOfRowsIfNullPassedForKafkaTransform() { @Test public void shouldReturnArrayOfRowsGivenAListForFieldDescriptorOfTypeRepeatedMessageOfAsDescriptorForKafkaTransform() throws InvalidProtocolBufferException { - GoFoodBookingLogMessage goFoodBookingLogMessage = GoFoodBookingLogMessage + TestFeedbackLogMessage logMessage = TestFeedbackLogMessage .newBuilder() - .addShoppingItems(GoFoodShoppingItem.newBuilder().setId(123L).setQuantity(1).setName("pizza").build()) - .addShoppingItems(GoFoodShoppingItem.newBuilder().setId(456L).setQuantity(2).setName("pasta").build()) + .addReason(TestReason.newBuilder().setReasonId("reason1").setGroupId("group1").build()) + .addReason(TestReason.newBuilder().setReasonId("reason2").setGroupId("group2").build()) .build(); - DynamicMessage dynamicMessage = DynamicMessage.parseFrom(GoFoodBookingLogMessage.getDescriptor(), goFoodBookingLogMessage.toByteArray()); + DynamicMessage dynamicMessage = DynamicMessage.parseFrom(TestFeedbackLogMessage.getDescriptor(), logMessage.toByteArray()); - Descriptors.FieldDescriptor repeatedMessageFieldDescriptor = GoFoodBookingLogMessage.getDescriptor().findFieldByName("shopping_items"); + Descriptors.FieldDescriptor repeatedMessageFieldDescriptor = TestFeedbackLogMessage.getDescriptor().findFieldByName("reason"); Object[] values = (Object[]) new RepeatedMessageProtoHandler(repeatedMessageFieldDescriptor).transformFromKafka(dynamicMessage.getField(repeatedMessageFieldDescriptor)); assertEquals(repeatedMessageFieldDescriptor.getMessageType().getFields().size(), ((Row) values[0]).getArity()); assertEquals(repeatedMessageFieldDescriptor.getMessageType().getFields().size(), ((Row) values[1]).getArity()); - assertEquals(123L, ((Row) values[0]).getField(0)); - assertEquals(1, ((Row) values[0]).getField(1)); - assertEquals("pizza", ((Row) values[0]).getField(2)); - assertEquals(456L, ((Row) values[1]).getField(0)); - assertEquals(2, ((Row) values[1]).getField(1)); - assertEquals("pasta", ((Row) values[1]).getField(2)); + assertEquals("reason1", ((Row) values[0]).getField(0)); + assertEquals("group1", ((Row) values[0]).getField(1)); + assertEquals("reason2", ((Row) values[1]).getField(0)); + assertEquals("group2", ((Row) values[1]).getField(1)); } + @Test public void shouldReturnTypeInformation() { - Descriptors.FieldDescriptor repeatedMessageFieldDescriptor = GoFoodBookingLogMessage.getDescriptor().findFieldByName("shopping_items"); + Descriptors.FieldDescriptor repeatedMessageFieldDescriptor = TestFeedbackLogMessage.getDescriptor().findFieldByName("reason"); RepeatedMessageProtoHandler repeatedMessageProtoHandler = new RepeatedMessageProtoHandler(repeatedMessageFieldDescriptor); TypeInformation actualTypeInformation = repeatedMessageProtoHandler.getTypeInformation(); - TypeInformation expectedTypeInformation = OBJECT_ARRAY(ROW_NAMED(new String[]{"id", "quantity", "name", "price", "notes", "promo_id", "uuid", "out_of_stock", "variants"}, - LONG, INT, STRING, DOUBLE, STRING, STRING, STRING, BOOLEAN, - OBJECT_ARRAY(ROW_NAMED(new String[]{"id", "name", "catagory_id", "catagory_name", "out_of_stock"}, STRING, STRING, STRING, STRING, BOOLEAN)))); + TypeInformation expectedTypeInformation = OBJECT_ARRAY(ROW_NAMED(new String[]{"reason_id", "group_id"}, STRING, STRING)); assertEquals(expectedTypeInformation, actualTypeInformation); } @Test public void shouldConvertRepeatedComplexRowDataToJsonString() { - Descriptors.FieldDescriptor repeatedMessageFieldDescriptor = GoFoodBookingLogMessage.getDescriptor().findFieldByName("shopping_items"); + Descriptors.FieldDescriptor repeatedMessageFieldDescriptor = TestFeedbackLogMessage.getDescriptor().findFieldByName("reason"); - Row inputRow1 = new Row(9); - inputRow1.setField(0, 123L); - inputRow1.setField(2, "pizza"); + Row inputRow1 = new Row(2); + inputRow1.setField(0, "reason1"); + inputRow1.setField(1, "group1"); - Row inputRow2 = new Row(9); - inputRow2.setField(0, 456L); - inputRow2.setField(5, "test_id"); + Row inputRow2 = new Row(2); + inputRow2.setField(0, "reason2"); + inputRow2.setField(1, "group2"); Row[] inputRows = new Row[2]; inputRows[0] = inputRow1; inputRows[1] = inputRow2; Object value = new RepeatedMessageProtoHandler(repeatedMessageFieldDescriptor).transformToJson(inputRows); - Assert.assertEquals("[{\"id\":123,\"quantity\":null,\"name\":\"pizza\",\"price\":null,\"notes\":null,\"promo_id\":null,\"uuid\":null,\"out_of_stock\":null,\"variants\":null}, {\"id\":456,\"quantity\":null,\"name\":null,\"price\":null,\"notes\":null,\"promo_id\":\"test_id\",\"uuid\":null,\"out_of_stock\":null,\"variants\":null}]", String.valueOf(value)); + Assert.assertEquals("[{\"reason_id\":\"reason1\",\"group_id\":\"group1\"}, {\"reason_id\":\"reason2\",\"group_id\":\"group2\"}]", String.valueOf(value)); } + } diff --git a/dagger-core/src/test/java/io/odpf/dagger/protohandler/RepeatedPrimitiveProtoHandlerTest.java b/dagger-core/src/test/java/io/odpf/dagger/protohandler/RepeatedPrimitiveProtoHandlerTest.java index c61dd5947..368f70d5c 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/protohandler/RepeatedPrimitiveProtoHandlerTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/protohandler/RepeatedPrimitiveProtoHandlerTest.java @@ -1,18 +1,16 @@ package io.odpf.dagger.protohandler; +import com.google.protobuf.InvalidProtocolBufferException; +import io.odpf.dagger.consumer.TestBookingLogMessage; +import io.odpf.dagger.consumer.TestRepeatedEnumMessage; import org.apache.flink.api.common.typeinfo.TypeInformation; import org.apache.flink.api.common.typeinfo.Types; import org.apache.flink.api.java.typeutils.ObjectArrayTypeInfo; import io.odpf.dagger.exception.DataTypeNotSupportedException; import io.odpf.dagger.exception.InvalidDataTypeException; -import com.gojek.esb.booking.BookingLogMessage; -import com.gojek.esb.booking.GoLifeBookingLogMessage; -import com.gojek.esb.consumer.TestRepeatedEnumMessage; -import com.gojek.esb.jaeger.JaegerResponseLogMessage; import com.google.protobuf.Descriptors; import com.google.protobuf.DynamicMessage; -import com.google.protobuf.InvalidProtocolBufferException; import org.junit.Assert; import org.junit.Test; @@ -27,7 +25,7 @@ public class RepeatedPrimitiveProtoHandlerTest { @Test public void shouldReturnTrueIfRepeatedPrimitiveFieldDescriptorIsPassed() { - Descriptors.FieldDescriptor repeatedFieldDescriptor = GoLifeBookingLogMessage.getDescriptor().findFieldByName("favourite_service_provider_guids"); + Descriptors.FieldDescriptor repeatedFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("meta_array"); RepeatedPrimitiveProtoHandler repeatedPrimitiveProtoHandler = new RepeatedPrimitiveProtoHandler(repeatedFieldDescriptor); assertTrue(repeatedPrimitiveProtoHandler.canHandle()); @@ -35,7 +33,7 @@ public void shouldReturnTrueIfRepeatedPrimitiveFieldDescriptorIsPassed() { @Test public void shouldReturnFalseIfRepeatedMessageFieldDescriptorIsPassed() { - Descriptors.FieldDescriptor repeatedMessageFieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("routes"); + Descriptors.FieldDescriptor repeatedMessageFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("routes"); RepeatedPrimitiveProtoHandler repeatedPrimitiveProtoHandler = new RepeatedPrimitiveProtoHandler(repeatedMessageFieldDescriptor); assertFalse(repeatedPrimitiveProtoHandler.canHandle()); @@ -51,7 +49,7 @@ public void shouldReturnFalseIfRepeatedEnumFieldDescriptorIsPassed() { @Test public void shouldReturnFalseIfFieldDescriptorOtherThanTypeIsPassed() { - Descriptors.FieldDescriptor otherFieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("order_number"); + Descriptors.FieldDescriptor otherFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("order_number"); RepeatedPrimitiveProtoHandler repeatedPrimitiveProtoHandler = new RepeatedPrimitiveProtoHandler(otherFieldDescriptor); assertFalse(repeatedPrimitiveProtoHandler.canHandle()); @@ -59,7 +57,7 @@ public void shouldReturnFalseIfFieldDescriptorOtherThanTypeIsPassed() { @Test public void shouldReturnSameBuilderWithoutSettingFieldIfCannotHandle() { - Descriptors.FieldDescriptor otherFieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("order_number"); + Descriptors.FieldDescriptor otherFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("order_number"); RepeatedPrimitiveProtoHandler repeatedPrimitiveProtoHandler = new RepeatedPrimitiveProtoHandler(otherFieldDescriptor); DynamicMessage.Builder builder = DynamicMessage.newBuilder(otherFieldDescriptor.getContainingType()); @@ -69,7 +67,7 @@ public void shouldReturnSameBuilderWithoutSettingFieldIfCannotHandle() { @Test public void shouldReturnSameBuilderWithoutSettingFieldIfNullFieldIsPassed() { - Descriptors.FieldDescriptor repeatedFieldDescriptor = GoLifeBookingLogMessage.getDescriptor().findFieldByName("favourite_service_provider_guids"); + Descriptors.FieldDescriptor repeatedFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("meta_array"); RepeatedPrimitiveProtoHandler repeatedPrimitiveProtoHandler = new RepeatedPrimitiveProtoHandler(repeatedFieldDescriptor); DynamicMessage.Builder builder = DynamicMessage.newBuilder(repeatedFieldDescriptor.getContainingType()); @@ -80,7 +78,7 @@ public void shouldReturnSameBuilderWithoutSettingFieldIfNullFieldIsPassed() { @Test public void shouldSetEmptyListInBuilderIfEmptyListIfPassed() { - Descriptors.FieldDescriptor repeatedFieldDescriptor = GoLifeBookingLogMessage.getDescriptor().findFieldByName("favourite_service_provider_guids"); + Descriptors.FieldDescriptor repeatedFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("meta_array"); RepeatedPrimitiveProtoHandler repeatedPrimitiveProtoHandler = new RepeatedPrimitiveProtoHandler(repeatedFieldDescriptor); DynamicMessage.Builder builder = DynamicMessage.newBuilder(repeatedFieldDescriptor.getContainingType()); @@ -93,7 +91,7 @@ public void shouldSetEmptyListInBuilderIfEmptyListIfPassed() { @Test public void shouldSetFieldPassedInTheBuilderAsAList() { - Descriptors.FieldDescriptor repeatedFieldDescriptor = GoLifeBookingLogMessage.getDescriptor().findFieldByName("favourite_service_provider_guids"); + Descriptors.FieldDescriptor repeatedFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("meta_array"); RepeatedPrimitiveProtoHandler repeatedPrimitiveProtoHandler = new RepeatedPrimitiveProtoHandler(repeatedFieldDescriptor); DynamicMessage.Builder builder = DynamicMessage.newBuilder(repeatedFieldDescriptor.getContainingType()); @@ -109,7 +107,7 @@ public void shouldSetFieldPassedInTheBuilderAsAList() { @Test public void shouldSetFieldPassedInTheBuilderAsArray() { - Descriptors.FieldDescriptor repeatedFieldDescriptor = GoLifeBookingLogMessage.getDescriptor().findFieldByName("favourite_service_provider_guids"); + Descriptors.FieldDescriptor repeatedFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("meta_array"); RepeatedPrimitiveProtoHandler repeatedPrimitiveProtoHandler = new RepeatedPrimitiveProtoHandler(repeatedFieldDescriptor); DynamicMessage.Builder builder = DynamicMessage.newBuilder(repeatedFieldDescriptor.getContainingType()); @@ -125,7 +123,7 @@ public void shouldSetFieldPassedInTheBuilderAsArray() { @Test public void shouldReturnArrayOfObjectsWithTypeSameAsFieldDescriptorForPostProcessorTransform() { - Descriptors.FieldDescriptor repeatedFieldDescriptor = GoLifeBookingLogMessage.getDescriptor().findFieldByName("favourite_service_provider_guids"); + Descriptors.FieldDescriptor repeatedFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("meta_array"); RepeatedPrimitiveProtoHandler repeatedPrimitiveProtoHandler = new RepeatedPrimitiveProtoHandler(repeatedFieldDescriptor); ArrayList inputValues = new ArrayList<>(); @@ -138,7 +136,7 @@ public void shouldReturnArrayOfObjectsWithTypeSameAsFieldDescriptorForPostProces @Test public void shouldReturnEmptyArrayOfObjectsIfEmptyListPassedForPostProcessorTransform() { - Descriptors.FieldDescriptor repeatedFieldDescriptor = GoLifeBookingLogMessage.getDescriptor().findFieldByName("favourite_service_provider_guids"); + Descriptors.FieldDescriptor repeatedFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("favourite_service_provider_guids"); RepeatedPrimitiveProtoHandler repeatedPrimitiveProtoHandler = new RepeatedPrimitiveProtoHandler(repeatedFieldDescriptor); ArrayList inputValues = new ArrayList<>(); @@ -150,7 +148,7 @@ public void shouldReturnEmptyArrayOfObjectsIfEmptyListPassedForPostProcessorTran @Test public void shouldReturnEmptyArrayOfObjectsIfNullPassedForPostProcessorTransform() { - Descriptors.FieldDescriptor repeatedFieldDescriptor = GoLifeBookingLogMessage.getDescriptor().findFieldByName("favourite_service_provider_guids"); + Descriptors.FieldDescriptor repeatedFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("favourite_service_provider_guids"); RepeatedPrimitiveProtoHandler repeatedPrimitiveProtoHandler = new RepeatedPrimitiveProtoHandler(repeatedFieldDescriptor); List outputValues = (List) repeatedPrimitiveProtoHandler.transformFromPostProcessor(null); @@ -160,7 +158,7 @@ public void shouldReturnEmptyArrayOfObjectsIfNullPassedForPostProcessorTransform @Test public void shouldReturnAllFieldsInAListOfObjectsIfMultipleFieldsPassedWithSameTypeAsFieldDescriptorForPostProcessorTransform() { - Descriptors.FieldDescriptor repeatedFieldDescriptor = GoLifeBookingLogMessage.getDescriptor().findFieldByName("favourite_service_provider_guids"); + Descriptors.FieldDescriptor repeatedFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("meta_array"); RepeatedPrimitiveProtoHandler repeatedPrimitiveProtoHandler = new RepeatedPrimitiveProtoHandler(repeatedFieldDescriptor); ArrayList inputValues = new ArrayList<>(); @@ -178,7 +176,7 @@ public void shouldReturnAllFieldsInAListOfObjectsIfMultipleFieldsPassedWithSameT @Test public void shouldThrowExceptionIfFieldDesciptorTypeNotSupportedForPostProcessorTransform() { - Descriptors.FieldDescriptor repeatedFieldDescriptor = GoLifeBookingLogMessage.getDescriptor().findFieldByName("routes"); + Descriptors.FieldDescriptor repeatedFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("routes"); RepeatedPrimitiveProtoHandler repeatedPrimitiveProtoHandler = new RepeatedPrimitiveProtoHandler(repeatedFieldDescriptor); try { ArrayList inputValues = new ArrayList<>(); @@ -192,7 +190,7 @@ public void shouldThrowExceptionIfFieldDesciptorTypeNotSupportedForPostProcessor @Test public void shouldThrowInvalidDataTypeExceptionInCaseOfTypeMismatchForPostProcessorTransform() { - Descriptors.FieldDescriptor repeatedFloatFieldDescriptor = JaegerResponseLogMessage.getDescriptor().findFieldByName("scores"); + Descriptors.FieldDescriptor repeatedFloatFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("int_array_field"); RepeatedPrimitiveProtoHandler repeatedPrimitiveProtoHandler = new RepeatedPrimitiveProtoHandler(repeatedFloatFieldDescriptor); try { ArrayList inputValues = new ArrayList<>(); @@ -200,22 +198,22 @@ public void shouldThrowInvalidDataTypeExceptionInCaseOfTypeMismatchForPostProces repeatedPrimitiveProtoHandler.transformFromPostProcessor(inputValues); } catch (Exception e) { assertEquals(InvalidDataTypeException.class, e.getClass()); - assertEquals("type mismatch of field: scores, expecting DOUBLE type, actual type class java.lang.String", e.getMessage()); + assertEquals("type mismatch of field: int_array_field, expecting INT32 type, actual type class java.lang.String", e.getMessage()); } } @Test public void shouldReturnAllFieldsInAListOfObjectsIfMultipleFieldsPassedWithSameTypeAsFieldDescriptorForKafkaTransform() throws InvalidProtocolBufferException { - Descriptors.FieldDescriptor repeatedFieldDescriptor = GoLifeBookingLogMessage.getDescriptor().findFieldByName("favourite_service_provider_guids"); + Descriptors.FieldDescriptor repeatedFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("meta_array"); RepeatedPrimitiveProtoHandler repeatedPrimitiveProtoHandler = new RepeatedPrimitiveProtoHandler(repeatedFieldDescriptor); - GoLifeBookingLogMessage goLifeBookingLogMessage = GoLifeBookingLogMessage + TestBookingLogMessage goLifeBookingLogMessage = TestBookingLogMessage .newBuilder() - .addFavouriteServiceProviderGuids("1") - .addFavouriteServiceProviderGuids("2") - .addFavouriteServiceProviderGuids("3") + .addMetaArray("1") + .addMetaArray("2") + .addMetaArray("3") .build(); - DynamicMessage dynamicMessage = DynamicMessage.parseFrom(GoLifeBookingLogMessage.getDescriptor(), goLifeBookingLogMessage.toByteArray()); + DynamicMessage dynamicMessage = DynamicMessage.parseFrom(TestBookingLogMessage.getDescriptor(), goLifeBookingLogMessage.toByteArray()); String[] outputValues = (String[]) repeatedPrimitiveProtoHandler.transformFromKafka(dynamicMessage.getField(repeatedFieldDescriptor)); @@ -225,9 +223,10 @@ public void shouldReturnAllFieldsInAListOfObjectsIfMultipleFieldsPassedWithSameT assertEquals("3", outputValues[2]); } + @Test public void shouldThrowUnsupportedDataTypeExceptionInCaseOfInCaseOfEnumForKafkaTransform() { - Descriptors.FieldDescriptor fieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("status"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("status"); RepeatedPrimitiveProtoHandler repeatedPrimitiveProtoHandler = new RepeatedPrimitiveProtoHandler(fieldDescriptor); try { repeatedPrimitiveProtoHandler.transformFromKafka("CREATED"); @@ -239,7 +238,7 @@ public void shouldThrowUnsupportedDataTypeExceptionInCaseOfInCaseOfEnumForKafkaT @Test public void shouldReturnTypeInformation() { - Descriptors.FieldDescriptor repeatedFieldDescriptor = GoLifeBookingLogMessage.getDescriptor().findFieldByName("favourite_service_provider_guids"); + Descriptors.FieldDescriptor repeatedFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("meta_array"); RepeatedPrimitiveProtoHandler repeatedPrimitiveProtoHandler = new RepeatedPrimitiveProtoHandler(repeatedFieldDescriptor); TypeInformation actualTypeInformation = repeatedPrimitiveProtoHandler.getTypeInformation(); TypeInformation expectedTypeInformation = ObjectArrayTypeInfo.getInfoFor(Types.STRING); @@ -248,7 +247,7 @@ public void shouldReturnTypeInformation() { @Test public void shouldConvertRepeatedRowDataToJsonString() { - Descriptors.FieldDescriptor repeatedFieldDescriptor = GoLifeBookingLogMessage.getDescriptor().findFieldByName("favourite_service_provider_guids"); + Descriptors.FieldDescriptor repeatedFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("meta_array"); ArrayList inputValues = new ArrayList<>(); inputValues.add("test1"); inputValues.add("test2"); diff --git a/dagger-core/src/test/java/io/odpf/dagger/protohandler/RepeatedStructMessageProtoHandlerTest.java b/dagger-core/src/test/java/io/odpf/dagger/protohandler/RepeatedStructMessageProtoHandlerTest.java index 05749c0fa..ed4c04091 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/protohandler/RepeatedStructMessageProtoHandlerTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/protohandler/RepeatedStructMessageProtoHandlerTest.java @@ -1,10 +1,9 @@ package io.odpf.dagger.protohandler; -import com.gojek.esb.booking.GoLifeBookingLogMessage; -import com.gojek.esb.clevertap.ClevertapEventLogMessage; -import com.gojek.esb.consumer.TestNestedRepeatedMessage; import com.google.protobuf.Descriptors; import com.google.protobuf.DynamicMessage; +import io.odpf.dagger.consumer.TestBookingLogMessage; +import io.odpf.dagger.consumer.TestNestedRepeatedMessage; import org.apache.flink.api.common.typeinfo.TypeInformation; import org.apache.flink.api.common.typeinfo.Types; import org.apache.flink.types.Row; @@ -25,14 +24,14 @@ public void shouldReturnTrueForCanHandleForRepeatedRepeatedStructFieldDescriptor @Test public void shouldReturnFalseForCanHandleForStructFieldDescriptor() { - Descriptors.FieldDescriptor fieldDescriptor = ClevertapEventLogMessage.getDescriptor().findFieldByName("profile_data"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("profile_data"); RepeatedStructMessageProtoHandler repeatedStructMessageProtoHandler = new RepeatedStructMessageProtoHandler(fieldDescriptor); assertFalse(repeatedStructMessageProtoHandler.canHandle()); } @Test public void shouldReturnFalseForCanHandleForMessageFieldDescriptor() { - Descriptors.FieldDescriptor fieldDescriptor = GoLifeBookingLogMessage.getDescriptor().findFieldByName("driver_eta_pickup"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("driver_pickup_location"); RepeatedStructMessageProtoHandler repeatedStructMessageProtoHandler = new RepeatedStructMessageProtoHandler(fieldDescriptor); assertFalse(repeatedStructMessageProtoHandler.canHandle()); } diff --git a/dagger-core/src/test/java/io/odpf/dagger/protohandler/RowFactoryTest.java b/dagger-core/src/test/java/io/odpf/dagger/protohandler/RowFactoryTest.java index 9eabf9541..c0aae5460 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/protohandler/RowFactoryTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/protohandler/RowFactoryTest.java @@ -1,16 +1,15 @@ package io.odpf.dagger.protohandler; -import com.gojek.esb.customer.CustomerLogMessage; import com.google.protobuf.Descriptors; import com.google.protobuf.DynamicMessage; import com.google.protobuf.InvalidProtocolBufferException; +import io.odpf.dagger.consumer.TestBookingLogMessage; import org.apache.flink.types.Row; import org.junit.Test; import java.util.HashMap; import java.util.Map; -import static com.gojek.esb.types.GenderTypeProto.GenderType.Enum.MALE; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; @@ -18,12 +17,12 @@ public class RowFactoryTest { @Test public void shouldCreateRowForInputMap() { - Descriptors.Descriptor descriptor = CustomerLogMessage.getDescriptor(); + Descriptors.Descriptor descriptor = TestBookingLogMessage.getDescriptor(); Map inputMap = new HashMap<>(); inputMap.put("customer_id", 144614); inputMap.put("customer_url", "https://www.abcd.com/1234"); inputMap.put("active", "true"); - inputMap.put("sex", MALE); + inputMap.put("sex", "male"); inputMap.put("created_at", "2016-01-18T08:55:26.16Z"); Row row = RowFactory.createRow(inputMap, descriptor); assertNotNull(row); @@ -31,15 +30,15 @@ public void shouldCreateRowForInputMap() { @Test public void shouldReturnARowOfSizeEqualToNoOfFieldsInDescriptorForInputMap() { - Descriptors.Descriptor descriptor = CustomerLogMessage.getDescriptor(); + Descriptors.Descriptor descriptor = TestBookingLogMessage.getDescriptor(); Map inputMap = new HashMap<>(); Row row = RowFactory.createRow(inputMap, descriptor); - assertEquals(29, row.getArity()); + assertEquals(44, row.getArity()); } @Test public void shouldReturnEmptyRowIfNoFieldsPassedForInputMap() { - Descriptors.Descriptor descriptor = CustomerLogMessage.getDescriptor(); + Descriptors.Descriptor descriptor = TestBookingLogMessage.getDescriptor(); Map inputMap = new HashMap<>(); Row row = RowFactory.createRow(inputMap, descriptor); for (int index = 0; index < row.getArity(); index++) { @@ -49,24 +48,22 @@ public void shouldReturnEmptyRowIfNoFieldsPassedForInputMap() { @Test public void shouldCreateRowWithPassedFieldsForInputMap() { - Descriptors.Descriptor descriptor = CustomerLogMessage.getDescriptor(); + Descriptors.Descriptor descriptor = TestBookingLogMessage.getDescriptor(); Map inputMap = new HashMap<>(); - inputMap.put("customer_id", "144614"); + inputMap.put("order_number", "144614"); inputMap.put("customer_url", "https://www.abcd.com/1234"); - inputMap.put("active", true); - inputMap.put("sex", MALE); - inputMap.put("created_at", "2016-01-18T08:55:26.16Z"); + inputMap.put("customer_dynamic_surge_enabled", true); + inputMap.put("event_timestamp", "2016-01-18T08:55:26.16Z"); Row row = RowFactory.createRow(inputMap, descriptor); - assertEquals("144614", row.getField(0)); - assertEquals("https://www.abcd.com/1234", row.getField(1)); - assertEquals(true, row.getField(9)); - assertEquals("MALE", row.getField(11)); - assertEquals("2016-01-18T08:55:26.16Z", row.getField(17)); + assertEquals("144614", row.getField(1)); + assertEquals("https://www.abcd.com/1234", row.getField(6)); + assertEquals(true, row.getField(31)); + assertEquals("2016-01-18T08:55:26.16Z", row.getField(4)); } @Test public void shouldReturnEmptyRowIfNullPassedAsMapForInputMap() { - Descriptors.Descriptor descriptor = CustomerLogMessage.getDescriptor(); + Descriptors.Descriptor descriptor = TestBookingLogMessage.getDescriptor(); Row row = RowFactory.createRow(null, descriptor); for (int index = 0; index < row.getArity(); index++) { assertEquals(null, row.getField(index)); @@ -75,35 +72,31 @@ public void shouldReturnEmptyRowIfNullPassedAsMapForInputMap() { @Test public void shouldCreateRowForDynamicMessage() throws InvalidProtocolBufferException { - CustomerLogMessage customerLogMessage = CustomerLogMessage.newBuilder().build(); - DynamicMessage dynamicMessage = DynamicMessage.parseFrom(CustomerLogMessage.getDescriptor(), customerLogMessage.toByteArray()); + TestBookingLogMessage customerLogMessage = TestBookingLogMessage.newBuilder().build(); + DynamicMessage dynamicMessage = DynamicMessage.parseFrom(TestBookingLogMessage.getDescriptor(), customerLogMessage.toByteArray()); Row row = RowFactory.createRow(dynamicMessage); assertNotNull(row); } @Test public void shouldReturnARowOfSizeEqualToNoOfFieldsInDescriptorForDynamicMessage() throws InvalidProtocolBufferException { - CustomerLogMessage customerLogMessage = CustomerLogMessage.newBuilder().build(); - DynamicMessage dynamicMessage = DynamicMessage.parseFrom(CustomerLogMessage.getDescriptor(), customerLogMessage.toByteArray()); + TestBookingLogMessage customerLogMessage = TestBookingLogMessage.newBuilder().build(); + DynamicMessage dynamicMessage = DynamicMessage.parseFrom(TestBookingLogMessage.getDescriptor(), customerLogMessage.toByteArray()); Row row = RowFactory.createRow(dynamicMessage); - assertEquals(29, row.getArity()); + assertEquals(44, row.getArity()); } @Test public void shouldCreateRowWithPSetFieldsForDynamicMessage() throws InvalidProtocolBufferException { - CustomerLogMessage customerLogMessage = CustomerLogMessage + TestBookingLogMessage customerLogMessage = TestBookingLogMessage .newBuilder() .setCustomerId("144614") .setCustomerUrl("https://www.abcd.com/1234") - .setActive(true) - .setSex(MALE) .build(); - DynamicMessage dynamicMessage = DynamicMessage.parseFrom(CustomerLogMessage.getDescriptor(), customerLogMessage.toByteArray()); + DynamicMessage dynamicMessage = DynamicMessage.parseFrom(TestBookingLogMessage.getDescriptor(), customerLogMessage.toByteArray()); Row row = RowFactory.createRow(dynamicMessage); - assertEquals("144614", row.getField(0)); - assertEquals("https://www.abcd.com/1234", row.getField(1)); - assertEquals(true, row.getField(9)); - assertEquals("MALE", row.getField(11)); + assertEquals("144614", row.getField(5)); + assertEquals("https://www.abcd.com/1234", row.getField(6)); } } diff --git a/dagger-core/src/test/java/io/odpf/dagger/protohandler/StructMessageProtoHandlerTest.java b/dagger-core/src/test/java/io/odpf/dagger/protohandler/StructMessageProtoHandlerTest.java index 8698a172e..16edb57f5 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/protohandler/StructMessageProtoHandlerTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/protohandler/StructMessageProtoHandlerTest.java @@ -1,10 +1,9 @@ package io.odpf.dagger.protohandler; -import com.gojek.esb.booking.GoLifeBookingLogMessage; -import com.gojek.esb.clevertap.ClevertapEventLogMessage; -import com.gojek.esb.consumer.TestRepeatedEnumMessage; import com.google.protobuf.Descriptors; import com.google.protobuf.DynamicMessage; +import io.odpf.dagger.consumer.TestBookingLogMessage; +import io.odpf.dagger.consumer.TestRepeatedEnumMessage; import org.apache.flink.api.common.typeinfo.TypeInformation; import org.apache.flink.api.common.typeinfo.Types; import org.apache.flink.types.Row; @@ -16,7 +15,7 @@ public class StructMessageProtoHandlerTest { @Test public void shouldReturnTrueForCanHandleForStructFieldDescriptor() { - Descriptors.FieldDescriptor fieldDescriptor = ClevertapEventLogMessage.getDescriptor().findFieldByName("profile_data"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("profile_data"); StructMessageProtoHandler structMessageProtoHandler = new StructMessageProtoHandler(fieldDescriptor); assertTrue(structMessageProtoHandler.canHandle()); } @@ -30,14 +29,14 @@ public void shouldReturnFalseForCanHandleForRepeatedStructFieldDescriptor() { @Test public void shouldReturnFalseForCanHandleForMessageFieldDescriptor() { - Descriptors.FieldDescriptor fieldDescriptor = GoLifeBookingLogMessage.getDescriptor().findFieldByName("driver_eta_pickup"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("driver_pickup_location"); StructMessageProtoHandler structMessageProtoHandler = new StructMessageProtoHandler(fieldDescriptor); assertFalse(structMessageProtoHandler.canHandle()); } @Test public void shouldReturnTheSameBuilderWithoutSettingAnyValue() { - Descriptors.FieldDescriptor fieldDescriptor = ClevertapEventLogMessage.getDescriptor().findFieldByName("profile_data"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("profile_data"); StructMessageProtoHandler structMessageProtoHandler = new StructMessageProtoHandler(fieldDescriptor); DynamicMessage.Builder builder = DynamicMessage.newBuilder(fieldDescriptor.getContainingType()); assertEquals(DynamicMessage.getDefaultInstance(fieldDescriptor.getContainingType()).getAllFields().size(), @@ -46,21 +45,21 @@ public void shouldReturnTheSameBuilderWithoutSettingAnyValue() { @Test public void shouldReturnNullForTransformForPostProcessor() { - Descriptors.FieldDescriptor fieldDescriptor = ClevertapEventLogMessage.getDescriptor().findFieldByName("profile_data"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("profile_data"); StructMessageProtoHandler structMessageProtoHandler = new StructMessageProtoHandler(fieldDescriptor); assertNull(structMessageProtoHandler.transformFromPostProcessor("test")); } @Test public void shouldReturnNullForTransformForKafka() { - Descriptors.FieldDescriptor fieldDescriptor = ClevertapEventLogMessage.getDescriptor().findFieldByName("profile_data"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("profile_data"); StructMessageProtoHandler structMessageProtoHandler = new StructMessageProtoHandler(fieldDescriptor); assertNull(structMessageProtoHandler.transformFromKafka("test")); } @Test public void shouldReturnTypeInformation() { - Descriptors.FieldDescriptor fieldDescriptor = ClevertapEventLogMessage.getDescriptor().findFieldByName("profile_data"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("profile_data"); StructMessageProtoHandler structMessageProtoHandler = new StructMessageProtoHandler(fieldDescriptor); TypeInformation actualTypeInformation = structMessageProtoHandler.getTypeInformation(); TypeInformation expectedTypeInformation = Types.ROW_NAMED(new String[]{}); diff --git a/dagger-core/src/test/java/io/odpf/dagger/protohandler/TimestampProtoHandlerTest.java b/dagger-core/src/test/java/io/odpf/dagger/protohandler/TimestampProtoHandlerTest.java index 496a714d5..4cd985227 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/protohandler/TimestampProtoHandlerTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/protohandler/TimestampProtoHandlerTest.java @@ -1,10 +1,10 @@ package io.odpf.dagger.protohandler; +import io.odpf.dagger.consumer.TestBookingLogMessage; import org.apache.flink.api.common.typeinfo.TypeInformation; import org.apache.flink.api.common.typeinfo.Types; import org.apache.flink.types.Row; -import com.gojek.esb.booking.BookingLogMessage; import com.google.protobuf.Descriptors; import com.google.protobuf.DynamicMessage; import com.google.protobuf.InvalidProtocolBufferException; @@ -21,7 +21,7 @@ public class TimestampProtoHandlerTest { @Test public void shouldReturnTrueIfTimestampFieldDescriptorIsPassed() { - Descriptors.FieldDescriptor timestampFieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("event_timestamp"); + Descriptors.FieldDescriptor timestampFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("event_timestamp"); TimestampProtoHandler timestampProtoHandler = new TimestampProtoHandler(timestampFieldDescriptor); assertTrue(timestampProtoHandler.canHandle()); @@ -29,7 +29,7 @@ public void shouldReturnTrueIfTimestampFieldDescriptorIsPassed() { @Test public void shouldReturnFalseIfFieldDescriptorOtherThanTimestampTypeIsPassed() { - Descriptors.FieldDescriptor otherFieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("order_number"); + Descriptors.FieldDescriptor otherFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("order_number"); TimestampProtoHandler timestampProtoHandler = new TimestampProtoHandler(otherFieldDescriptor); assertFalse(timestampProtoHandler.canHandle()); @@ -37,7 +37,7 @@ public void shouldReturnFalseIfFieldDescriptorOtherThanTimestampTypeIsPassed() { @Test public void shouldReturnSameBuilderWithoutSettingFieldIfCannotHandle() { - Descriptors.FieldDescriptor otherFieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("order_number"); + Descriptors.FieldDescriptor otherFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("order_number"); TimestampProtoHandler timestampProtoHandler = new TimestampProtoHandler(otherFieldDescriptor); DynamicMessage.Builder builder = DynamicMessage.newBuilder(otherFieldDescriptor.getContainingType()); @@ -47,20 +47,20 @@ public void shouldReturnSameBuilderWithoutSettingFieldIfCannotHandle() { @Test public void shouldReturnSameBuilderWithoutSettingFieldIfNullFieldIsPassed() throws InvalidProtocolBufferException { - Descriptors.FieldDescriptor timestampFieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("event_timestamp"); + Descriptors.FieldDescriptor timestampFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("event_timestamp"); TimestampProtoHandler timestampProtoHandler = new TimestampProtoHandler(timestampFieldDescriptor); DynamicMessage.Builder builder = DynamicMessage.newBuilder(timestampFieldDescriptor.getContainingType()); DynamicMessage dynamicMessage = timestampProtoHandler.transformForKafka(builder, null).build(); - BookingLogMessage bookingLogMessage = BookingLogMessage.parseFrom(dynamicMessage.toByteArray()); + TestBookingLogMessage bookingLogMessage = TestBookingLogMessage.parseFrom(dynamicMessage.toByteArray()); assertEquals(0L, bookingLogMessage.getEventTimestamp().getSeconds()); assertEquals(0, bookingLogMessage.getEventTimestamp().getNanos()); } @Test public void shouldSetTimestampIfInstanceOfJavaSqlTimestampPassed() throws InvalidProtocolBufferException { - Descriptors.FieldDescriptor timestampFieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("event_timestamp"); + Descriptors.FieldDescriptor timestampFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("event_timestamp"); TimestampProtoHandler timestampProtoHandler = new TimestampProtoHandler(timestampFieldDescriptor); DynamicMessage.Builder builder = DynamicMessage.newBuilder(timestampFieldDescriptor.getContainingType()); @@ -69,14 +69,14 @@ public void shouldSetTimestampIfInstanceOfJavaSqlTimestampPassed() throws Invali Timestamp inputTimestamp = new Timestamp(milliSeconds); DynamicMessage dynamicMessage = timestampProtoHandler.transformForKafka(builder, inputTimestamp).build(); - BookingLogMessage bookingLogMessage = BookingLogMessage.parseFrom(dynamicMessage.toByteArray()); + TestBookingLogMessage bookingLogMessage = TestBookingLogMessage.parseFrom(dynamicMessage.toByteArray()); assertEquals(milliSeconds / 1000, bookingLogMessage.getEventTimestamp().getSeconds()); assertEquals(inputTimestamp.getNanos(), bookingLogMessage.getEventTimestamp().getNanos()); } @Test public void shouldSetTimestampIfRowHavingTimestampIsPassed() throws InvalidProtocolBufferException { - Descriptors.FieldDescriptor timestampFieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("event_timestamp"); + Descriptors.FieldDescriptor timestampFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("event_timestamp"); TimestampProtoHandler timestampProtoHandler = new TimestampProtoHandler(timestampFieldDescriptor); DynamicMessage.Builder builder = DynamicMessage.newBuilder(timestampFieldDescriptor.getContainingType()); @@ -89,14 +89,14 @@ public void shouldSetTimestampIfRowHavingTimestampIsPassed() throws InvalidProto DynamicMessage dynamicMessage = timestampProtoHandler.transformForKafka(builder, inputRow).build(); - BookingLogMessage bookingLogMessage = BookingLogMessage.parseFrom(dynamicMessage.toByteArray()); + TestBookingLogMessage bookingLogMessage = TestBookingLogMessage.parseFrom(dynamicMessage.toByteArray()); assertEquals(seconds, bookingLogMessage.getEventTimestamp().getSeconds()); assertEquals(nanos, bookingLogMessage.getEventTimestamp().getNanos()); } @Test public void shouldThrowExceptionIfRowOfArityOtherThanTwoIsPassed() { - Descriptors.FieldDescriptor timestampFieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("event_timestamp"); + Descriptors.FieldDescriptor timestampFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("event_timestamp"); TimestampProtoHandler timestampProtoHandler = new TimestampProtoHandler(timestampFieldDescriptor); DynamicMessage.Builder builder = DynamicMessage.newBuilder(timestampFieldDescriptor.getContainingType()); @@ -112,7 +112,7 @@ public void shouldThrowExceptionIfRowOfArityOtherThanTwoIsPassed() { @Test public void shouldSetTimestampIfInstanceOfNumberPassed() throws InvalidProtocolBufferException { - Descriptors.FieldDescriptor timestampFieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("event_timestamp"); + Descriptors.FieldDescriptor timestampFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("event_timestamp"); TimestampProtoHandler timestampProtoHandler = new TimestampProtoHandler(timestampFieldDescriptor); DynamicMessage.Builder builder = DynamicMessage.newBuilder(timestampFieldDescriptor.getContainingType()); @@ -120,14 +120,14 @@ public void shouldSetTimestampIfInstanceOfNumberPassed() throws InvalidProtocolB DynamicMessage dynamicMessage = timestampProtoHandler.transformForKafka(builder, seconds).build(); - BookingLogMessage bookingLogMessage = BookingLogMessage.parseFrom(dynamicMessage.toByteArray()); + TestBookingLogMessage bookingLogMessage = TestBookingLogMessage.parseFrom(dynamicMessage.toByteArray()); assertEquals(seconds, bookingLogMessage.getEventTimestamp().getSeconds()); assertEquals(0, bookingLogMessage.getEventTimestamp().getNanos()); } @Test public void shouldSetTimestampIfInstanceOfStringPassed() throws InvalidProtocolBufferException { - Descriptors.FieldDescriptor timestampFieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("event_timestamp"); + Descriptors.FieldDescriptor timestampFieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("event_timestamp"); TimestampProtoHandler timestampProtoHandler = new TimestampProtoHandler(timestampFieldDescriptor); DynamicMessage.Builder builder = DynamicMessage.newBuilder(timestampFieldDescriptor.getContainingType()); @@ -135,7 +135,7 @@ public void shouldSetTimestampIfInstanceOfStringPassed() throws InvalidProtocolB DynamicMessage dynamicMessage = timestampProtoHandler.transformForKafka(builder, inputTimestamp).build(); - BookingLogMessage bookingLogMessage = BookingLogMessage.parseFrom(dynamicMessage.toByteArray()); + TestBookingLogMessage bookingLogMessage = TestBookingLogMessage.parseFrom(dynamicMessage.toByteArray()); assertEquals(1553752213, bookingLogMessage.getEventTimestamp().getSeconds()); assertEquals(0, bookingLogMessage.getEventTimestamp().getNanos()); } @@ -144,7 +144,7 @@ public void shouldSetTimestampIfInstanceOfStringPassed() throws InvalidProtocolB public void shouldFetchTimeStampAsStringFromFieldForFieldDescriptorOfTypeTimeStampForTransformForPostProcessor() { String actualValue = "2018-08-30T02:21:39.975107Z"; - Descriptors.Descriptor descriptor = BookingLogMessage.getDescriptor(); + Descriptors.Descriptor descriptor = TestBookingLogMessage.getDescriptor(); Descriptors.FieldDescriptor fieldDescriptor = descriptor.findFieldByName("booking_creation_time"); ProtoHandler protoHandler = ProtoHandlerFactory.getProtoHandler(fieldDescriptor); @@ -155,7 +155,7 @@ public void shouldFetchTimeStampAsStringFromFieldForFieldDescriptorOfTypeTimeSta @Test public void shouldReturnNullWhenTimeStampNotAvailableAndFieldDescriptorOfTypeTimeStampForTransformForPostProcessor() { - Descriptors.Descriptor descriptor = BookingLogMessage.getDescriptor(); + Descriptors.Descriptor descriptor = TestBookingLogMessage.getDescriptor(); Descriptors.FieldDescriptor fieldDescriptor = descriptor.findFieldByName("booking_creation_time"); ProtoHandler protoHandler = ProtoHandlerFactory.getProtoHandler(fieldDescriptor); @@ -166,7 +166,7 @@ public void shouldReturnNullWhenTimeStampNotAvailableAndFieldDescriptorOfTypeTim @Test public void shouldHandleTimestampMessagesByReturningNullForNonParseableTimeStampsForTransformForPostProcessor() { - Descriptors.Descriptor descriptor = BookingLogMessage.getDescriptor(); + Descriptors.Descriptor descriptor = TestBookingLogMessage.getDescriptor(); Descriptors.FieldDescriptor fieldDescriptor = descriptor.findFieldByName("event_timestamp"); ProtoHandler protoHandler = ProtoHandlerFactory.getProtoHandler(fieldDescriptor); @@ -178,7 +178,7 @@ public void shouldHandleTimestampMessagesByReturningNullForNonParseableTimeStamp @Test public void shouldReturnTypeInformation() { - Descriptors.Descriptor descriptor = BookingLogMessage.getDescriptor(); + Descriptors.Descriptor descriptor = TestBookingLogMessage.getDescriptor(); Descriptors.FieldDescriptor fieldDescriptor = descriptor.findFieldByName("event_timestamp"); TimestampProtoHandler timestampProtoHandler = new TimestampProtoHandler(fieldDescriptor); TypeInformation actualTypeInformation = timestampProtoHandler.getTypeInformation(); @@ -188,13 +188,13 @@ public void shouldReturnTypeInformation() { @Test public void shouldTransformTimestampForDynamicMessageForKafka() throws InvalidProtocolBufferException { - Descriptors.Descriptor descriptor = BookingLogMessage.getDescriptor(); + Descriptors.Descriptor descriptor = TestBookingLogMessage.getDescriptor(); Descriptors.FieldDescriptor fieldDescriptor = descriptor.findFieldByName("event_timestamp"); - BookingLogMessage bookingLogMessage = BookingLogMessage + TestBookingLogMessage bookingLogMessage = TestBookingLogMessage .newBuilder() .setEventTimestamp(com.google.protobuf.Timestamp.newBuilder().setSeconds(10L).setNanos(10).build()) .build(); - DynamicMessage dynamicMessage = DynamicMessage.parseFrom(BookingLogMessage.getDescriptor(), bookingLogMessage.toByteArray()); + DynamicMessage dynamicMessage = DynamicMessage.parseFrom(TestBookingLogMessage.getDescriptor(), bookingLogMessage.toByteArray()); TimestampProtoHandler timestampProtoHandler = new TimestampProtoHandler(fieldDescriptor); Row row = (Row) timestampProtoHandler.transformFromKafka(dynamicMessage.getField(fieldDescriptor)); assertEquals(2, row.getArity()); @@ -204,12 +204,12 @@ public void shouldTransformTimestampForDynamicMessageForKafka() throws InvalidPr @Test public void shouldSetDefaultValueForDynamicMessageForKafkaIfValuesNotSet() throws InvalidProtocolBufferException { - Descriptors.Descriptor descriptor = BookingLogMessage.getDescriptor(); + Descriptors.Descriptor descriptor = TestBookingLogMessage.getDescriptor(); Descriptors.FieldDescriptor fieldDescriptor = descriptor.findFieldByName("event_timestamp"); - BookingLogMessage bookingLogMessage = BookingLogMessage + TestBookingLogMessage bookingLogMessage = TestBookingLogMessage .newBuilder() .build(); - DynamicMessage dynamicMessage = DynamicMessage.parseFrom(BookingLogMessage.getDescriptor(), bookingLogMessage.toByteArray()); + DynamicMessage dynamicMessage = DynamicMessage.parseFrom(TestBookingLogMessage.getDescriptor(), bookingLogMessage.toByteArray()); TimestampProtoHandler timestampProtoHandler = new TimestampProtoHandler(fieldDescriptor); Row row = (Row) timestampProtoHandler.transformFromKafka(dynamicMessage.getField(fieldDescriptor)); assertEquals(2, row.getArity()); @@ -219,7 +219,7 @@ public void shouldSetDefaultValueForDynamicMessageForKafkaIfValuesNotSet() throw @Test public void shouldConvertTimestampToJsonString() { - Descriptors.Descriptor descriptor = BookingLogMessage.getDescriptor(); + Descriptors.Descriptor descriptor = TestBookingLogMessage.getDescriptor(); Descriptors.FieldDescriptor fieldDescriptor = descriptor.findFieldByName("event_timestamp"); Row inputRow = new Row(2); diff --git a/dagger-core/src/test/java/io/odpf/dagger/protohandler/TypeInformationFactoryTest.java b/dagger-core/src/test/java/io/odpf/dagger/protohandler/TypeInformationFactoryTest.java index 491235e22..4c03f1f37 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/protohandler/TypeInformationFactoryTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/protohandler/TypeInformationFactoryTest.java @@ -1,13 +1,11 @@ package io.odpf.dagger.protohandler; +import io.odpf.dagger.consumer.TestBookingLogKey; import io.odpf.dagger.exception.DescriptorNotFoundException; -import com.gojek.esb.participant.ParticipantLogKey; import com.google.protobuf.Descriptors; import org.apache.flink.api.common.typeinfo.TypeInformation; -import org.apache.flink.api.common.typeinfo.Types; import org.apache.flink.types.Row; -import io.odpf.dagger.protohandler.TypeInformationFactory; import org.junit.Test; import static org.apache.flink.api.common.typeinfo.Types.*; @@ -17,11 +15,10 @@ public class TypeInformationFactoryTest { @Test public void shouldReturnTypeInformationForDescriptor() { - Descriptors.Descriptor descriptor = ParticipantLogKey.getDescriptor(); + Descriptors.Descriptor descriptor = TestBookingLogKey.getDescriptor(); TypeInformation actualTypeInformation = TypeInformationFactory.getRowType(descriptor); - TypeInformation expectedTypeInformation = Types.ROW_NAMED(new String[]{"order_id", "status", "event_timestamp", - "bid_id", "service_type", "participant_id", "audit"}, STRING, STRING, ROW_NAMED(new String[]{"seconds", "nanos"}, - LONG, INT), STRING, STRING, STRING, ROW_NAMED(new String[]{"request_id", "timestamp"}, STRING, ROW_NAMED(new String[]{"seconds", "nanos"}, LONG, INT))); + TypeInformation expectedTypeInformation = ROW_NAMED(new String[]{"service_type", "order_number", "order_url", + "status", "event_timestamp"}, STRING, STRING, STRING, STRING, ROW_NAMED(new String[]{"seconds", "nanos"}, LONG, INT)); assertEquals(expectedTypeInformation, actualTypeInformation); } diff --git a/dagger-core/src/test/java/io/odpf/dagger/protohandler/typehandler/BooleanPrimitiveTypeHandlerTest.java b/dagger-core/src/test/java/io/odpf/dagger/protohandler/typehandler/BooleanPrimitiveTypeHandlerTest.java index 2dd200573..cef3fbac0 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/protohandler/typehandler/BooleanPrimitiveTypeHandlerTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/protohandler/typehandler/BooleanPrimitiveTypeHandlerTest.java @@ -1,8 +1,7 @@ package io.odpf.dagger.protohandler.typehandler; -import com.gojek.esb.booking.BookingLogMessage; -import com.gojek.esb.types.GoFoodShoppingItemProto; import com.google.protobuf.Descriptors; +import io.odpf.dagger.consumer.TestBookingLogMessage; import org.apache.flink.api.common.typeinfo.Types; import org.junit.Test; @@ -15,14 +14,14 @@ public class BooleanPrimitiveTypeHandlerTest { @Test public void shouldHandleBooleanTypes() { - Descriptors.FieldDescriptor fieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("is_reblast"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("customer_dynamic_surge_enabled"); BooleanPrimitiveTypeHandler booleanPrimitiveTypeHandler = new BooleanPrimitiveTypeHandler(fieldDescriptor); assertTrue(booleanPrimitiveTypeHandler.canHandle()); } @Test public void shouldNotHandleTypesOtherThanBoolean() { - Descriptors.FieldDescriptor fieldDescriptor = GoFoodShoppingItemProto.GoFoodShoppingItem.getDescriptor().findFieldByName("quantity"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("order_number"); BooleanPrimitiveTypeHandler booleanPrimitiveTypeHandler = new BooleanPrimitiveTypeHandler(fieldDescriptor); assertFalse(booleanPrimitiveTypeHandler.canHandle()); } @@ -31,8 +30,7 @@ public void shouldNotHandleTypesOtherThanBoolean() { public void shouldFetchValueForFieldForFieldDescriptorOfTypeBool() { boolean actualValue = true; - Descriptors.Descriptor descriptor = BookingLogMessage.getDescriptor(); - Descriptors.FieldDescriptor fieldDescriptor = descriptor.findFieldByName("is_reblast"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("customer_dynamic_surge_enabled"); BooleanPrimitiveTypeHandler booleanPrimitiveTypeHandler = new BooleanPrimitiveTypeHandler(fieldDescriptor); Object value = booleanPrimitiveTypeHandler.getValue(actualValue); @@ -43,8 +41,7 @@ public void shouldFetchValueForFieldForFieldDescriptorOfTypeBool() { public void shouldFetchParsedValueForFieldForFieldDescriptorOfTypeBool() { boolean actualValue = true; - Descriptors.Descriptor descriptor = BookingLogMessage.getDescriptor(); - Descriptors.FieldDescriptor fieldDescriptor = descriptor.findFieldByName("is_reblast"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("customer_dynamic_surge_enabled"); BooleanPrimitiveTypeHandler booleanPrimitiveTypeHandler = new BooleanPrimitiveTypeHandler(fieldDescriptor); Object value = booleanPrimitiveTypeHandler.getValue(String.valueOf(actualValue)); @@ -54,8 +51,7 @@ public void shouldFetchParsedValueForFieldForFieldDescriptorOfTypeBool() { @Test public void shouldFetchDefaultValueIfValueNotPresentForFieldDescriptorOfTypeBool() { - Descriptors.Descriptor descriptor = BookingLogMessage.getDescriptor(); - Descriptors.FieldDescriptor fieldDescriptor = descriptor.findFieldByName("is_reblast"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("customer_dynamic_surge_enabled"); BooleanPrimitiveTypeHandler booleanPrimitiveTypeHandler = new BooleanPrimitiveTypeHandler(fieldDescriptor); Object value = booleanPrimitiveTypeHandler.getValue(null); @@ -65,8 +61,7 @@ public void shouldFetchDefaultValueIfValueNotPresentForFieldDescriptorOfTypeBool @Test public void shouldReturnTypeInformation() { - Descriptors.Descriptor descriptor = BookingLogMessage.getDescriptor(); - Descriptors.FieldDescriptor fieldDescriptor = descriptor.findFieldByName("is_reblast"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("customer_dynamic_surge_enabled"); BooleanPrimitiveTypeHandler booleanPrimitiveTypeHandler = new BooleanPrimitiveTypeHandler(fieldDescriptor); assertEquals(Types.BOOLEAN, booleanPrimitiveTypeHandler.getTypeInformation()); @@ -74,17 +69,14 @@ public void shouldReturnTypeInformation() { @Test public void shouldReturnArrayTypeInformation() { - Descriptors.Descriptor descriptor = BookingLogMessage.getDescriptor(); - Descriptors.FieldDescriptor fieldDescriptor = descriptor.findFieldByName("is_reblast"); - + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("customer_dynamic_surge_enabled"); BooleanPrimitiveTypeHandler booleanPrimitiveTypeHandler = new BooleanPrimitiveTypeHandler(fieldDescriptor); assertEquals(Types.PRIMITIVE_ARRAY(Types.BOOLEAN), booleanPrimitiveTypeHandler.getArrayType()); } @Test public void shouldReturnArrayValues() { - Descriptors.Descriptor descriptor = BookingLogMessage.getDescriptor(); - Descriptors.FieldDescriptor fieldDescriptor = descriptor.findFieldByName("is_reblast"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("customer_dynamic_surge_enabled"); BooleanPrimitiveTypeHandler booleanPrimitiveTypeHandler = new BooleanPrimitiveTypeHandler(fieldDescriptor); ArrayList inputValues = new ArrayList<>(Arrays.asList(true, false, false)); @@ -94,8 +86,7 @@ public void shouldReturnArrayValues() { @Test public void shouldReturnEmptyArrayOnNull() { - Descriptors.Descriptor descriptor = BookingLogMessage.getDescriptor(); - Descriptors.FieldDescriptor fieldDescriptor = descriptor.findFieldByName("is_reblast"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("customer_dynamic_surge_enabled"); BooleanPrimitiveTypeHandler booleanPrimitiveTypeHandler = new BooleanPrimitiveTypeHandler(fieldDescriptor); Object actualValues = booleanPrimitiveTypeHandler.getArray(null); diff --git a/dagger-core/src/test/java/io/odpf/dagger/protohandler/typehandler/ByteStringPrimitiveTypeHandlerTest.java b/dagger-core/src/test/java/io/odpf/dagger/protohandler/typehandler/ByteStringPrimitiveTypeHandlerTest.java index 5e20c28f9..50b6f57a8 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/protohandler/typehandler/ByteStringPrimitiveTypeHandlerTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/protohandler/typehandler/ByteStringPrimitiveTypeHandlerTest.java @@ -2,6 +2,8 @@ import com.google.protobuf.ByteString; import com.google.protobuf.Descriptors; +import io.odpf.dagger.consumer.TestBookingLogKey; +import io.odpf.dagger.consumer.TestMessageEnvelope; import org.apache.flink.api.common.typeinfo.TypeInformation; import org.apache.flink.api.common.typeinfo.Types; import org.junit.Test; @@ -9,20 +11,19 @@ import java.util.ArrayList; import java.util.Arrays; -import static com.gojek.esb.ESBLog.ESBLogMessageEnvelope; import static org.junit.Assert.*; public class ByteStringPrimitiveTypeHandlerTest { @Test public void shouldHandleByteStringTypes() { - Descriptors.FieldDescriptor fieldDescriptor = ESBLogMessageEnvelope.getDescriptor().findFieldByName("log_key"); + Descriptors.FieldDescriptor fieldDescriptor = TestMessageEnvelope.getDescriptor().findFieldByName("log_key"); ByteStringPrimitiveTypeHandler byteStringPrimitiveTypeHandler = new ByteStringPrimitiveTypeHandler(fieldDescriptor); assertTrue(byteStringPrimitiveTypeHandler.canHandle()); } @Test public void shouldNotHandleTypesOtherThanByteString() { - Descriptors.FieldDescriptor fieldDescriptor = ESBLogMessageEnvelope.getDescriptor().findFieldByName("topic"); + Descriptors.FieldDescriptor fieldDescriptor = TestMessageEnvelope.getDescriptor().findFieldByName("topic"); ByteStringPrimitiveTypeHandler byteStringPrimitiveTypeHandler = new ByteStringPrimitiveTypeHandler(fieldDescriptor); assertFalse(byteStringPrimitiveTypeHandler.canHandle()); } @@ -31,7 +32,7 @@ public void shouldNotHandleTypesOtherThanByteString() { public void shouldFetchValueForFieldForFieldDescriptorOfTypeByteString() { ByteString actualValue = ByteString.copyFromUtf8("test"); - Descriptors.FieldDescriptor fieldDescriptor = ESBLogMessageEnvelope.getDescriptor().findFieldByName("log_key"); + Descriptors.FieldDescriptor fieldDescriptor = TestMessageEnvelope.getDescriptor().findFieldByName("log_key"); ByteStringPrimitiveTypeHandler byteStringPrimitiveTypeHandler = new ByteStringPrimitiveTypeHandler(fieldDescriptor); Object value = byteStringPrimitiveTypeHandler.getValue(actualValue); @@ -40,21 +41,21 @@ public void shouldFetchValueForFieldForFieldDescriptorOfTypeByteString() { @Test public void shouldReturnTypeInformation() { - Descriptors.FieldDescriptor fieldDescriptor = ESBLogMessageEnvelope.getDescriptor().findFieldByName("log_key"); + Descriptors.FieldDescriptor fieldDescriptor = TestMessageEnvelope.getDescriptor().findFieldByName("log_key"); ByteStringPrimitiveTypeHandler byteStringPrimitiveTypeHandler = new ByteStringPrimitiveTypeHandler(fieldDescriptor); assertEquals(TypeInformation.of(ByteString.class), byteStringPrimitiveTypeHandler.getTypeInformation()); } @Test public void shouldReturnArrayTypeInformation() { - Descriptors.FieldDescriptor fieldDescriptor = ESBLogMessageEnvelope.getDescriptor().findFieldByName("log_key"); + Descriptors.FieldDescriptor fieldDescriptor = TestMessageEnvelope.getDescriptor().findFieldByName("log_key"); ByteStringPrimitiveTypeHandler byteStringPrimitiveTypeHandler = new ByteStringPrimitiveTypeHandler(fieldDescriptor); assertEquals(Types.OBJECT_ARRAY(TypeInformation.of(ByteString.class)), byteStringPrimitiveTypeHandler.getArrayType()); } @Test public void shouldReturnArrayValues() { - Descriptors.FieldDescriptor fieldDescriptor = ESBLogMessageEnvelope.getDescriptor().findFieldByName("log_key"); + Descriptors.FieldDescriptor fieldDescriptor = TestMessageEnvelope.getDescriptor().findFieldByName("log_key"); ByteStringPrimitiveTypeHandler byteStringPrimitiveTypeHandler = new ByteStringPrimitiveTypeHandler(fieldDescriptor); ArrayList inputValues = new ArrayList<>(Arrays.asList(ByteString.copyFromUtf8("test1"), ByteString.copyFromUtf8("test2"))); Object actualValues = byteStringPrimitiveTypeHandler.getArray(inputValues); @@ -63,7 +64,7 @@ public void shouldReturnArrayValues() { @Test public void shouldReturnEmptyArrayOnNull() { - Descriptors.FieldDescriptor fieldDescriptor = ESBLogMessageEnvelope.getDescriptor().findFieldByName("log_key"); + Descriptors.FieldDescriptor fieldDescriptor = TestMessageEnvelope.getDescriptor().findFieldByName("log_key"); ByteStringPrimitiveTypeHandler byteStringPrimitiveTypeHandler = new ByteStringPrimitiveTypeHandler(fieldDescriptor); Object actualValues = byteStringPrimitiveTypeHandler.getArray(null); assertEquals(0, ((ByteString[]) actualValues).length); diff --git a/dagger-core/src/test/java/io/odpf/dagger/protohandler/typehandler/DoublePrimitiveTypeHandlerTest.java b/dagger-core/src/test/java/io/odpf/dagger/protohandler/typehandler/DoublePrimitiveTypeHandlerTest.java index 13de13ee0..5789ca280 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/protohandler/typehandler/DoublePrimitiveTypeHandlerTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/protohandler/typehandler/DoublePrimitiveTypeHandlerTest.java @@ -1,7 +1,7 @@ package io.odpf.dagger.protohandler.typehandler; -import com.gojek.esb.types.GoFoodShoppingItemProto; import com.google.protobuf.Descriptors; +import io.odpf.dagger.consumer.TestBookingLogMessage; import org.apache.flink.api.common.typeinfo.Types; import org.junit.Test; @@ -14,14 +14,14 @@ public class DoublePrimitiveTypeHandlerTest { @Test public void shouldHandleDoubleTypes() { - Descriptors.FieldDescriptor fieldDescriptor = GoFoodShoppingItemProto.GoFoodShoppingItem.getDescriptor().findFieldByName("price"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("cash_amount"); DoublePrimitiveTypeHandler doublePrimitiveTypeHandler = new DoublePrimitiveTypeHandler(fieldDescriptor); assertTrue(doublePrimitiveTypeHandler.canHandle()); } @Test public void shouldNotHandleTypesOtherThanDouble() { - Descriptors.FieldDescriptor fieldDescriptor = GoFoodShoppingItemProto.GoFoodShoppingItem.getDescriptor().findFieldByName("quantity"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("order_number"); DoublePrimitiveTypeHandler doublePrimitiveTypeHandler = new DoublePrimitiveTypeHandler(fieldDescriptor); assertFalse(doublePrimitiveTypeHandler.canHandle()); } @@ -30,7 +30,7 @@ public void shouldNotHandleTypesOtherThanDouble() { public void shouldFetchValueForFieldForFieldDescriptorOfTypeDouble() { double actualValue = 2.0D; - Descriptors.FieldDescriptor fieldDescriptor = GoFoodShoppingItemProto.GoFoodShoppingItem.getDescriptor().findFieldByName("price"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("cash_amount"); DoublePrimitiveTypeHandler doublePrimitiveTypeHandler = new DoublePrimitiveTypeHandler(fieldDescriptor); Object value = doublePrimitiveTypeHandler.getValue(actualValue); @@ -41,7 +41,7 @@ public void shouldFetchValueForFieldForFieldDescriptorOfTypeDouble() { public void shouldFetchParsedValueForFieldForFieldDescriptorOfTypeDouble() { double actualValue = 2.0D; - Descriptors.FieldDescriptor fieldDescriptor = GoFoodShoppingItemProto.GoFoodShoppingItem.getDescriptor().findFieldByName("price"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("cash_amount"); DoublePrimitiveTypeHandler doublePrimitiveTypeHandler = new DoublePrimitiveTypeHandler(fieldDescriptor); Object value = doublePrimitiveTypeHandler.getValue(String.valueOf(actualValue)); @@ -50,7 +50,7 @@ public void shouldFetchParsedValueForFieldForFieldDescriptorOfTypeDouble() { @Test public void shouldFetchDefaultValueIfValueNotPresentForFieldDescriptorOfTypeDouble() { - Descriptors.FieldDescriptor fieldDescriptor = GoFoodShoppingItemProto.GoFoodShoppingItem.getDescriptor().findFieldByName("price"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("cash_amount"); DoublePrimitiveTypeHandler doublePrimitiveTypeHandler = new DoublePrimitiveTypeHandler(fieldDescriptor); Object value = doublePrimitiveTypeHandler.getValue(null); @@ -59,21 +59,21 @@ public void shouldFetchDefaultValueIfValueNotPresentForFieldDescriptorOfTypeDoub @Test public void shouldReturnTypeInformation() { - Descriptors.FieldDescriptor fieldDescriptor = GoFoodShoppingItemProto.GoFoodShoppingItem.getDescriptor().findFieldByName("price"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("cash_amount"); DoublePrimitiveTypeHandler doublePrimitiveTypeHandler = new DoublePrimitiveTypeHandler(fieldDescriptor); assertEquals(Types.DOUBLE, doublePrimitiveTypeHandler.getTypeInformation()); } @Test public void shouldReturnArrayTypeInformation() { - Descriptors.FieldDescriptor fieldDescriptor = GoFoodShoppingItemProto.GoFoodShoppingItem.getDescriptor().findFieldByName("price"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("cash_amount"); DoublePrimitiveTypeHandler doublePrimitiveTypeHandler = new DoublePrimitiveTypeHandler(fieldDescriptor); assertEquals(Types.PRIMITIVE_ARRAY(Types.DOUBLE), doublePrimitiveTypeHandler.getArrayType()); } @Test public void shouldReturnArrayValues() { - Descriptors.FieldDescriptor fieldDescriptor = GoFoodShoppingItemProto.GoFoodShoppingItem.getDescriptor().findFieldByName("price"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("cash_amount"); DoublePrimitiveTypeHandler doublePrimitiveTypeHandler = new DoublePrimitiveTypeHandler(fieldDescriptor); ArrayList inputValues = new ArrayList<>(Arrays.asList(1D, 2D, 3D)); Object actualValues = doublePrimitiveTypeHandler.getArray(inputValues); @@ -82,7 +82,7 @@ public void shouldReturnArrayValues() { @Test public void shouldReturnEmptyArrayOnNull() { - Descriptors.FieldDescriptor fieldDescriptor = GoFoodShoppingItemProto.GoFoodShoppingItem.getDescriptor().findFieldByName("price"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("cash_amount"); DoublePrimitiveTypeHandler doublePrimitiveTypeHandler = new DoublePrimitiveTypeHandler(fieldDescriptor); Object actualValues = doublePrimitiveTypeHandler.getArray(null); assertEquals(0, ((Double[]) actualValues).length); diff --git a/dagger-core/src/test/java/io/odpf/dagger/protohandler/typehandler/FloatPrimitiveTypeHandlerTest.java b/dagger-core/src/test/java/io/odpf/dagger/protohandler/typehandler/FloatPrimitiveTypeHandlerTest.java index 2afce50e5..e0b6f1100 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/protohandler/typehandler/FloatPrimitiveTypeHandlerTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/protohandler/typehandler/FloatPrimitiveTypeHandlerTest.java @@ -1,7 +1,7 @@ package io.odpf.dagger.protohandler.typehandler; -import com.gojek.esb.booking.BookingLogMessage; import com.google.protobuf.Descriptors; +import io.odpf.dagger.consumer.TestBookingLogMessage; import org.apache.flink.api.common.typeinfo.Types; import org.junit.Test; @@ -13,14 +13,14 @@ public class FloatPrimitiveTypeHandlerTest { @Test public void shouldHandleFloatTypes() { - Descriptors.FieldDescriptor fieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("total_unsubsidised_price"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("amount_paid_by_cash"); FloatPrimitiveTypeHandler floatPrimitiveTypeHandler = new FloatPrimitiveTypeHandler(fieldDescriptor); assertTrue(floatPrimitiveTypeHandler.canHandle()); } @Test public void shouldNotHandleTypesOtherThanFloat() { - Descriptors.FieldDescriptor fieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("order_number"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("order_number"); FloatPrimitiveTypeHandler floatPrimitiveTypeHandler = new FloatPrimitiveTypeHandler(fieldDescriptor); assertFalse(floatPrimitiveTypeHandler.canHandle()); } @@ -29,7 +29,7 @@ public void shouldNotHandleTypesOtherThanFloat() { public void shouldFetchValueForFieldForFieldDescriptorOfTypeFloat() { float actualValue = 5.1f; - Descriptors.FieldDescriptor fieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("total_unsubsidised_price"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("amount_paid_by_cash"); FloatPrimitiveTypeHandler floatPrimitiveTypeHandler = new FloatPrimitiveTypeHandler(fieldDescriptor); Object value = floatPrimitiveTypeHandler.getValue(actualValue); @@ -40,7 +40,7 @@ public void shouldFetchValueForFieldForFieldDescriptorOfTypeFloat() { public void shouldFetchParsedValueForFieldForFieldDescriptorOfTypeFloat() { float actualValue = 5.1f; - Descriptors.FieldDescriptor fieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("total_unsubsidised_price"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("amount_paid_by_cash"); FloatPrimitiveTypeHandler floatPrimitiveTypeHandler = new FloatPrimitiveTypeHandler(fieldDescriptor); Object value = floatPrimitiveTypeHandler.getValue(String.valueOf(actualValue)); @@ -49,7 +49,7 @@ public void shouldFetchParsedValueForFieldForFieldDescriptorOfTypeFloat() { @Test public void shouldFetchDefaultValueIfValueNotPresentForFieldDescriptorOfTypeFloat() { - Descriptors.FieldDescriptor fieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("total_unsubsidised_price"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("amount_paid_by_cash"); FloatPrimitiveTypeHandler floatPrimitiveTypeHandler = new FloatPrimitiveTypeHandler(fieldDescriptor); Object value = floatPrimitiveTypeHandler.getValue(null); @@ -58,21 +58,21 @@ public void shouldFetchDefaultValueIfValueNotPresentForFieldDescriptorOfTypeFloa @Test public void shouldReturnTypeInformation() { - Descriptors.FieldDescriptor fieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("total_unsubsidised_price"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("amount_paid_by_cash"); FloatPrimitiveTypeHandler floatPrimitiveTypeHandler = new FloatPrimitiveTypeHandler(fieldDescriptor); assertEquals(Types.FLOAT, floatPrimitiveTypeHandler.getTypeInformation()); } @Test public void shouldReturnArrayTypeInformation() { - Descriptors.FieldDescriptor fieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("total_unsubsidised_price"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("amount_paid_by_cash"); FloatPrimitiveTypeHandler floatPrimitiveTypeHandler = new FloatPrimitiveTypeHandler(fieldDescriptor); assertEquals(Types.PRIMITIVE_ARRAY(Types.FLOAT), floatPrimitiveTypeHandler.getArrayType()); } @Test public void shouldReturnArrayValues() { - Descriptors.FieldDescriptor fieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("total_unsubsidised_price"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("amount_paid_by_cash"); FloatPrimitiveTypeHandler floatPrimitiveTypeHandler = new FloatPrimitiveTypeHandler(fieldDescriptor); ArrayList inputValues = new ArrayList<>(Arrays.asList(1F, 2F, 3F)); Object actualValues = floatPrimitiveTypeHandler.getArray(inputValues); @@ -81,7 +81,7 @@ public void shouldReturnArrayValues() { @Test public void shouldReturnEmptyArrayOnNull() { - Descriptors.FieldDescriptor fieldDescriptor = BookingLogMessage.getDescriptor().findFieldByName("total_unsubsidised_price"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("amount_paid_by_cash"); FloatPrimitiveTypeHandler floatPrimitiveTypeHandler = new FloatPrimitiveTypeHandler(fieldDescriptor); Object actualValues = floatPrimitiveTypeHandler.getArray(null); assertEquals(0, ((Float[]) actualValues).length); diff --git a/dagger-core/src/test/java/io/odpf/dagger/protohandler/typehandler/IntegerPrimitiveTypeHandlerTest.java b/dagger-core/src/test/java/io/odpf/dagger/protohandler/typehandler/IntegerPrimitiveTypeHandlerTest.java index 41c0a2793..ef22bcd8f 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/protohandler/typehandler/IntegerPrimitiveTypeHandlerTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/protohandler/typehandler/IntegerPrimitiveTypeHandlerTest.java @@ -1,7 +1,7 @@ package io.odpf.dagger.protohandler.typehandler; -import com.gojek.esb.types.GoFoodShoppingItemProto; import com.google.protobuf.Descriptors; +import io.odpf.dagger.consumer.TestBookingLogMessage; import org.apache.flink.api.common.typeinfo.Types; import org.junit.Test; @@ -14,14 +14,14 @@ public class IntegerPrimitiveTypeHandlerTest { @Test public void shouldHandleIntegerTypes() { - Descriptors.FieldDescriptor fieldDescriptor = GoFoodShoppingItemProto.GoFoodShoppingItem.getDescriptor().findFieldByName("quantity"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("cancel_reason_id"); IntegerPrimitiveTypeHandler integerPrimitiveTypeHandler = new IntegerPrimitiveTypeHandler(fieldDescriptor); assertTrue(integerPrimitiveTypeHandler.canHandle()); } @Test public void shouldNotHandleTypesOtherThanInteger() { - Descriptors.FieldDescriptor fieldDescriptor = GoFoodShoppingItemProto.GoFoodShoppingItem.getDescriptor().findFieldByName("name"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("order_number"); IntegerPrimitiveTypeHandler integerPrimitiveTypeHandler = new IntegerPrimitiveTypeHandler(fieldDescriptor); assertFalse(integerPrimitiveTypeHandler.canHandle()); } @@ -30,7 +30,7 @@ public void shouldNotHandleTypesOtherThanInteger() { public void shouldFetchValueForFieldForFieldDescriptorOfTypeInteger() { int actualValue = 2; - Descriptors.FieldDescriptor fieldDescriptor = GoFoodShoppingItemProto.GoFoodShoppingItem.getDescriptor().findFieldByName("quantity"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("cancel_reason_id"); IntegerPrimitiveTypeHandler integerPrimitiveTypeHandler = new IntegerPrimitiveTypeHandler(fieldDescriptor); Object value = integerPrimitiveTypeHandler.getValue(actualValue); @@ -41,7 +41,7 @@ public void shouldFetchValueForFieldForFieldDescriptorOfTypeInteger() { public void shouldFetchParsedValueForFieldForFieldDescriptorOfTypeInteger() { int actualValue = 2; - Descriptors.FieldDescriptor fieldDescriptor = GoFoodShoppingItemProto.GoFoodShoppingItem.getDescriptor().findFieldByName("quantity"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("cancel_reason_id"); IntegerPrimitiveTypeHandler integerPrimitiveTypeHandler = new IntegerPrimitiveTypeHandler(fieldDescriptor); Object value = integerPrimitiveTypeHandler.getValue(String.valueOf(actualValue)); @@ -50,7 +50,7 @@ public void shouldFetchParsedValueForFieldForFieldDescriptorOfTypeInteger() { @Test public void shouldFetchDefaultValueIfValueNotPresentForFieldDescriptorOfTypeInteger() { - Descriptors.FieldDescriptor fieldDescriptor = GoFoodShoppingItemProto.GoFoodShoppingItem.getDescriptor().findFieldByName("quantity"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("cancel_reason_id"); IntegerPrimitiveTypeHandler integerPrimitiveTypeHandler = new IntegerPrimitiveTypeHandler(fieldDescriptor); Object value = integerPrimitiveTypeHandler.getValue(null); @@ -59,21 +59,21 @@ public void shouldFetchDefaultValueIfValueNotPresentForFieldDescriptorOfTypeInte @Test public void shouldReturnTypeInformation() { - Descriptors.FieldDescriptor fieldDescriptor = GoFoodShoppingItemProto.GoFoodShoppingItem.getDescriptor().findFieldByName("quantity"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("cancel_reason_id"); IntegerPrimitiveTypeHandler integerPrimitiveTypeHandler = new IntegerPrimitiveTypeHandler(fieldDescriptor); assertEquals(Types.INT, integerPrimitiveTypeHandler.getTypeInformation()); } @Test public void shouldReturnArrayTypeInformation() { - Descriptors.FieldDescriptor fieldDescriptor = GoFoodShoppingItemProto.GoFoodShoppingItem.getDescriptor().findFieldByName("quantity"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("cancel_reason_id"); IntegerPrimitiveTypeHandler integerPrimitiveTypeHandler = new IntegerPrimitiveTypeHandler(fieldDescriptor); assertEquals(Types.PRIMITIVE_ARRAY(Types.INT), integerPrimitiveTypeHandler.getArrayType()); } @Test public void shouldReturnArrayValues() { - Descriptors.FieldDescriptor fieldDescriptor = GoFoodShoppingItemProto.GoFoodShoppingItem.getDescriptor().findFieldByName("quantity"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("cancel_reason_id"); IntegerPrimitiveTypeHandler integerPrimitiveTypeHandler = new IntegerPrimitiveTypeHandler(fieldDescriptor); ArrayList inputValues = new ArrayList<>(Arrays.asList(1, 2, 3)); Object actualValues = integerPrimitiveTypeHandler.getArray(inputValues); @@ -82,7 +82,7 @@ public void shouldReturnArrayValues() { @Test public void shouldReturnEmptyArrayOnNull() { - Descriptors.FieldDescriptor fieldDescriptor = GoFoodShoppingItemProto.GoFoodShoppingItem.getDescriptor().findFieldByName("quantity"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("cancel_reason_id"); IntegerPrimitiveTypeHandler integerPrimitiveTypeHandler = new IntegerPrimitiveTypeHandler(fieldDescriptor); Object actualValues = integerPrimitiveTypeHandler.getArray(null); assertEquals(0, ((Integer[]) actualValues).length); diff --git a/dagger-core/src/test/java/io/odpf/dagger/protohandler/typehandler/LongPrimitiveTypeHandlerTest.java b/dagger-core/src/test/java/io/odpf/dagger/protohandler/typehandler/LongPrimitiveTypeHandlerTest.java index 792b31168..871032b40 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/protohandler/typehandler/LongPrimitiveTypeHandlerTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/protohandler/typehandler/LongPrimitiveTypeHandlerTest.java @@ -1,7 +1,7 @@ package io.odpf.dagger.protohandler.typehandler; -import com.gojek.esb.types.GoFoodShoppingItemProto; import com.google.protobuf.Descriptors; +import io.odpf.dagger.consumer.TestAggregatedSupplyMessage; import org.apache.flink.api.common.typeinfo.Types; import org.junit.Test; @@ -14,14 +14,14 @@ public class LongPrimitiveTypeHandlerTest { @Test public void shouldHandleLongTypes() { - Descriptors.FieldDescriptor fieldDescriptor = GoFoodShoppingItemProto.GoFoodShoppingItem.getDescriptor().findFieldByName("id"); + Descriptors.FieldDescriptor fieldDescriptor = TestAggregatedSupplyMessage.getDescriptor().findFieldByName("s2_id"); LongPrimitiveTypeHandler longPrimitiveTypeHandler = new LongPrimitiveTypeHandler(fieldDescriptor); assertTrue(longPrimitiveTypeHandler.canHandle()); } @Test public void shouldNotHandleTypesOtherThanLong() { - Descriptors.FieldDescriptor fieldDescriptor = GoFoodShoppingItemProto.GoFoodShoppingItem.getDescriptor().findFieldByName("quantity"); + Descriptors.FieldDescriptor fieldDescriptor = TestAggregatedSupplyMessage.getDescriptor().findFieldByName("vehicle_type"); LongPrimitiveTypeHandler longPrimitiveTypeHandler = new LongPrimitiveTypeHandler(fieldDescriptor); assertFalse(longPrimitiveTypeHandler.canHandle()); } @@ -30,7 +30,7 @@ public void shouldNotHandleTypesOtherThanLong() { public void shouldFetchValueForFieldForFieldDescriptorOfTypeLong() { long actualValue = 2L; - Descriptors.FieldDescriptor fieldDescriptor = GoFoodShoppingItemProto.GoFoodShoppingItem.getDescriptor().findFieldByName("id"); + Descriptors.FieldDescriptor fieldDescriptor = TestAggregatedSupplyMessage.getDescriptor().findFieldByName("s2_id"); LongPrimitiveTypeHandler longPrimitiveTypeHandler = new LongPrimitiveTypeHandler(fieldDescriptor); Object value = longPrimitiveTypeHandler.getValue(actualValue); @@ -41,7 +41,7 @@ public void shouldFetchValueForFieldForFieldDescriptorOfTypeLong() { public void shouldFetchParsedValueForFieldForFieldDescriptorOfTypeLong() { long actualValue = 2L; - Descriptors.FieldDescriptor fieldDescriptor = GoFoodShoppingItemProto.GoFoodShoppingItem.getDescriptor().findFieldByName("id"); + Descriptors.FieldDescriptor fieldDescriptor = TestAggregatedSupplyMessage.getDescriptor().findFieldByName("s2_id"); LongPrimitiveTypeHandler longPrimitiveTypeHandler = new LongPrimitiveTypeHandler(fieldDescriptor); Object value = longPrimitiveTypeHandler.getValue(String.valueOf(actualValue)); @@ -50,7 +50,7 @@ public void shouldFetchParsedValueForFieldForFieldDescriptorOfTypeLong() { @Test public void shouldFetchDefaultValueIfValueNotPresentForFieldDescriptorOfTypeLong() { - Descriptors.FieldDescriptor fieldDescriptor = GoFoodShoppingItemProto.GoFoodShoppingItem.getDescriptor().findFieldByName("id"); + Descriptors.FieldDescriptor fieldDescriptor = TestAggregatedSupplyMessage.getDescriptor().findFieldByName("s2_id"); LongPrimitiveTypeHandler longPrimitiveTypeHandler = new LongPrimitiveTypeHandler(fieldDescriptor); Object value = longPrimitiveTypeHandler.getValue(null); @@ -59,21 +59,21 @@ public void shouldFetchDefaultValueIfValueNotPresentForFieldDescriptorOfTypeLong @Test public void shouldReturnTypeInformation() { - Descriptors.FieldDescriptor fieldDescriptor = GoFoodShoppingItemProto.GoFoodShoppingItem.getDescriptor().findFieldByName("id"); + Descriptors.FieldDescriptor fieldDescriptor = TestAggregatedSupplyMessage.getDescriptor().findFieldByName("s2_id"); LongPrimitiveTypeHandler longPrimitiveTypeHandler = new LongPrimitiveTypeHandler(fieldDescriptor); assertEquals(Types.LONG, longPrimitiveTypeHandler.getTypeInformation()); } @Test public void shouldReturnArrayTypeInformation() { - Descriptors.FieldDescriptor fieldDescriptor = GoFoodShoppingItemProto.GoFoodShoppingItem.getDescriptor().findFieldByName("id"); + Descriptors.FieldDescriptor fieldDescriptor = TestAggregatedSupplyMessage.getDescriptor().findFieldByName("s2_id"); LongPrimitiveTypeHandler longPrimitiveTypeHandler = new LongPrimitiveTypeHandler(fieldDescriptor); assertEquals(Types.OBJECT_ARRAY(Types.LONG), longPrimitiveTypeHandler.getArrayType()); } @Test public void shouldReturnArrayValues() { - Descriptors.FieldDescriptor fieldDescriptor = GoFoodShoppingItemProto.GoFoodShoppingItem.getDescriptor().findFieldByName("id"); + Descriptors.FieldDescriptor fieldDescriptor = TestAggregatedSupplyMessage.getDescriptor().findFieldByName("s2_id"); LongPrimitiveTypeHandler longPrimitiveTypeHandler = new LongPrimitiveTypeHandler(fieldDescriptor); ArrayList inputValues = new ArrayList<>(Arrays.asList(1L, 2L, 3L)); Object actualValues = longPrimitiveTypeHandler.getArray(inputValues); @@ -82,7 +82,7 @@ public void shouldReturnArrayValues() { @Test public void shouldReturnEmptyArrayOnNull() { - Descriptors.FieldDescriptor fieldDescriptor = GoFoodShoppingItemProto.GoFoodShoppingItem.getDescriptor().findFieldByName("id"); + Descriptors.FieldDescriptor fieldDescriptor = TestAggregatedSupplyMessage.getDescriptor().findFieldByName("s2_id"); LongPrimitiveTypeHandler longPrimitiveTypeHandler = new LongPrimitiveTypeHandler(fieldDescriptor); Object actualValues = longPrimitiveTypeHandler.getArray(null); assertEquals(0, ((Long[]) actualValues).length); diff --git a/dagger-core/src/test/java/io/odpf/dagger/protohandler/typehandler/PrimitiveTypeHandlerFactoryTest.java b/dagger-core/src/test/java/io/odpf/dagger/protohandler/typehandler/PrimitiveTypeHandlerFactoryTest.java index c75a3c1ff..70b7094cf 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/protohandler/typehandler/PrimitiveTypeHandlerFactoryTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/protohandler/typehandler/PrimitiveTypeHandlerFactoryTest.java @@ -1,9 +1,8 @@ package io.odpf.dagger.protohandler.typehandler; +import io.odpf.dagger.consumer.TestBookingLogMessage; +import io.odpf.dagger.consumer.TestMessageEnvelope; import io.odpf.dagger.exception.DataTypeNotSupportedException; -import com.gojek.esb.ESBLog; -import com.gojek.esb.booking.BookingLogMessage; -import com.gojek.esb.types.GoFoodShoppingItemProto; import org.junit.Test; import static org.junit.Assert.assertEquals; @@ -11,58 +10,58 @@ public class PrimitiveTypeHandlerFactoryTest { @Test - public void shouldReturnIntegerTypeHanlderForInteger() { + public void shouldReturnIntegerTypeHandlerForInteger() { PrimitiveTypeHandler primitiveTypeHandler = PrimitiveTypeHandlerFactory - .getTypeHandler(GoFoodShoppingItemProto.GoFoodShoppingItem.getDescriptor().findFieldByName("quantity")); + .getTypeHandler(TestBookingLogMessage.getDescriptor().findFieldByName("cancel_reason_id")); assertEquals(IntegerPrimitiveTypeHandler.class, primitiveTypeHandler.getClass()); } @Test - public void shouldReturnBooleanTypeHanlderForBoolean() { + public void shouldReturnBooleanTypeHandlerForBoolean() { PrimitiveTypeHandler primitiveTypeHandler = PrimitiveTypeHandlerFactory - .getTypeHandler(BookingLogMessage.getDescriptor().findFieldByName("is_reblast")); + .getTypeHandler(TestBookingLogMessage.getDescriptor().findFieldByName("customer_dynamic_surge_enabled")); assertEquals(BooleanPrimitiveTypeHandler.class, primitiveTypeHandler.getClass()); } @Test - public void shouldReturnDoubleTypeHanlderForDouble() { + public void shouldReturnDoubleTypeHandlerForDouble() { PrimitiveTypeHandler primitiveTypeHandler = PrimitiveTypeHandlerFactory - .getTypeHandler(GoFoodShoppingItemProto.GoFoodShoppingItem.getDescriptor().findFieldByName("price")); + .getTypeHandler(TestBookingLogMessage.getDescriptor().findFieldByName("cash_amount")); assertEquals(DoublePrimitiveTypeHandler.class, primitiveTypeHandler.getClass()); } @Test - public void shouldReturnFloatTypeHanlderForFloat() { + public void shouldReturnFloatTypeHandlerForFloat() { PrimitiveTypeHandler primitiveTypeHandler = PrimitiveTypeHandlerFactory - .getTypeHandler(BookingLogMessage.getDescriptor().findFieldByName("customer_price")); + .getTypeHandler(TestBookingLogMessage.getDescriptor().findFieldByName("amount_paid_by_cash")); assertEquals(FloatPrimitiveTypeHandler.class, primitiveTypeHandler.getClass()); } @Test - public void shouldReturnLongTypeHanlderForLong() { + public void shouldReturnLongTypeHandlerForLong() { PrimitiveTypeHandler primitiveTypeHandler = PrimitiveTypeHandlerFactory - .getTypeHandler(GoFoodShoppingItemProto.GoFoodShoppingItem.getDescriptor().findFieldByName("id")); + .getTypeHandler(TestBookingLogMessage.getDescriptor().findFieldByName("customer_total_fare_without_surge")); assertEquals(LongPrimitiveTypeHandler.class, primitiveTypeHandler.getClass()); } @Test - public void shouldReturnStringTypeHanlderForString() { + public void shouldReturnStringTypeHandlerForString() { PrimitiveTypeHandler primitiveTypeHandler = PrimitiveTypeHandlerFactory - .getTypeHandler(GoFoodShoppingItemProto.GoFoodShoppingItem.getDescriptor().findFieldByName("name")); + .getTypeHandler(TestBookingLogMessage.getDescriptor().findFieldByName("order_number")); assertEquals(StringPrimitiveTypeHandler.class, primitiveTypeHandler.getClass()); } @Test - public void shouldReturnByteStringTypeHanlderForByteString() { + public void shouldReturnByteStringTypeHandlerForByteString() { PrimitiveTypeHandler primitiveTypeHandler = PrimitiveTypeHandlerFactory - .getTypeHandler(ESBLog.ESBLogMessageEnvelope.getDescriptor().findFieldByName("log_key")); + .getTypeHandler(TestMessageEnvelope.getDescriptor().findFieldByName("log_key")); assertEquals(ByteStringPrimitiveTypeHandler.class, primitiveTypeHandler.getClass()); } @Test public void shouldThrowExceptionIfTypeNotSupported() { try { - PrimitiveTypeHandlerFactory.getTypeHandler(BookingLogMessage.getDescriptor().findFieldByName("status")); + PrimitiveTypeHandlerFactory.getTypeHandler(TestBookingLogMessage.getDescriptor().findFieldByName("status")); } catch (Exception e) { assertEquals(DataTypeNotSupportedException.class, e.getClass()); assertEquals("Data type ENUM not supported in primitive type handlers", e.getMessage()); diff --git a/dagger-core/src/test/java/io/odpf/dagger/protohandler/typehandler/StringPrimitiveTypeHandlerTest.java b/dagger-core/src/test/java/io/odpf/dagger/protohandler/typehandler/StringPrimitiveTypeHandlerTest.java index 39a631ac0..df861e28f 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/protohandler/typehandler/StringPrimitiveTypeHandlerTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/protohandler/typehandler/StringPrimitiveTypeHandlerTest.java @@ -1,7 +1,7 @@ package io.odpf.dagger.protohandler.typehandler; -import com.gojek.esb.types.GoFoodShoppingItemProto; import com.google.protobuf.Descriptors; +import io.odpf.dagger.consumer.TestBookingLogMessage; import org.apache.flink.api.common.typeinfo.Types; import org.apache.flink.api.java.typeutils.ObjectArrayTypeInfo; import org.junit.Test; @@ -15,14 +15,14 @@ public class StringPrimitiveTypeHandlerTest { @Test public void shouldHandleStringTypes() { - Descriptors.FieldDescriptor fieldDescriptor = GoFoodShoppingItemProto.GoFoodShoppingItem.getDescriptor().findFieldByName("name"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("order_number"); StringPrimitiveTypeHandler stringPrimitiveTypeHandler = new StringPrimitiveTypeHandler(fieldDescriptor); assertTrue(stringPrimitiveTypeHandler.canHandle()); } @Test public void shouldNotHandleTypesOtherThanString() { - Descriptors.FieldDescriptor fieldDescriptor = GoFoodShoppingItemProto.GoFoodShoppingItem.getDescriptor().findFieldByName("quantity"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("service_type"); StringPrimitiveTypeHandler stringPrimitiveTypeHandler = new StringPrimitiveTypeHandler(fieldDescriptor); assertFalse(stringPrimitiveTypeHandler.canHandle()); } @@ -31,7 +31,7 @@ public void shouldNotHandleTypesOtherThanString() { public void shouldFetchValueForFieldForFieldDescriptorOfTypeString() { String actualValue = "test"; - Descriptors.FieldDescriptor fieldDescriptor = GoFoodShoppingItemProto.GoFoodShoppingItem.getDescriptor().findFieldByName("name"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("order_number"); StringPrimitiveTypeHandler stringPrimitiveTypeHandler = new StringPrimitiveTypeHandler(fieldDescriptor); Object value = stringPrimitiveTypeHandler.getValue(actualValue); @@ -42,7 +42,7 @@ public void shouldFetchValueForFieldForFieldDescriptorOfTypeString() { public void shouldFetchParsedValueForFieldForFieldDescriptorOfTypeString() { Integer actualValue = 23; - Descriptors.FieldDescriptor fieldDescriptor = GoFoodShoppingItemProto.GoFoodShoppingItem.getDescriptor().findFieldByName("name"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("order_number"); StringPrimitiveTypeHandler stringPrimitiveTypeHandler = new StringPrimitiveTypeHandler(fieldDescriptor); Object value = stringPrimitiveTypeHandler.getValue(actualValue); @@ -51,7 +51,7 @@ public void shouldFetchParsedValueForFieldForFieldDescriptorOfTypeString() { @Test public void shouldFetchDefaultValueIfValueNotPresentForFieldDescriptorOfTypeString() { - Descriptors.FieldDescriptor fieldDescriptor = GoFoodShoppingItemProto.GoFoodShoppingItem.getDescriptor().findFieldByName("name"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("order_number"); StringPrimitiveTypeHandler stringPrimitiveTypeHandler = new StringPrimitiveTypeHandler(fieldDescriptor); Object value = stringPrimitiveTypeHandler.getValue(null); @@ -60,21 +60,21 @@ public void shouldFetchDefaultValueIfValueNotPresentForFieldDescriptorOfTypeStri @Test public void shouldReturnTypeInformation() { - Descriptors.FieldDescriptor fieldDescriptor = GoFoodShoppingItemProto.GoFoodShoppingItem.getDescriptor().findFieldByName("name"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("order_number"); StringPrimitiveTypeHandler stringPrimitiveTypeHandler = new StringPrimitiveTypeHandler(fieldDescriptor); assertEquals(Types.STRING, stringPrimitiveTypeHandler.getTypeInformation()); } @Test public void shouldReturnArrayTypeInformation() { - Descriptors.FieldDescriptor fieldDescriptor = GoFoodShoppingItemProto.GoFoodShoppingItem.getDescriptor().findFieldByName("name"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("order_number"); StringPrimitiveTypeHandler stringPrimitiveTypeHandler = new StringPrimitiveTypeHandler(fieldDescriptor); assertEquals(ObjectArrayTypeInfo.getInfoFor(Types.STRING), stringPrimitiveTypeHandler.getArrayType()); } @Test public void shouldReturnArrayValues() { - Descriptors.FieldDescriptor fieldDescriptor = GoFoodShoppingItemProto.GoFoodShoppingItem.getDescriptor().findFieldByName("name"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("order_number"); StringPrimitiveTypeHandler stringPrimitiveTypeHandler = new StringPrimitiveTypeHandler(fieldDescriptor); ArrayList inputValues = new ArrayList<>(Arrays.asList("1", "2", "3")); Object actualValues = stringPrimitiveTypeHandler.getArray(inputValues); @@ -83,7 +83,7 @@ public void shouldReturnArrayValues() { @Test public void shouldReturnEmptyArrayOnNull() { - Descriptors.FieldDescriptor fieldDescriptor = GoFoodShoppingItemProto.GoFoodShoppingItem.getDescriptor().findFieldByName("name"); + Descriptors.FieldDescriptor fieldDescriptor = TestBookingLogMessage.getDescriptor().findFieldByName("order_number"); StringPrimitiveTypeHandler stringPrimitiveTypeHandler = new StringPrimitiveTypeHandler(fieldDescriptor); Object actualValues = stringPrimitiveTypeHandler.getArray(null); assertEquals(0, ((String[]) actualValues).length); diff --git a/dagger-core/src/test/java/io/odpf/dagger/sink/ProtoSerializerTest.java b/dagger-core/src/test/java/io/odpf/dagger/sink/ProtoSerializerTest.java index 5aa13b2a2..c1e369a30 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/sink/ProtoSerializerTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/sink/ProtoSerializerTest.java @@ -6,14 +6,6 @@ import io.odpf.dagger.exception.InvalidColumnMappingException; import com.gojek.de.stencil.StencilClientFactory; import com.gojek.de.stencil.client.StencilClient; -import com.gojek.esb.aggregate.demand.AggregatedDemandKey; -import com.gojek.esb.aggregate.demand.AggregatedDemandMessage; -import com.gojek.esb.aggregate.supply.AggregatedSupplyKey; -import com.gojek.esb.aggregate.supply.AggregatedSupplyMessage; -import com.gojek.esb.booking.BookingLogMessage; -import com.gojek.esb.customer.CustomerLogMessage; -import com.gojek.esb.fraud.EnrichedBookingLogMessage; -import com.gojek.esb.types.BookingStatusProto; import com.google.protobuf.InvalidProtocolBufferException; import com.google.protobuf.util.JsonFormat; import org.apache.flink.types.Row; @@ -28,8 +20,6 @@ import java.util.Arrays; import java.util.stream.Collectors; -import static com.gojek.esb.types.ServiceTypeProto.ServiceType.Enum.GO_RIDE; -import static com.gojek.esb.types.VehicleTypeProto.VehicleType.Enum.BIKE; import static org.junit.Assert.*; import static org.mockito.Mockito.when; import static org.mockito.MockitoAnnotations.initMocks; @@ -52,6 +42,7 @@ public void setup() { when(stencilClientOrchestrator.getStencilClient()).thenReturn(stencilClient); } + /* @Test public void shouldSerializeKeyForDemandProto() throws InvalidProtocolBufferException { String[] columnNames = {"window_start_time", "window_end_time", "s2_id_level", "s2_id", "service_type"}; @@ -581,4 +572,6 @@ public void shouldThrowExceptionWhenOutputTopicIsEmptyForSerializeMethod() { protoSerializer.serialize(element, null); } + + */ } diff --git a/dagger-core/src/test/java/io/odpf/dagger/source/ProtoDeserializerTest.java b/dagger-core/src/test/java/io/odpf/dagger/source/ProtoDeserializerTest.java index 41fad98d8..a106b26ab 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/source/ProtoDeserializerTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/source/ProtoDeserializerTest.java @@ -1,19 +1,10 @@ package io.odpf.dagger.source; -import com.gojek.clickstream.products.events.AdCardEvent; +import io.odpf.dagger.consumer.TestBookingLogKey; +import io.odpf.dagger.consumer.TestBookingLogMessage; import io.odpf.dagger.core.StencilClientOrchestrator; import io.odpf.dagger.exception.DaggerDeserializationException; import io.odpf.dagger.exception.DescriptorNotFoundException; -import com.gojek.esb.booking.BookingLogKey; -import com.gojek.esb.booking.BookingLogMessage; -import com.gojek.esb.consumer.TestNestedRepeatedMessage; -import com.gojek.esb.gofood.AuditEntityLogMessage; -import com.gojek.esb.login.LoginRequestMessage; -import com.gojek.esb.logs.ApiLogMessage; -import com.gojek.esb.participant.ParticipantLogKey; -import com.gojek.esb.participant.ParticipantLogMessage; -import com.gojek.esb.types.DriverLocationProto.DriverLocation; -import com.gojek.esb.types.RouteProto; import com.google.protobuf.Struct; import com.google.protobuf.Timestamp; import org.apache.flink.api.common.typeinfo.TypeInformation; @@ -21,7 +12,6 @@ import org.apache.flink.configuration.Configuration; import org.apache.flink.types.Row; -import io.odpf.dagger.source.ProtoDeserializer; import org.apache.kafka.clients.consumer.ConsumerRecord; import org.junit.Assert; import org.junit.Before; @@ -36,8 +26,6 @@ import java.util.Objects; import static io.odpf.dagger.utils.Constants.*; -import static com.gojek.esb.types.ParticipantStatusProto.ParticipantStatus.Enum.ACCEPTED; -import static com.gojek.esb.types.ServiceTypeProto.ServiceType.Enum.GO_AUTO; import static org.apache.flink.api.common.typeinfo.Types.*; import static org.junit.Assert.*; import static org.mockito.MockitoAnnotations.initMocks; @@ -62,28 +50,29 @@ public void setUp() { @Test public void shouldAlwaysReturnFalseForEndOfStream() { - assertFalse(new ProtoDeserializer(BookingLogKey.class.getTypeName(), 4, "rowtime", stencilClientOrchestrator).isEndOfStream(null)); + assertFalse(new ProtoDeserializer(TestBookingLogKey.class.getTypeName(), 4, "rowtime", stencilClientOrchestrator).isEndOfStream(null)); } @Test public void shouldReturnProducedType() { - ProtoDeserializer protoDeserializer = new ProtoDeserializer(ParticipantLogKey.class.getTypeName(), 3, "rowtime", stencilClientOrchestrator); + ProtoDeserializer protoDeserializer = new ProtoDeserializer(TestBookingLogKey.class.getTypeName(), 3, "rowtime", stencilClientOrchestrator); TypeInformation producedType = protoDeserializer.getProducedType(); assertArrayEquals( - new String[]{"order_id", "status", "event_timestamp", "bid_id", "service_type", "participant_id", "audit", INTERNAL_VALIDATION_FILED, "rowtime"}, + new String[]{"service_type", "order_number", "order_url", "status", "event_timestamp", INTERNAL_VALIDATION_FILED, "rowtime"}, ((RowTypeInfo) producedType).getFieldNames()); assertArrayEquals( - new TypeInformation[]{STRING, STRING, ROW_NAMED(new String[]{"seconds", "nanos"}, LONG, INT), STRING, STRING, STRING, ROW_NAMED(new String[]{"request_id", "timestamp"}, STRING, ROW_NAMED(new String[]{"seconds", "nanos"}, LONG, INT)), BOOLEAN, SQL_TIMESTAMP}, + new TypeInformation[]{STRING, STRING,STRING,STRING, ROW_NAMED(new String[]{"seconds", "nanos"}, LONG, INT), BOOLEAN, SQL_TIMESTAMP}, ((RowTypeInfo) producedType).getFieldTypes()); } + /* @Test public void shouldDeserializeProtoAsRowWithSimpleFields() throws IOException { String expectedOrderNumber = "111"; final int expectedIterationNumber = 10; - byte[] protoBytes = ParticipantLogMessage.newBuilder().setOrderId(expectedOrderNumber) - .setIterationNumber(expectedIterationNumber).build().toByteArray(); - ProtoDeserializer protoDeserializer = new ProtoDeserializer(ParticipantLogMessage.class.getTypeName(), 3, "rowtime", stencilClientOrchestrator); + //byte[] protoBytes = TestBookingLogMessage.newBuilder().setOrderId(expectedOrderNumber).setIterationNumber(expectedIterationNumber).build().toByteArray(); + byte[] protoBytes = new byte[1]; + ProtoDeserializer protoDeserializer = new ProtoDeserializer(TestBookingLogMessage.class.getTypeName(), 3, "rowtime", stencilClientOrchestrator); Row row = protoDeserializer.deserialize(new ConsumerRecord<>("test-topic", 0, 0, null, protoBytes)); @@ -102,7 +91,8 @@ public void shouldAddTimestampFieldToRow() throws IOException { .setEventTimestamp(Timestamp.newBuilder().setSeconds(1595548800L).setNanos(0).build()) .build() .toByteArray(); - ProtoDeserializer protoDeserializer = new ProtoDeserializer(ParticipantLogMessage.class.getTypeName(), 3, "rowtime", stencilClientOrchestrator); + byte[] protoBytes = new byte[1]; + ProtoDeserializer protoDeserializer = new ProtoDeserializer(TestBookingLogMessage.class.getTypeName(), 3, "rowtime", stencilClientOrchestrator); Row row = protoDeserializer.deserialize(new ConsumerRecord<>("test-topic", 0, 0, null, protoBytes)); @@ -336,4 +326,5 @@ private int loginRequestFieldIndex(String propertyName) { private int apiLogMessageFieldIndex(String propertyName) { return ApiLogMessage.getDescriptor().findFieldByName(propertyName).getIndex(); } + */ } diff --git a/dagger-core/src/test/java/io/odpf/dagger/source/ProtoTypeTest.java b/dagger-core/src/test/java/io/odpf/dagger/source/ProtoTypeTest.java index 8ee43855b..5f50297b1 100644 --- a/dagger-core/src/test/java/io/odpf/dagger/source/ProtoTypeTest.java +++ b/dagger-core/src/test/java/io/odpf/dagger/source/ProtoTypeTest.java @@ -1,12 +1,9 @@ package io.odpf.dagger.source; +import io.odpf.dagger.consumer.TestBookingLogMessage; +import io.odpf.dagger.consumer.TestNestedRepeatedMessage; import io.odpf.dagger.core.StencilClientOrchestrator; import io.odpf.dagger.exception.DescriptorNotFoundException; -import com.gojek.esb.booking.BookingLogMessage; -import com.gojek.esb.clevertap.ClevertapEventLogMessage; -import com.gojek.esb.consumer.TestNestedRepeatedMessage; -import com.gojek.esb.login.LoginRequestMessage; -import com.gojek.esb.participant.ParticipantLogMessage; import org.apache.flink.api.common.typeinfo.TypeInformation; import org.apache.flink.api.java.typeutils.ObjectArrayTypeInfo; import org.apache.flink.api.java.typeutils.RowTypeInfo; @@ -43,30 +40,30 @@ public void setup() { @Test public void shouldGiveAllColumnNamesOfProtoAlongWithRowtime() { - ProtoType participantKeyProtoType = new ProtoType("com.gojek.esb.participant.ParticipantLogKey", "rowtime", stencilClientOrchestrator); - ProtoType bookingKeyProtoType = new ProtoType("com.gojek.esb.booking.BookingLogKey", "rowtime", stencilClientOrchestrator); + ProtoType feedbackKeyProtoType = new ProtoType("io.odpf.dagger.consumer.TestFeedbackLogKey", "rowtime", stencilClientOrchestrator); + ProtoType bookingKeyProtoType = new ProtoType("io.odpf.dagger.consumer.TestBookingLogKey", "rowtime", stencilClientOrchestrator); assertArrayEquals( - new String[]{"order_id", "status", "event_timestamp", "bid_id", "service_type", "participant_id", "audit", INTERNAL_VALIDATION_FILED, "rowtime"}, - ((RowTypeInfo) participantKeyProtoType.getRowType()).getFieldNames()); + new String[]{"order_number", "event_timestamp", INTERNAL_VALIDATION_FILED, "rowtime"}, + ((RowTypeInfo) feedbackKeyProtoType.getRowType()).getFieldNames()); assertArrayEquals( - new String[]{"service_type", "order_number", "order_url", "status", "event_timestamp", "audit", INTERNAL_VALIDATION_FILED,"rowtime"}, + new String[]{"service_type", "order_number", "order_url", "status", "event_timestamp", INTERNAL_VALIDATION_FILED, "rowtime"}, ((RowTypeInfo) bookingKeyProtoType.getRowType()).getFieldNames()); } @Test public void shouldGiveAllTypesOfFieldsAlongWithRowtime() { - ProtoType participantKeyProtoType = new ProtoType("com.gojek.esb.participant.ParticipantLogKey", "rowtime", stencilClientOrchestrator); + ProtoType protoType = new ProtoType("io.odpf.dagger.consumer.TestBookingLogKey", "rowtime", stencilClientOrchestrator); assertArrayEquals( - new TypeInformation[]{STRING, STRING, ROW_NAMED(new String[]{"seconds", "nanos"}, LONG, INT), STRING, STRING, STRING, ROW_NAMED(new String[]{"request_id", "timestamp"}, STRING, ROW_NAMED(new String[]{"seconds", "nanos"}, LONG, INT)), BOOLEAN, SQL_TIMESTAMP}, - ((RowTypeInfo) participantKeyProtoType.getRowType()).getFieldTypes()); + new TypeInformation[]{STRING, STRING, STRING, STRING, ROW_NAMED(new String[]{"seconds", "nanos"}, LONG, INT), BOOLEAN, SQL_TIMESTAMP}, + ((RowTypeInfo) protoType.getRowType()).getFieldTypes()); } @Test(expected = DescriptorNotFoundException.class) public void shouldThrowConfigurationExceptionWhenClassNotFound() { - ProtoType protoType = new ProtoType("com.gojek.esb.participant.ParticipantLogKey211", "rowtime", stencilClientOrchestrator); + ProtoType protoType = new ProtoType("io.odpf.dagger.consumer.NotFoundClass", "rowtime", stencilClientOrchestrator); protoType.getRowType(); } @@ -78,33 +75,33 @@ public void shouldThrowConfigurationExceptionWhenClassIsNotProto() { @Test public void shouldGiveSimpleMappedFlinkTypes() { - ProtoType participantMessageProtoType = new ProtoType(ParticipantLogMessage.class.getName(), "rowtime", stencilClientOrchestrator); + ProtoType protoType = new ProtoType(TestBookingLogMessage.class.getName(), "rowtime", stencilClientOrchestrator); - TypeInformation[] fieldTypes = ((RowTypeInfo) participantMessageProtoType.getRowType()).getFieldTypes(); + TypeInformation[] fieldTypes = ((RowTypeInfo) protoType.getRowType()).getFieldTypes(); - assertEquals(STRING, fieldTypes[participantLogFieldIndex("order_id")]); - assertEquals(INT, fieldTypes[participantLogFieldIndex("customer_straight_line_distance")]); - assertEquals(DOUBLE, fieldTypes[participantLogFieldIndex("receive_delay")]); + assertEquals(STRING, fieldTypes[bookingLogFieldIndex("order_number")]); + assertEquals(INT, fieldTypes[bookingLogFieldIndex("cancel_reason_id")]); + assertEquals(DOUBLE, fieldTypes[bookingLogFieldIndex("cash_amount")]); } @Test public void shouldGiveSubRowMappedField() { - ProtoType participantMessageProtoType = new ProtoType(ParticipantLogMessage.class.getName(), "rowtime", stencilClientOrchestrator); + ProtoType participantMessageProtoType = new ProtoType(TestBookingLogMessage.class.getName(), "rowtime", stencilClientOrchestrator); TypeInformation[] fieldTypes = ((RowTypeInfo) participantMessageProtoType.getRowType()).getFieldTypes(); TypeInformation expectedTimestampRow = ROW_NAMED(new String[]{"seconds", "nanos"}, LONG, INT); - TypeInformation driverLocationRow = ROW_NAMED(new String[]{"latitude", "longitude", "altitude", "accuracy", "speed", "event_timestamp"}, - DOUBLE, DOUBLE, DOUBLE, DOUBLE, DOUBLE, ROW_NAMED(new String[]{"seconds", "nanos"}, LONG, INT)); + TypeInformation driverLocationRow = ROW_NAMED(new String[]{"name", "address", "latitude", "longitude", "type", "note", "place_id", "accuracy_meter", "gate_id"}, + STRING, STRING, DOUBLE, DOUBLE, STRING, STRING, STRING, FLOAT, STRING); - assertEquals(expectedTimestampRow, fieldTypes[participantLogFieldIndex("event_timestamp")]); - assertEquals(driverLocationRow, fieldTypes[participantLogFieldIndex("location")]); + assertEquals(expectedTimestampRow, fieldTypes[bookingLogFieldIndex("event_timestamp")]); + assertEquals(driverLocationRow, fieldTypes[bookingLogFieldIndex("driver_pickup_location")]); } @Test public void shouldProcessArrayForObjectData() { - ProtoType bookingLogMessageProtoType = new ProtoType(BookingLogMessage.class.getName(), "rowtime", stencilClientOrchestrator); + ProtoType bookingLogMessageProtoType = new ProtoType(TestBookingLogMessage.class.getName(), "rowtime", stencilClientOrchestrator); TypeInformation[] fieldTypes = ((RowTypeInfo) bookingLogMessageProtoType.getRowType()).getFieldTypes(); TypeInformation locationType = ROW_NAMED(new String[]{"name", "address", "latitude", "longitude", "type", "note", "place_id", "accuracy_meter", "gate_id"}, @@ -117,42 +114,32 @@ public void shouldProcessArrayForObjectData() { @Test public void shouldProcessArrayForStringData() { - ProtoType loginRequestMessageProtoType = new ProtoType(LoginRequestMessage.class.getName(), "rowtime", stencilClientOrchestrator); + ProtoType rowtime = new ProtoType(TestBookingLogMessage.class.getName(), "rowtime", stencilClientOrchestrator); - TypeInformation[] fieldTypes = ((RowTypeInfo) loginRequestMessageProtoType.getRowType()).getFieldTypes(); + TypeInformation[] fieldTypes = ((RowTypeInfo) rowtime.getRowType()).getFieldTypes(); TypeInformation registeredDeviceType = ObjectArrayTypeInfo.getInfoFor(STRING); - assertEquals(registeredDeviceType, fieldTypes[loginRequestFieldIndex("registered_device")]); + assertEquals(registeredDeviceType, fieldTypes[bookingLogFieldIndex("meta_array")]); } - @Test - public void shouldGiveNamesAndTypes() { - ProtoType participantMessageProtoType = new ProtoType(ParticipantLogMessage.class.getName(), "rowtime", stencilClientOrchestrator); - - RowTypeInfo rowType = (RowTypeInfo) participantMessageProtoType.getRowType(); - - assertEquals("order_id", rowType.getFieldNames()[0]); - assertEquals(DOUBLE, rowType.getFieldTypes()[participantLogFieldIndex("receive_delay")]); - } - @Test public void shouldGiveAllNamesAndTypesIncludingStructFields() { - ProtoType clevertapMessageProtoType = new ProtoType(ClevertapEventLogMessage.class.getName(), "rowtime", stencilClientOrchestrator); - assertEquals(12, ((RowTypeInfo) clevertapMessageProtoType.getRowType()).getFieldNames().length); - assertEquals(12, ((RowTypeInfo) clevertapMessageProtoType.getRowType()).getFieldTypes().length); + ProtoType clevertapMessageProtoType = new ProtoType(TestBookingLogMessage.class.getName(), "rowtime", stencilClientOrchestrator); + assertEquals(46, ((RowTypeInfo) clevertapMessageProtoType.getRowType()).getFieldNames().length); + assertEquals(46, ((RowTypeInfo) clevertapMessageProtoType.getRowType()).getFieldTypes().length); } @Test public void shouldReturnRowTypeForStructFields() { - ProtoType clevertapMessageProtoType = new ProtoType(ClevertapEventLogMessage.class.getName(), "rowtime", stencilClientOrchestrator); - assertEquals(ROW(), ((RowTypeInfo) clevertapMessageProtoType.getRowType()).getFieldTypes()[7]); - assertEquals(ROW(), ((RowTypeInfo) clevertapMessageProtoType.getRowType()).getFieldTypes()[8]); - assertEquals(ROW(), ((RowTypeInfo) clevertapMessageProtoType.getRowType()).getFieldTypes()[9]); - assertEquals("profile_data", ((RowTypeInfo) clevertapMessageProtoType.getRowType()).getFieldNames()[7]); - assertEquals("event_properties", ((RowTypeInfo) clevertapMessageProtoType.getRowType()).getFieldNames()[8]); - assertEquals("key_values", ((RowTypeInfo) clevertapMessageProtoType.getRowType()).getFieldNames()[9]); + ProtoType protoType = new ProtoType(TestBookingLogMessage.class.getName(), "rowtime", stencilClientOrchestrator); + assertEquals(ROW(), ((RowTypeInfo) protoType.getRowType()).getFieldTypes()[35]); + assertEquals(ROW(), ((RowTypeInfo) protoType.getRowType()).getFieldTypes()[36]); + assertEquals(ROW(), ((RowTypeInfo) protoType.getRowType()).getFieldTypes()[37]); + assertEquals("profile_data", ((RowTypeInfo) protoType.getRowType()).getFieldNames()[35]); + assertEquals("event_properties", ((RowTypeInfo) protoType.getRowType()).getFieldNames()[36]); + assertEquals("key_values", ((RowTypeInfo) protoType.getRowType()).getFieldNames()[37]); } @Test @@ -168,16 +155,8 @@ public void shouldGiveNameAndTypeForRepeatingStructType() { assertEquals(OBJECT_ARRAY(ROW()), ((RowTypeInfo) testNestedRepeatedMessage.getRowType()).getFieldTypes()[4]); } - private int participantLogFieldIndex(String propertyName) { - return ParticipantLogMessage.getDescriptor().findFieldByName(propertyName).getIndex(); - } - private int bookingLogFieldIndex(String propertyName) { - return BookingLogMessage.getDescriptor().findFieldByName(propertyName).getIndex(); - } - - private int loginRequestFieldIndex(String propertyName) { - return LoginRequestMessage.getDescriptor().findFieldByName(propertyName).getIndex(); + return TestBookingLogMessage.getDescriptor().findFieldByName(propertyName).getIndex(); } } diff --git a/dagger-core/src/test/proto/TestGrpc.proto b/dagger-core/src/test/proto/TestGrpc.proto index 1f9c0d597..d1f216f1b 100644 --- a/dagger-core/src/test/proto/TestGrpc.proto +++ b/dagger-core/src/test/proto/TestGrpc.proto @@ -1,9 +1,9 @@ syntax = "proto3"; -package com.gojek.esb.consumer; +package io.odpf.dagger.consumer; option java_multiple_files = true; -option java_package = "com.gojek.esb.consumer"; +option java_package = "io.odpf.dagger.consumer"; option java_outer_classname = "SampleGrpcServerProto"; service TestServer { diff --git a/dagger-core/src/test/proto/TestLogMessage.proto b/dagger-core/src/test/proto/TestLogMessage.proto new file mode 100644 index 000000000..eeb1c4828 --- /dev/null +++ b/dagger-core/src/test/proto/TestLogMessage.proto @@ -0,0 +1,254 @@ +syntax = "proto3"; + +package io.odpf.dagger.consumer; + +option java_multiple_files = true; +option java_package = "io.odpf.dagger.consumer"; +option java_outer_classname = "TestLogMessageProto"; + +import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; +import "google/protobuf/duration.proto"; + + +message TestAggregatedSupplyKey { + google.protobuf.Timestamp window_start_time = 1; + google.protobuf.Timestamp window_end_time = 2; + int32 s2_id_level = 3; + int64 s2_id = 4; + TestVehicleType.Enum vehicle_type = 5; +} + +message TestAggregatedSupplyMessage { + google.protobuf.Timestamp window_start_time = 1; + google.protobuf.Timestamp window_end_time = 2; + int32 s2_id_level = 3; + int64 s2_id = 4; + TestVehicleType.Enum vehicle_type = 5; + int64 unique_drivers = 6; + google.protobuf.Timestamp event_timestamp = 7; +} + +message TestVehicleType { + enum Enum { + UNKNOWN = 0; + CAR = 1; + BIKE = 2; + } +} +message TestBookingLogKey { + TestServiceType.Enum service_type = 1; + string order_number = 2; + string order_url = 3; + TestBookingStatus.Enum status = 4; + google.protobuf.Timestamp event_timestamp = 5; +} + +message TestBookingLogMessage { + TestServiceType.Enum service_type = 1; + string order_number = 2; + string order_url = 3; + TestBookingStatus.Enum status = 4; + google.protobuf.Timestamp event_timestamp = 5; + string customer_id = 6; + string customer_url = 7; + string driver_id = 8; + + + string driver_url = 9; + + string activity_source = 11; + string service_area_id = 12; + + float amount_paid_by_cash = 16; + + TestLocation driver_pickup_location = 26; + TestLocation driver_dropoff_location = 27; + + string customer_email = 28; + string customer_name = 29; + string customer_phone = 30; + + string driver_email = 31; + string driver_name = 32; + string driver_phone = 33; + + int32 cancel_reason_id = 36; + string cancel_reason_description = 37; + + google.protobuf.Timestamp booking_creation_time = 41; + + float total_customer_discount = 40; + float gopay_customer_discount = 42; + float voucher_customer_discount = 43; + + google.protobuf.Timestamp pickup_time = 44; + float driver_paid_in_cash = 45; + float driver_paid_in_credit = 46; + + TestVehicleType.Enum vehicle_type = 51; + + int64 customer_total_fare_without_surge = 52; + bool customer_dynamic_surge_enabled = 55; + + int64 driver_total_fare_without_surge = 56; + bool driver_dynamic_surge_enabled = 59; + repeated string meta_array = 60; + + google.protobuf.Struct profile_data = 61; + google.protobuf.Struct event_properties = 62; + google.protobuf.Struct key_values = 63; + + double cash_amount = 64; + + repeated int32 int_array_field = 65; + + map metadata = 66; + + TestPaymentOptionMetadata payment_option_metadata = 67; + + repeated TestEnumType.Enum test_enums = 68; + + repeated TestRoute routes = 69; + + +} + +message TestPaymentOptionMetadata { + string masked_card = 1; + string network = 2; +} + +message TestFeedbackLogKey { + string order_number = 1; + google.protobuf.Timestamp event_timestamp = 2; +} + +message TestFeedbackLogMessage { + string order_number = 1; + google.protobuf.Timestamp event_timestamp = 2; + string driver_id = 3; + string customer_id = 4; + int32 feedback_rating = 5; + string feedback_comment = 6; + float tip_amount = 7; + bool feedback_skipped = 8; + TestServiceType.Enum service_type = 9; + TestFeedbackSource.Enum feedback_source = 10; + repeated TestReason reason = 11; + string locale = 12; + bool support_ticket_created = 13; + bool is_gopay_success = 14; + google.protobuf.Timestamp order_completion_time = 15; + google.protobuf.Timestamp feedback_creation_time = 16; +} + +message TestReason { + string reason_id = 1; + string group_id = 2; +} + +message TestRoute { + TestLocation start = 1; + TestLocation end = 2; + float distance_in_kms = 3; + google.protobuf.Duration estimated_duration = 4; + int32 route_order = 5; +} + + +message TestFeedbackSource { + enum Enum { + CUSTOMER = 0; + DRIVER = 1; + } +} + +message TestServiceType { + enum Enum { + UNKNOWN = 0; + GO_RIDE = 1; + GO_SEND = 2; + GO_SHOP = 3; + } +} + +message TestEnumType { + enum Enum { + UNKNOWN = 0; + TYPE1 = 1; + TYPE2 = 2; + TYPE3 = 3; + } +} + +message TestBookingStatus { + enum Enum { + UNKNOWN = 0; + CREATED = 1; + DRIVER_FOUND = 2; + PICKED_UP = 3; + COMPLETED = 4; + } +} + +message TestAuditEntityLogKey { + string audit_id = 1; + string entity_id = 2; + string restaurant_id = 3; + google.protobuf.Timestamp event_timestamp = 4; +} + +message TestAuditEntityLogMessage { + string audit_id = 1; + string entity_id = 2; + string restaurant_id = 3; + google.protobuf.Timestamp event_timestamp = 4; + string entity_type = 5; + string restaurant_name = 6; + map current_state = 7; + map previous_values = 8; + string source = 9; +} + +message TestLocation { + string name = 1; + string address = 2; + double latitude = 3; + double longitude = 4; + string type = 5; + string note = 6; + string place_id = 7; + float accuracy_meter = 8; + string gate_id = 9; +} + +message TestMessageEnvelope { + string service_name = 1; + string topic = 2; + bytes log_key = 3; + bytes log_message = 4; +} + + +message TestSurgeFactorLogMessage { + google.protobuf.Timestamp event_timestamp = 1; + google.protobuf.Timestamp start_time = 2; + google.protobuf.Timestamp end_time = 3; + int32 s2_id_level = 4; + int64 s2_id = 5; + TestServiceType.Enum service_type = 6; + float surge_factor = 7; +} + +message TestEnrichedBookingLogMessage { + TestBookingLogMessage booking_log = 1; + // TestCustomerLogMessage customer_profile = 2; + TestProfile driver_profile = 3; + google.protobuf.Timestamp event_timestamp = 4; +} + +message TestProfile { + string driver_id = 1; +} + diff --git a/dagger-core/src/test/proto/TestMessage.proto b/dagger-core/src/test/proto/TestMessage.proto index 786a421a2..4e8ecf878 100644 --- a/dagger-core/src/test/proto/TestMessage.proto +++ b/dagger-core/src/test/proto/TestMessage.proto @@ -1,9 +1,9 @@ syntax = "proto3"; -package com.gojek.esb.consumer; +package io.odpf.dagger.consumer; option java_multiple_files = true; -option java_package = "com.gojek.esb.consumer"; +option java_package = "io.odpf.dagger.consumer"; option java_outer_classname = "TestMessageProto"; import "google/protobuf/struct.proto";