diff options
Diffstat (limited to 'dcae-analytics-cdap-plugins/src/test/java/org/openecomp/dcae/apod/analytics/cdap/plugins/utils/CDAPPluginUtilsTest.java')
-rw-r--r-- | dcae-analytics-cdap-plugins/src/test/java/org/openecomp/dcae/apod/analytics/cdap/plugins/utils/CDAPPluginUtilsTest.java | 342 |
1 files changed, 171 insertions, 171 deletions
diff --git a/dcae-analytics-cdap-plugins/src/test/java/org/openecomp/dcae/apod/analytics/cdap/plugins/utils/CDAPPluginUtilsTest.java b/dcae-analytics-cdap-plugins/src/test/java/org/openecomp/dcae/apod/analytics/cdap/plugins/utils/CDAPPluginUtilsTest.java index 1483749..fbecb81 100644 --- a/dcae-analytics-cdap-plugins/src/test/java/org/openecomp/dcae/apod/analytics/cdap/plugins/utils/CDAPPluginUtilsTest.java +++ b/dcae-analytics-cdap-plugins/src/test/java/org/openecomp/dcae/apod/analytics/cdap/plugins/utils/CDAPPluginUtilsTest.java @@ -1,171 +1,171 @@ -/* - * ===============================LICENSE_START====================================== - * dcae-analytics - * ================================================================================ - * Copyright © 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============================LICENSE_END=========================================== - */ - -package org.openecomp.dcae.apod.analytics.cdap.plugins.utils; - -import co.cask.cdap.api.data.format.StructuredRecord; -import co.cask.cdap.api.data.schema.Schema; -import org.junit.Test; -import org.openecomp.dcae.apod.analytics.cdap.plugins.BaseAnalyticsCDAPPluginsUnitTest; -import org.openecomp.dcae.apod.analytics.common.exception.DCAEAnalyticsRuntimeException; - -import static org.hamcrest.CoreMatchers.is; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; -import static org.junit.Assert.assertThat; - -/** - * @author Rajiv Singla . Creation Date: 1/30/2017. - */ -public class CDAPPluginUtilsTest extends BaseAnalyticsCDAPPluginsUnitTest { - - - @Test - public void testValidateSchemaContainsFieldsWhenSchemaIsNotNull() throws Exception { - final Schema dMaaPMRSinkTestSchema = getDMaaPMRSinkTestSchema(); - CDAPPluginUtils.validateSchemaContainsFields(dMaaPMRSinkTestSchema, "message"); - } - - @Test - public void testValidateSchemaContainsFieldsWhenInputSchemaIsNull() throws Exception { - CDAPPluginUtils.validateSchemaContainsFields(null, "message"); - } - - @Test - public void testCreateStructuredRecord() throws Exception { - final StructuredRecord testMessage = CDAPPluginUtils.createDMaaPMRResponseStructuredRecord("testMessage"); - assertNotNull(testMessage); - } - - - @Test - public void testCreateOutputStructuredRecordBuilder() throws Exception { - - final String messageFieldName = "message"; - final String firstInputFieldName = "inputField1"; - final String secondInputFieldName = "inputField2"; - - - final Schema inputSchema = Schema.recordOf( - "inputSchema", - Schema.Field.of(messageFieldName, Schema.of(Schema.Type.STRING)), - Schema.Field.of(firstInputFieldName, Schema.nullableOf(Schema.of(Schema.Type.STRING))), - Schema.Field.of(secondInputFieldName, Schema.nullableOf(Schema.of(Schema.Type.STRING))) - ); - - final String addedFieldName = "addedField"; - final Schema outputSchema = Schema.recordOf( - "outputSchema", - Schema.Field.of(messageFieldName, Schema.of(Schema.Type.STRING)), - Schema.Field.of(firstInputFieldName, Schema.nullableOf(Schema.of(Schema.Type.STRING))), - Schema.Field.of(addedFieldName, Schema.nullableOf(Schema.of(Schema.Type.STRING))) // added field - // missing second Input Field - ); - - // input structured record - final String messageFieldValue = "Message String"; - final String firstFieldValue = "Input Field 1"; - final String secondFieldValue = "Input Field 2"; - final StructuredRecord inputSR = StructuredRecord.builder(inputSchema) - .set(messageFieldName, messageFieldValue) - .set(firstInputFieldName, firstFieldValue) - .set(secondInputFieldName, secondFieldValue) - .build(); - - final StructuredRecord.Builder outputStructuredRecordBuilder = - CDAPPluginUtils.createOutputStructuredRecordBuilder(outputSchema, inputSR); - - final String addedFieldValue = "Added Field Value"; - final StructuredRecord outputSR = outputStructuredRecordBuilder - .set(addedFieldName, addedFieldValue) - .build(); - - assertThat("Added Field field value copied correctly", - outputSR.get(addedFieldName).toString(), is(addedFieldValue)); - - assertThat("Output SR has message field copied correctly", - outputSR.get(messageFieldName).toString(), is(messageFieldValue)); - - assertThat("First Field value copied correctly", - outputSR.get(firstInputFieldName).toString(), is(firstFieldValue)); - - assertNull("Second Field value is null as output schema does not have the field", - outputSR.get(secondInputFieldName)); - - } - - - @Test - public void testAddFieldValueToStructuredRecordBuilder() throws Exception { - - final String messageFieldName = "message"; - final String firstInputFieldName = "inputField1"; - final String addedFieldName = "addedField"; - final String firstFieldValue = "Input Field 1"; - final String addedFieldValue = "Added Field Value"; - final Schema outputSchema = Schema.recordOf( - "outputSchema", - Schema.Field.of(messageFieldName, Schema.of(Schema.Type.STRING)), - Schema.Field.of(firstInputFieldName, Schema.nullableOf(Schema.of(Schema.Type.STRING))), - Schema.Field.of(addedFieldName, Schema.nullableOf(Schema.of(Schema.Type.STRING))) // added field - ); - - final StructuredRecord.Builder outputSRBuilder = StructuredRecord.builder(outputSchema) - .set(messageFieldName, "Some message") - .set(firstInputFieldName, firstFieldValue); - - final StructuredRecord.Builder addedFieldSRBuilder = CDAPPluginUtils.addFieldValueToStructuredRecordBuilder( - outputSRBuilder, outputSchema, addedFieldName, addedFieldValue); - - // Try adding field to output Structured record that is not in output schema - final String nonExistentFieldName = "fieldNotInOutputSchema"; - final String nonExistentFieldValue = "Some Value"; - final StructuredRecord outputSR = CDAPPluginUtils.addFieldValueToStructuredRecordBuilder( - addedFieldSRBuilder, outputSchema, nonExistentFieldName, nonExistentFieldValue).build(); - - assertThat("Output SR must contain added Field which is in output schema", - outputSR.get(addedFieldName).toString(), is(addedFieldValue)); - assertNull("Output SR must not contain field that is not in output schema", - outputSR.get(nonExistentFieldName)); - - } - - @Test(expected = DCAEAnalyticsRuntimeException.class) - public void testValidateSchemaFieldTypeWhenInputSchemaIsNotValidJson() throws Exception { - CDAPPluginUtils.validateSchemaFieldType("Invalid Schema", "field1", Schema.Type.STRING); - } - - @Test(expected = DCAEAnalyticsRuntimeException.class) - public void testSetOutputSchemaWhenOutputSchemaIsNotValidJson() throws Exception { - CDAPPluginUtils.setOutputSchema(null, "Invalid output Schema"); - } - - @Test(expected = DCAEAnalyticsRuntimeException.class) - public void testExtractFieldMappingsWhenFieldMappingValueIsEmpty() throws Exception { - CDAPPluginUtils.extractFieldMappings("path1:,path2:value2"); - } - - @Test(expected = DCAEAnalyticsRuntimeException.class) - public void testExtractFieldMappingsWhenFieldMappingAreBlank() throws Exception { - CDAPPluginUtils.extractFieldMappings("path1: ,path2:value2"); - } - - -} +/*
+ * ===============================LICENSE_START======================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============================LICENSE_END===========================================
+ */
+
+package org.openecomp.dcae.apod.analytics.cdap.plugins.utils;
+
+import co.cask.cdap.api.data.format.StructuredRecord;
+import co.cask.cdap.api.data.schema.Schema;
+import org.junit.Test;
+import org.openecomp.dcae.apod.analytics.cdap.plugins.BaseAnalyticsCDAPPluginsUnitTest;
+import org.openecomp.dcae.apod.analytics.common.exception.DCAEAnalyticsRuntimeException;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertThat;
+
+/**
+ * @author Rajiv Singla . Creation Date: 1/30/2017.
+ */
+public class CDAPPluginUtilsTest extends BaseAnalyticsCDAPPluginsUnitTest {
+
+
+ @Test
+ public void testValidateSchemaContainsFieldsWhenSchemaIsNotNull() throws Exception {
+ final Schema dMaaPMRSinkTestSchema = getDMaaPMRSinkTestSchema();
+ CDAPPluginUtils.validateSchemaContainsFields(dMaaPMRSinkTestSchema, "message");
+ }
+
+ @Test
+ public void testValidateSchemaContainsFieldsWhenInputSchemaIsNull() throws Exception {
+ CDAPPluginUtils.validateSchemaContainsFields(null, "message");
+ }
+
+ @Test
+ public void testCreateStructuredRecord() throws Exception {
+ final StructuredRecord testMessage = CDAPPluginUtils.createDMaaPMRResponseStructuredRecord("testMessage");
+ assertNotNull(testMessage);
+ }
+
+
+ @Test
+ public void testCreateOutputStructuredRecordBuilder() throws Exception {
+
+ final String messageFieldName = "message";
+ final String firstInputFieldName = "inputField1";
+ final String secondInputFieldName = "inputField2";
+
+
+ final Schema inputSchema = Schema.recordOf(
+ "inputSchema",
+ Schema.Field.of(messageFieldName, Schema.of(Schema.Type.STRING)),
+ Schema.Field.of(firstInputFieldName, Schema.nullableOf(Schema.of(Schema.Type.STRING))),
+ Schema.Field.of(secondInputFieldName, Schema.nullableOf(Schema.of(Schema.Type.STRING)))
+ );
+
+ final String addedFieldName = "addedField";
+ final Schema outputSchema = Schema.recordOf(
+ "outputSchema",
+ Schema.Field.of(messageFieldName, Schema.of(Schema.Type.STRING)),
+ Schema.Field.of(firstInputFieldName, Schema.nullableOf(Schema.of(Schema.Type.STRING))),
+ Schema.Field.of(addedFieldName, Schema.nullableOf(Schema.of(Schema.Type.STRING))) // added field
+ // missing second Input Field
+ );
+
+ // input structured record
+ final String messageFieldValue = "Message String";
+ final String firstFieldValue = "Input Field 1";
+ final String secondFieldValue = "Input Field 2";
+ final StructuredRecord inputSR = StructuredRecord.builder(inputSchema)
+ .set(messageFieldName, messageFieldValue)
+ .set(firstInputFieldName, firstFieldValue)
+ .set(secondInputFieldName, secondFieldValue)
+ .build();
+
+ final StructuredRecord.Builder outputStructuredRecordBuilder =
+ CDAPPluginUtils.createOutputStructuredRecordBuilder(outputSchema, inputSR);
+
+ final String addedFieldValue = "Added Field Value";
+ final StructuredRecord outputSR = outputStructuredRecordBuilder
+ .set(addedFieldName, addedFieldValue)
+ .build();
+
+ assertThat("Added Field field value copied correctly",
+ outputSR.get(addedFieldName).toString(), is(addedFieldValue));
+
+ assertThat("Output SR has message field copied correctly",
+ outputSR.get(messageFieldName).toString(), is(messageFieldValue));
+
+ assertThat("First Field value copied correctly",
+ outputSR.get(firstInputFieldName).toString(), is(firstFieldValue));
+
+ assertNull("Second Field value is null as output schema does not have the field",
+ outputSR.get(secondInputFieldName));
+
+ }
+
+
+ @Test
+ public void testAddFieldValueToStructuredRecordBuilder() throws Exception {
+
+ final String messageFieldName = "message";
+ final String firstInputFieldName = "inputField1";
+ final String addedFieldName = "addedField";
+ final String firstFieldValue = "Input Field 1";
+ final String addedFieldValue = "Added Field Value";
+ final Schema outputSchema = Schema.recordOf(
+ "outputSchema",
+ Schema.Field.of(messageFieldName, Schema.of(Schema.Type.STRING)),
+ Schema.Field.of(firstInputFieldName, Schema.nullableOf(Schema.of(Schema.Type.STRING))),
+ Schema.Field.of(addedFieldName, Schema.nullableOf(Schema.of(Schema.Type.STRING))) // added field
+ );
+
+ final StructuredRecord.Builder outputSRBuilder = StructuredRecord.builder(outputSchema)
+ .set(messageFieldName, "Some message")
+ .set(firstInputFieldName, firstFieldValue);
+
+ final StructuredRecord.Builder addedFieldSRBuilder = CDAPPluginUtils.addFieldValueToStructuredRecordBuilder(
+ outputSRBuilder, outputSchema, addedFieldName, addedFieldValue);
+
+ // Try adding field to output Structured record that is not in output schema
+ final String nonExistentFieldName = "fieldNotInOutputSchema";
+ final String nonExistentFieldValue = "Some Value";
+ final StructuredRecord outputSR = CDAPPluginUtils.addFieldValueToStructuredRecordBuilder(
+ addedFieldSRBuilder, outputSchema, nonExistentFieldName, nonExistentFieldValue).build();
+
+ assertThat("Output SR must contain added Field which is in output schema",
+ outputSR.get(addedFieldName).toString(), is(addedFieldValue));
+ assertNull("Output SR must not contain field that is not in output schema",
+ outputSR.get(nonExistentFieldName));
+
+ }
+
+ @Test(expected = DCAEAnalyticsRuntimeException.class)
+ public void testValidateSchemaFieldTypeWhenInputSchemaIsNotValidJson() throws Exception {
+ CDAPPluginUtils.validateSchemaFieldType("Invalid Schema", "field1", Schema.Type.STRING);
+ }
+
+ @Test(expected = DCAEAnalyticsRuntimeException.class)
+ public void testSetOutputSchemaWhenOutputSchemaIsNotValidJson() throws Exception {
+ CDAPPluginUtils.setOutputSchema(null, "Invalid output Schema");
+ }
+
+ @Test(expected = DCAEAnalyticsRuntimeException.class)
+ public void testExtractFieldMappingsWhenFieldMappingValueIsEmpty() throws Exception {
+ CDAPPluginUtils.extractFieldMappings("path1:,path2:value2");
+ }
+
+ @Test(expected = DCAEAnalyticsRuntimeException.class)
+ public void testExtractFieldMappingsWhenFieldMappingAreBlank() throws Exception {
+ CDAPPluginUtils.extractFieldMappings("path1: ,path2:value2");
+ }
+
+
+}
|