summaryrefslogtreecommitdiffstats
path: root/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/product/ProductCreateWithValidationsTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/product/ProductCreateWithValidationsTest.java')
-rw-r--r--asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/product/ProductCreateWithValidationsTest.java1710
1 files changed, 1710 insertions, 0 deletions
diff --git a/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/product/ProductCreateWithValidationsTest.java b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/product/ProductCreateWithValidationsTest.java
new file mode 100644
index 0000000000..d2c2dfe77f
--- /dev/null
+++ b/asdc-tests/src/main/java/org/openecomp/sdc/ci/tests/execute/product/ProductCreateWithValidationsTest.java
@@ -0,0 +1,1710 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * SDC
+ * ================================================================================
+ * Copyright (C) 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.sdc.ci.tests.execute.product;
+
+import static org.testng.AssertJUnit.assertEquals;
+import static org.testng.AssertJUnit.assertTrue;
+
+import java.util.Arrays;
+
+import org.json.JSONArray;
+import org.json.JSONException;
+import org.junit.Rule;
+import org.junit.rules.TestName;
+import org.openecomp.sdc.be.dao.api.ActionStatus;
+import org.openecomp.sdc.be.model.LifecycleStateEnum;
+import org.openecomp.sdc.be.model.Product;
+import org.openecomp.sdc.be.model.User;
+import org.openecomp.sdc.ci.tests.datatypes.ProductReqDetails;
+import org.openecomp.sdc.ci.tests.datatypes.enums.UserRoleEnum;
+import org.openecomp.sdc.ci.tests.datatypes.expected.ExpectedProductAudit;
+import org.openecomp.sdc.ci.tests.datatypes.http.RestResponse;
+import org.openecomp.sdc.ci.tests.utils.DbUtils;
+import org.openecomp.sdc.ci.tests.utils.general.Convertor;
+import org.openecomp.sdc.ci.tests.utils.general.ElementFactory;
+import org.openecomp.sdc.ci.tests.utils.rest.BaseRestUtils;
+import org.openecomp.sdc.ci.tests.utils.rest.ProductRestUtils;
+import org.openecomp.sdc.ci.tests.utils.rest.ResponseParser;
+import org.openecomp.sdc.ci.tests.utils.validation.AuditValidationUtils;
+import org.openecomp.sdc.ci.tests.utils.validation.ProductValidationUtils;
+import org.openecomp.sdc.common.api.Constants;
+import org.testng.annotations.Test;
+
+public class ProductCreateWithValidationsTest extends ProductBaseTest {
+ @Rule
+ public static TestName name = new TestName();
+
+ public static String INITIAL_PRODUCT_VERSION = "0.1";
+ public static String CREATE_AUDIT_ACTION = "Create";
+ public String normalizedName;
+
+ public ProductCreateWithValidationsTest() {
+ super(name, ProductCreateWithValidationsTest.class.getName());
+ }
+
+ @Test
+ public void createProductSuccessValidation() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Product1");
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName()));
+ normalizedName = productReqDetails.getName().toLowerCase().replaceAll("\\s+", "");
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ ProductRestUtils.checkCreateResponse(createProduct);
+ String productUuid = ResponseParser.getUuidFromResponse(createProduct);
+ compareExpectedAndActualProducts(productReqDetails, createProduct);
+ Product expectedProduct = ResponseParser.parseToObjectUsingMapper(createProduct.getResponse(), Product.class);
+ RestResponse getProductRes = ProductRestUtils.getProduct(productReqDetails.getUniqueId(),
+ productManager1.getUserId());
+ ProductRestUtils.checkSuccess(getProductRes);
+ Product actualProduct = ResponseParser.parseToObjectUsingMapper(getProductRes.getResponse(), Product.class);
+ ProductValidationUtils.compareExpectedAndActualProducts(expectedProduct, actualProduct,
+ ComponentOperationEnum.GET_COMPONENT);
+ assertEquals(actualProduct.getIsActive(), new Boolean(false));
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.CREATED, Constants.EMPTY_STRING,
+ "0.1", null, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT, productUuid);
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductNotByPmUser() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Product1");
+ normalizedName = productReqDetails.getName().toLowerCase();
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productStrategistUser1);
+ assertEquals("Check response code ", BaseRestUtils.STATUS_CODE_RESTRICTED_OPERATION,
+ createProduct.getErrorCode().intValue());
+ Product expectedProduct = Convertor.constructFieldsForRespValidation(productReqDetails, INITIAL_PRODUCT_VERSION,
+ productStrategistUser1);
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productStrategistUser1, ActionStatus.RESTRICTED_OPERATION,
+ Constants.EMPTY_STRING, Constants.EMPTY_STRING, null, null, Constants.EMPTY_STRING);
+ constructFieldsForAuditValidation.setCURR_VERSION("");
+ constructFieldsForAuditValidation.setCURR_STATE("");
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductNotByAsdcUser() throws Exception {
+ User nonAsdcUser = ElementFactory.getDefaultUser(UserRoleEnum.PRODUCT_MANAGER1);
+ nonAsdcUser.setUserId("bt750k");
+ nonAsdcUser.setFirstName(null);
+ nonAsdcUser.setLastName(null);
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Product1");
+ normalizedName = productReqDetails.getName().toLowerCase();
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, nonAsdcUser);
+ assertEquals("Check response code ", BaseRestUtils.STATUS_CODE_RESTRICTED_OPERATION,
+ createProduct.getErrorCode().intValue());
+ Product expectedProduct = Convertor.constructFieldsForRespValidation(productReqDetails, INITIAL_PRODUCT_VERSION,
+ nonAsdcUser);
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, nonAsdcUser, ActionStatus.RESTRICTED_OPERATION,
+ Constants.EMPTY_STRING, Constants.EMPTY_STRING, null, null, Constants.EMPTY_STRING);
+ constructFieldsForAuditValidation.setCURR_VERSION("");
+ constructFieldsForAuditValidation.setCURR_STATE("");
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductUserIdIsEmpty() throws Exception {
+ User nonAsdcUser = ElementFactory.getDefaultUser(UserRoleEnum.PRODUCT_MANAGER1);
+ nonAsdcUser.setUserId("");
+ nonAsdcUser.setFirstName(null);
+ nonAsdcUser.setLastName(null);
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Product1");
+ normalizedName = productReqDetails.getName().toLowerCase();
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, nonAsdcUser);
+ assertEquals("Check response code ", BaseRestUtils.STATUS_CODE_MISSING_INFORMATION,
+ createProduct.getErrorCode().intValue());
+ Product expectedProduct = Convertor.constructFieldsForRespValidation(productReqDetails, INITIAL_PRODUCT_VERSION,
+ nonAsdcUser);
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, nonAsdcUser, ActionStatus.MISSING_INFORMATION,
+ Constants.EMPTY_STRING, Constants.EMPTY_STRING, null, null, Constants.EMPTY_STRING);
+ constructFieldsForAuditValidation.setCURR_VERSION("");
+ constructFieldsForAuditValidation.setCURR_STATE("");
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductNameValidationLessThanMinCharacters() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Pro");
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ assertEquals("Check response code ", BaseRestUtils.STATUS_CODE_INVALID_CONTENT,
+ createProduct.getErrorCode().intValue());
+ Product expectedProduct = Convertor.constructFieldsForRespValidation(productReqDetails, "", productManager1);
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1,
+ ActionStatus.COMPONENT_ELEMENT_INVALID_NAME_LENGTH, Constants.EMPTY_STRING, Constants.EMPTY_STRING,
+ null, null, Constants.EMPTY_STRING, "Product", "abbreviated");
+ constructFieldsForAuditValidation.setCURR_VERSION("");
+ constructFieldsForAuditValidation.setCURR_STATE("");
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductNameValidationMaxLength() throws Exception {
+ // Max length = 25
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Qwertyuiop1234567890asdfA");
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName()));
+ normalizedName = productReqDetails.getName().toLowerCase();
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ ProductRestUtils.checkCreateResponse(createProduct);
+ String productUuid = ResponseParser.getUuidFromResponse(createProduct);
+ compareExpectedAndActualProducts(productReqDetails, createProduct);
+ Product expectedProduct = ResponseParser.parseToObjectUsingMapper(createProduct.getResponse(), Product.class);
+ RestResponse getProductRes = ProductRestUtils.getProduct(productReqDetails.getUniqueId(),
+ productManager1.getUserId());
+ ProductRestUtils.checkSuccess(getProductRes);
+ Product actualProduct = ResponseParser.parseToObjectUsingMapper(getProductRes.getResponse(), Product.class);
+ ProductValidationUtils.compareExpectedAndActualProducts(expectedProduct, actualProduct,
+ ComponentOperationEnum.GET_COMPONENT);
+ assertEquals(actualProduct.getIsActive(), new Boolean(false));
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.CREATED, Constants.EMPTY_STRING,
+ "0.1", null, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT, productUuid);
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductNameValidationExceedMaxLength() throws Exception {
+ // Max length = 25
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Qwertyuiop1234567890asdfAa");
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName()));
+ normalizedName = productReqDetails.getName().toLowerCase();
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ assertEquals("Check response code ", BaseRestUtils.STATUS_CODE_INVALID_CONTENT,
+ createProduct.getErrorCode().intValue());
+ Product expectedProduct = Convertor.constructFieldsForRespValidation(productReqDetails, "", productManager1);
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1,
+ ActionStatus.COMPONENT_ELEMENT_INVALID_NAME_LENGTH, Constants.EMPTY_STRING, Constants.EMPTY_STRING,
+ null, null, Constants.EMPTY_STRING, "Product", "abbreviated");
+ constructFieldsForAuditValidation.setCURR_VERSION("");
+ constructFieldsForAuditValidation.setCURR_STATE("");
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductNameValidationEmptyName() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("");
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName()));
+ normalizedName = productReqDetails.getName().toLowerCase();
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ assertEquals("Check response code ", BaseRestUtils.STATUS_CODE_INVALID_CONTENT,
+ createProduct.getErrorCode().intValue());
+ Product expectedProduct = Convertor.constructFieldsForRespValidation(productReqDetails, "", productManager1);
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.MISSING_ONE_OF_COMPONENT_NAMES,
+ Constants.EMPTY_STRING, Constants.EMPTY_STRING, null, null, Constants.EMPTY_STRING, "Product",
+ "abbreviated");
+ constructFieldsForAuditValidation.setCURR_VERSION("");
+ constructFieldsForAuditValidation.setCURR_STATE("");
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductNameAlreadyExist() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Product1");
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName()));
+ normalizedName = productReqDetails.getName().toLowerCase();
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ ProductRestUtils.checkCreateResponse(createProduct);
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName()));
+ normalizedName = productReqDetails.getName().toLowerCase();
+ // productReqDetails.setName("ProDuct1");
+ DbUtils.deleteFromEsDbByPattern("_all");
+ createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ assertEquals("Check response code ", BaseRestUtils.STATUS_CODE_ALREADY_EXISTS,
+ createProduct.getErrorCode().intValue());
+ productReqDetails.setVersion("0.1");
+ Product expectedProduct = Convertor.constructFieldsForRespValidation(productReqDetails, "", productManager1);
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.COMPONENT_NAME_ALREADY_EXIST,
+ Constants.EMPTY_STRING, Constants.EMPTY_STRING, null, null, Constants.EMPTY_STRING, "Product",
+ productReqDetails.getName());
+ constructFieldsForAuditValidation.setCURR_VERSION("0.1");
+ constructFieldsForAuditValidation.setCURR_STATE("");
+ constructFieldsForAuditValidation.setCURR_STATE("NOT_CERTIFIED_CHECKOUT");
+ constructFieldsForAuditValidation.setSERVICE_INSTANCE_ID(null);
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductNameValidationNameIsNull() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName(null);
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ assertEquals("Check response code ", BaseRestUtils.STATUS_CODE_INVALID_CONTENT,
+ createProduct.getErrorCode().intValue());
+ Product expectedProduct = Convertor.constructFieldsForRespValidation(productReqDetails, "", productManager1);
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.MISSING_ONE_OF_COMPONENT_NAMES,
+ Constants.EMPTY_STRING, Constants.EMPTY_STRING, null, null, Constants.EMPTY_STRING, "Product",
+ "abbreviated");
+ constructFieldsForAuditValidation.setCURR_VERSION("");
+ constructFieldsForAuditValidation.setCURR_STATE("");
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ // DE193857
+ @Test(enabled = false)
+ public void createProductNameValidationAllowedCharacters() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Ac_2@3:4& m=n+b-u.j-u'g#b"); // Bug @:&=+'#
+ normalizedName = "ac234mnbujugb";
+ String expectedProductName = "Ac_2@3:4& M=n+b-u.j-u'g#b";
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName()));
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ ProductRestUtils.checkCreateResponse(createProduct);
+ String productUuid = ResponseParser.getUuidFromResponse(createProduct);
+ productReqDetails.setName(expectedProductName);
+ productReqDetails.setName("Ac_2@3:4& M=n+b-u.j-u'g#b");
+ compareExpectedAndActualProducts(productReqDetails, createProduct);
+ Product expectedProduct = ResponseParser.parseToObjectUsingMapper(createProduct.getResponse(), Product.class);
+ expectedProduct.setNormalizedName(normalizedName);
+ RestResponse getProductRes = ProductRestUtils.getProduct(productReqDetails.getUniqueId(),
+ productManager1.getUserId());
+ ProductRestUtils.checkSuccess(getProductRes);
+ Product actualProduct = ResponseParser.parseToObjectUsingMapper(getProductRes.getResponse(), Product.class);
+ ProductValidationUtils.compareExpectedAndActualProducts(expectedProduct, actualProduct,
+ ComponentOperationEnum.GET_COMPONENT);
+ assertEquals(actualProduct.getIsActive(), new Boolean(false));
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.CREATED, Constants.EMPTY_STRING,
+ "0.1", null, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT, productUuid);
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ // DE193857
+ @Test(enabled = false)
+ public void createProductNameValidationREmoveExtraNonAlphanumericChars() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Ac____222----333......asd");
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName()));
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ ProductRestUtils.checkCreateResponse(createProduct);
+ productReqDetails.setName("Ac_222-333.asd");
+ normalizedName = "ac222333asd";
+ String productUuid = ResponseParser.getUuidFromResponse(createProduct);
+ compareExpectedAndActualProducts(productReqDetails, createProduct);
+ Product expectedProduct = ResponseParser.parseToObjectUsingMapper(createProduct.getResponse(), Product.class);
+ RestResponse getProductRes = ProductRestUtils.getProduct(productReqDetails.getUniqueId(),
+ productManager1.getUserId());
+ ProductRestUtils.checkSuccess(getProductRes);
+ Product actualProduct = ResponseParser.parseToObjectUsingMapper(getProductRes.getResponse(), Product.class);
+ ProductValidationUtils.compareExpectedAndActualProducts(expectedProduct, actualProduct,
+ ComponentOperationEnum.GET_COMPONENT);
+ assertEquals(actualProduct.getIsActive(), new Boolean(false));
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.CREATED, Constants.EMPTY_STRING,
+ "0.1", null, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT, productUuid);
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductNameValidationNotAllowedCharacters() throws Exception {
+ ExpectedProductAudit constructFieldsForAuditValidation;
+ char invalidChars[] = { '~', '!', '%', '^', '*', '(', ')', '"', '{', '}', '[', ']', '?', '>', '<', '/', '|',
+ '\\', ',', '$' };
+ for (int i = 0; i < invalidChars.length; i++) {
+ DbUtils.deleteFromEsDbByPattern("_all");
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("abc" + invalidChars[i]);
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ assertEquals("Check response code ", BaseRestUtils.STATUS_CODE_INVALID_CONTENT,
+ createProduct.getErrorCode().intValue());
+ Product expectedProduct = Convertor.constructFieldsForRespValidation(productReqDetails, "",
+ productManager1);
+ constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(expectedProduct,
+ CREATE_AUDIT_ACTION, productManager1, ActionStatus.COMPONENT_ELEMENT_INVALID_NAME_FORMAT,
+ Constants.EMPTY_STRING, Constants.EMPTY_STRING, null, null, Constants.EMPTY_STRING, "Product",
+ "abbreviated");
+ constructFieldsForAuditValidation.setCURR_VERSION("");
+ constructFieldsForAuditValidation.setCURR_STATE("");
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+ }
+
+ @Test
+ public void createProductFullNameContainSpecialCharacters() throws Exception {
+ char invalidChars[] = { '~', '!', '%', '^', '*', '(', ')', '"', '{', '}', '[', ']', '?', '>', '<', '/', '|',
+ '\\', ',', '$' };
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ for (int i = 0; i < invalidChars.length; i++) {
+ DbUtils.deleteFromEsDbByPattern("_all");
+ productReqDetails.setFullName("abc" + invalidChars[i]);
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ assertEquals("Check response code ", BaseRestUtils.STATUS_CODE_CREATED,
+ createProduct.getErrorCode().intValue());
+ RestResponse deleteProduct = ProductRestUtils.deleteProduct(productReqDetails.getUniqueId(),
+ productManager1.getUserId());
+ assertEquals("Check response code ", BaseRestUtils.STATUS_CODE_SUCCESS,
+ deleteProduct.getErrorCode().intValue());
+ }
+ }
+
+ @Test(enabled = false)
+ public void createProductNameValidationRemoveSpaceFromBeginning() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName(" Qwertyuiop1234567890asdfA");
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName().trim()));
+ normalizedName = productReqDetails.getName().trim().toLowerCase();
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ ProductRestUtils.checkCreateResponse(createProduct);
+ String productUuid = ResponseParser.getUuidFromResponse(createProduct);
+ compareExpectedAndActualProducts(productReqDetails, createProduct);
+ Product expectedProduct = ResponseParser.parseToObjectUsingMapper(createProduct.getResponse(), Product.class);
+ RestResponse getProductRes = ProductRestUtils.getProduct(productReqDetails.getUniqueId(),
+ productManager1.getUserId());
+ ProductRestUtils.checkSuccess(getProductRes);
+ Product actualProduct = ResponseParser.parseToObjectUsingMapper(getProductRes.getResponse(), Product.class);
+ ProductValidationUtils.compareExpectedAndActualProducts(expectedProduct, actualProduct,
+ ComponentOperationEnum.GET_COMPONENT);
+ assertEquals(actualProduct.getIsActive(), new Boolean(false));
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.CREATED, Constants.EMPTY_STRING,
+ "0.1", null, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT, productUuid);
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test(enabled = false)
+ public void createProductNameValidationRemoveSpaceFromTheEnd() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Qwertyuiop1234567890asdfA ");
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName().trim()));
+ normalizedName = productReqDetails.getName().trim().toLowerCase();
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ ProductRestUtils.checkCreateResponse(createProduct);
+ String productUuid = ResponseParser.getUuidFromResponse(createProduct);
+ compareExpectedAndActualProducts(productReqDetails, createProduct);
+ Product expectedProduct = ResponseParser.parseToObjectUsingMapper(createProduct.getResponse(), Product.class);
+ RestResponse getProductRes = ProductRestUtils.getProduct(productReqDetails.getUniqueId(),
+ productManager1.getUserId());
+ ProductRestUtils.checkSuccess(getProductRes);
+ Product actualProduct = ResponseParser.parseToObjectUsingMapper(getProductRes.getResponse(), Product.class);
+ ProductValidationUtils.compareExpectedAndActualProducts(expectedProduct, actualProduct,
+ ComponentOperationEnum.GET_COMPONENT);
+ assertEquals(actualProduct.getIsActive(), new Boolean(false));
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.CREATED, Constants.EMPTY_STRING,
+ "0.1", null, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT, productUuid);
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductNameValidationStartWithNumber() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("1Qwert");
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName().trim()));
+ normalizedName = productReqDetails.getName().trim().toLowerCase();
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ ProductRestUtils.checkCreateResponse(createProduct);
+ String productUuid = ResponseParser.getUuidFromResponse(createProduct);
+ compareExpectedAndActualProducts(productReqDetails, createProduct);
+ Product expectedProduct = ResponseParser.parseToObjectUsingMapper(createProduct.getResponse(), Product.class);
+ RestResponse getProductRes = ProductRestUtils.getProduct(productReqDetails.getUniqueId(),
+ productManager1.getUserId());
+ ProductRestUtils.checkSuccess(getProductRes);
+ Product actualProduct = ResponseParser.parseToObjectUsingMapper(getProductRes.getResponse(), Product.class);
+ ProductValidationUtils.compareExpectedAndActualProducts(expectedProduct, actualProduct,
+ ComponentOperationEnum.GET_COMPONENT);
+ assertEquals(actualProduct.getIsActive(), new Boolean(false));
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.CREATED, Constants.EMPTY_STRING,
+ "0.1", null, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT, productUuid);
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductNameValidationStartWithNonAlphaNumeric() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("_Qwert");
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName().trim()));
+ normalizedName = productReqDetails.getName().trim().toLowerCase();
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ assertEquals("Check response code ", BaseRestUtils.STATUS_CODE_INVALID_CONTENT,
+ createProduct.getErrorCode().intValue());
+ Product expectedProduct = Convertor.constructFieldsForRespValidation(productReqDetails, "", productManager1);
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1,
+ ActionStatus.COMPONENT_ELEMENT_INVALID_NAME_FORMAT, Constants.EMPTY_STRING, Constants.EMPTY_STRING,
+ null, null, Constants.EMPTY_STRING, "Product", "abbreviated");
+ constructFieldsForAuditValidation.setCURR_VERSION("");
+ constructFieldsForAuditValidation.setCURR_STATE("");
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductNameValidationFirstLetterOfKeyWordsCapitalized() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Abba");
+ // productReqDetails.setTags(Arrays.asList("abba"));
+ normalizedName = productReqDetails.getName().toLowerCase().replaceAll("\\s+", "");
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ ProductRestUtils.checkCreateResponse(createProduct);
+ // productReqDetails.setName("Abba");
+ /*
+ * String actualNormalizedNameFromResponse =
+ * ResponseParser.getValueFromJsonResponse(createProduct.getResponse(),
+ * "normalizedName");
+ * assertTrue(actualNormalizedNameFromResponse.equals(normalizedName));
+ */
+ String productUuid = ResponseParser.getUuidFromResponse(createProduct);
+ compareExpectedAndActualProducts(productReqDetails, createProduct);
+ Product expectedProduct = ResponseParser.parseToObjectUsingMapper(createProduct.getResponse(), Product.class);
+ RestResponse getProductRes = ProductRestUtils.getProduct(productReqDetails.getUniqueId(),
+ productManager1.getUserId());
+ ProductRestUtils.checkSuccess(getProductRes);
+ Product actualProduct = ResponseParser.parseToObjectUsingMapper(getProductRes.getResponse(), Product.class);
+ ProductValidationUtils.compareExpectedAndActualProducts(expectedProduct, actualProduct,
+ ComponentOperationEnum.GET_COMPONENT);
+ assertEquals(actualProduct.getIsActive(), new Boolean(false));
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.CREATED, Constants.EMPTY_STRING,
+ "0.1", null, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT, productUuid);
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductFullNameValidationIsEmpty() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setFullName("");
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ assertEquals("Check response code ", BaseRestUtils.STATUS_CODE_INVALID_CONTENT,
+ createProduct.getErrorCode().intValue());
+ Product expectedProduct = Convertor.constructFieldsForRespValidation(productReqDetails, "", productManager1);
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.MISSING_ONE_OF_COMPONENT_NAMES,
+ Constants.EMPTY_STRING, Constants.EMPTY_STRING, null, null, Constants.EMPTY_STRING, "Product", "full");
+ constructFieldsForAuditValidation.setCURR_VERSION("");
+ constructFieldsForAuditValidation.setCURR_STATE("");
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductFullNameValidationIsNull() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setFullName("");
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ assertEquals("Check response code ", BaseRestUtils.STATUS_CODE_INVALID_CONTENT,
+ createProduct.getErrorCode().intValue());
+ Product expectedProduct = Convertor.constructFieldsForRespValidation(productReqDetails, "", productManager1);
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.MISSING_ONE_OF_COMPONENT_NAMES,
+ Constants.EMPTY_STRING, Constants.EMPTY_STRING, null, null, Constants.EMPTY_STRING, "Product", "full");
+ constructFieldsForAuditValidation.setCURR_VERSION("");
+ constructFieldsForAuditValidation.setCURR_STATE("");
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductFullNameLessThanMinLength() throws Exception {
+ // Min is 4 characters
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setFullName("abc");
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ assertEquals("Check response code ", BaseRestUtils.STATUS_CODE_INVALID_CONTENT,
+ createProduct.getErrorCode().intValue());
+ Product expectedProduct = Convertor.constructFieldsForRespValidation(productReqDetails, "", productManager1);
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1,
+ ActionStatus.COMPONENT_ELEMENT_INVALID_NAME_LENGTH, Constants.EMPTY_STRING, Constants.EMPTY_STRING,
+ null, null, Constants.EMPTY_STRING, "Product", "full");
+ constructFieldsForAuditValidation.setCURR_VERSION("");
+ constructFieldsForAuditValidation.setCURR_STATE("");
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductFullNameHasMinLength() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Abba");
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName()));
+ normalizedName = productReqDetails.getName().toLowerCase().replaceAll("\\s+", "");
+ productReqDetails.setFullName("abcd");
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ ProductRestUtils.checkCreateResponse(createProduct);
+ String productUuid = ResponseParser.getUuidFromResponse(createProduct);
+ compareExpectedAndActualProducts(productReqDetails, createProduct);
+ Product expectedProduct = ResponseParser.parseToObjectUsingMapper(createProduct.getResponse(), Product.class);
+ RestResponse getProductRes = ProductRestUtils.getProduct(productReqDetails.getUniqueId(),
+ productManager1.getUserId());
+ ProductRestUtils.checkSuccess(getProductRes);
+ Product actualProduct = ResponseParser.parseToObjectUsingMapper(getProductRes.getResponse(), Product.class);
+ ProductValidationUtils.compareExpectedAndActualProducts(expectedProduct, actualProduct,
+ ComponentOperationEnum.GET_COMPONENT);
+ assertEquals(actualProduct.getIsActive(), new Boolean(false));
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.CREATED, Constants.EMPTY_STRING,
+ "0.1", null, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT, productUuid);
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductFullNameHasMaxLength() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Abba");
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName()));
+ normalizedName = productReqDetails.getName().toLowerCase().replaceAll("\\s+", "");
+ productReqDetails.setFullName(
+ "Abba1234567890asdfghjk l123zxcvbnm432adfghjkl_-.123Abba1234567890asdfghjkl23zxcvbnm432asdfghjkl_-.12");
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ ProductRestUtils.checkCreateResponse(createProduct);
+ String productUuid = ResponseParser.getUuidFromResponse(createProduct);
+ compareExpectedAndActualProducts(productReqDetails, createProduct);
+ Product expectedProduct = ResponseParser.parseToObjectUsingMapper(createProduct.getResponse(), Product.class);
+ RestResponse getProductRes = ProductRestUtils.getProduct(productReqDetails.getUniqueId(),
+ productManager1.getUserId());
+ ProductRestUtils.checkSuccess(getProductRes);
+ Product actualProduct = ResponseParser.parseToObjectUsingMapper(getProductRes.getResponse(), Product.class);
+ ProductValidationUtils.compareExpectedAndActualProducts(expectedProduct, actualProduct,
+ ComponentOperationEnum.GET_COMPONENT);
+ assertEquals(actualProduct.getIsActive(), new Boolean(false));
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.CREATED, Constants.EMPTY_STRING,
+ "0.1", null, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT, productUuid);
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductFullNameExceedMaxLength() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Abba");
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName()));
+ normalizedName = productReqDetails.getName().toLowerCase().replaceAll("\\s+", "");
+ productReqDetails.setFullName(
+ "Abba1234567890asdfghjk l123zxcvbnm432adfghjkl_-.123Abba1234567890asdfghjkl23zxcvbnm432asdfghjkl_-.123");
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ assertEquals("Check response code ", BaseRestUtils.STATUS_CODE_INVALID_CONTENT,
+ createProduct.getErrorCode().intValue());
+ Product expectedProduct = Convertor.constructFieldsForRespValidation(productReqDetails, "", productManager1);
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1,
+ ActionStatus.COMPONENT_ELEMENT_INVALID_NAME_LENGTH, Constants.EMPTY_STRING, Constants.EMPTY_STRING,
+ null, null, Constants.EMPTY_STRING, "Product", "full");
+ constructFieldsForAuditValidation.setCURR_VERSION("");
+ constructFieldsForAuditValidation.setCURR_STATE("");
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductFullNameRemoveExtraSpaces() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Abba");
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName()));
+ normalizedName = productReqDetails.getName().toLowerCase().replaceAll("\\s+", "");
+ productReqDetails.setFullName("Abbaaa a1");
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ ProductRestUtils.checkCreateResponse(createProduct);
+ productReqDetails.setFullName("Abbaaa a1");
+ String productUuid = ResponseParser.getUuidFromResponse(createProduct);
+ compareExpectedAndActualProducts(productReqDetails, createProduct);
+ Product expectedProduct = ResponseParser.parseToObjectUsingMapper(createProduct.getResponse(), Product.class);
+ RestResponse getProductRes = ProductRestUtils.getProduct(productReqDetails.getUniqueId(),
+ productManager1.getUserId());
+ ProductRestUtils.checkSuccess(getProductRes);
+ Product actualProduct = ResponseParser.parseToObjectUsingMapper(getProductRes.getResponse(), Product.class);
+ ProductValidationUtils.compareExpectedAndActualProducts(expectedProduct, actualProduct,
+ ComponentOperationEnum.GET_COMPONENT);
+ assertEquals(actualProduct.getIsActive(), new Boolean(false));
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.CREATED, Constants.EMPTY_STRING,
+ "0.1", null, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT, productUuid);
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductDescriptionValidationIsEmpty() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setDescription("");
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ assertEquals("Check response code ", BaseRestUtils.STATUS_CODE_INVALID_CONTENT,
+ createProduct.getErrorCode().intValue());
+ Product expectedProduct = Convertor.constructFieldsForRespValidation(productReqDetails, "", productManager1);
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.COMPONENT_MISSING_DESCRIPTION,
+ Constants.EMPTY_STRING, Constants.EMPTY_STRING, null, null, Constants.EMPTY_STRING, "Product");
+ constructFieldsForAuditValidation.setCURR_VERSION("");
+ constructFieldsForAuditValidation.setCURR_STATE("");
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductDescriptionValidationIsNull() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setDescription(null);
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ assertEquals("Check response code ", BaseRestUtils.STATUS_CODE_INVALID_CONTENT,
+ createProduct.getErrorCode().intValue());
+ Product expectedProduct = Convertor.constructFieldsForRespValidation(productReqDetails, "", productManager1);
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.COMPONENT_MISSING_DESCRIPTION,
+ Constants.EMPTY_STRING, Constants.EMPTY_STRING, null, null, Constants.EMPTY_STRING, "Product");
+ constructFieldsForAuditValidation.setCURR_VERSION("");
+ constructFieldsForAuditValidation.setCURR_STATE("");
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductDescriptionValidCharacters01() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Abba");
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName()));
+ normalizedName = productReqDetails.getName().toLowerCase().replaceAll("\\s+", "");
+ productReqDetails.setDescription("qwertyuiopasdfghjklzxcvbnm1234567890<b>Bold<</b>");
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ ProductRestUtils.checkCreateResponse(createProduct);
+ productReqDetails.setDescription("qwertyuiopasdfghjklzxcvbnm1234567890Bold&lt;");
+ String productUuid = ResponseParser.getUuidFromResponse(createProduct);
+ compareExpectedAndActualProducts(productReqDetails, createProduct);
+ Product expectedProduct = ResponseParser.parseToObjectUsingMapper(createProduct.getResponse(), Product.class);
+ RestResponse getProductRes = ProductRestUtils.getProduct(productReqDetails.getUniqueId(),
+ productManager1.getUserId());
+ ProductRestUtils.checkSuccess(getProductRes);
+ Product actualProduct = ResponseParser.parseToObjectUsingMapper(getProductRes.getResponse(), Product.class);
+ ProductValidationUtils.compareExpectedAndActualProducts(expectedProduct, actualProduct,
+ ComponentOperationEnum.GET_COMPONENT);
+ assertEquals(actualProduct.getIsActive(), new Boolean(false));
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.CREATED, Constants.EMPTY_STRING,
+ "0.1", null, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT, productUuid);
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductDescriptionValidCharacters02() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Abba");
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName()));
+ normalizedName = productReqDetails.getName().toLowerCase().replaceAll("\\s+", "");
+ productReqDetails.setDescription("~!@#$%^&*()_+<>?qwertyuiopasdfghjklzxcvbnm1234567890#");
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ ProductRestUtils.checkCreateResponse(createProduct);
+ productReqDetails.setDescription("~!@#$%^&amp;*()_+&lt;&gt;?qwertyuiopasdfghjklzxcvbnm1234567890#");
+ String productUuid = ResponseParser.getUuidFromResponse(createProduct);
+ compareExpectedAndActualProducts(productReqDetails, createProduct);
+ Product expectedProduct = ResponseParser.parseToObjectUsingMapper(createProduct.getResponse(), Product.class);
+ RestResponse getProductRes = ProductRestUtils.getProduct(productReqDetails.getUniqueId(),
+ productManager1.getUserId());
+ ProductRestUtils.checkSuccess(getProductRes);
+ Product actualProduct = ResponseParser.parseToObjectUsingMapper(getProductRes.getResponse(), Product.class);
+ ProductValidationUtils.compareExpectedAndActualProducts(expectedProduct, actualProduct,
+ ComponentOperationEnum.GET_COMPONENT);
+ assertEquals(actualProduct.getIsActive(), new Boolean(false));
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.CREATED, Constants.EMPTY_STRING,
+ "0.1", null, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT, productUuid);
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductDescriptionInValidCharacters() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Abba");
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName()));
+ normalizedName = productReqDetails.getName().toLowerCase().replaceAll("\\s+", "");
+ productReqDetails.setDescription("מה");
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ assertEquals("Check response code ", BaseRestUtils.STATUS_CODE_INVALID_CONTENT,
+ createProduct.getErrorCode().intValue());
+ Product expectedProduct = Convertor.constructFieldsForRespValidation(productReqDetails, "", productManager1);
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.COMPONENT_INVALID_DESCRIPTION,
+ Constants.EMPTY_STRING, Constants.EMPTY_STRING, null, null, Constants.EMPTY_STRING, "Product");
+ constructFieldsForAuditValidation.setCURR_VERSION("");
+ constructFieldsForAuditValidation.setCURR_STATE("");
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductDescriptionRemoveSpacesFromBeginning() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Abba");
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName()));
+ normalizedName = productReqDetails.getName().toLowerCase().replaceAll("\\s+", "");
+ productReqDetails.setDescription(" abcd12345");
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ ProductRestUtils.checkCreateResponse(createProduct);
+ productReqDetails.setDescription("abcd12345");
+ String productUuid = ResponseParser.getUuidFromResponse(createProduct);
+ compareExpectedAndActualProducts(productReqDetails, createProduct);
+ Product expectedProduct = ResponseParser.parseToObjectUsingMapper(createProduct.getResponse(), Product.class);
+ RestResponse getProductRes = ProductRestUtils.getProduct(productReqDetails.getUniqueId(),
+ productManager1.getUserId());
+ ProductRestUtils.checkSuccess(getProductRes);
+ Product actualProduct = ResponseParser.parseToObjectUsingMapper(getProductRes.getResponse(), Product.class);
+ ProductValidationUtils.compareExpectedAndActualProducts(expectedProduct, actualProduct,
+ ComponentOperationEnum.GET_COMPONENT);
+ assertEquals(actualProduct.getIsActive(), new Boolean(false));
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.CREATED, Constants.EMPTY_STRING,
+ "0.1", null, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT, productUuid);
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductDescriptionRemoveSpacesFromTheEnd() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Abba");
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName()));
+ normalizedName = productReqDetails.getName().toLowerCase().replaceAll("\\s+", "");
+ productReqDetails.setDescription("abcd 12345 xcvb ");
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ ProductRestUtils.checkCreateResponse(createProduct);
+ productReqDetails.setDescription("abcd 12345 xcvb");
+ String productUuid = ResponseParser.getUuidFromResponse(createProduct);
+ compareExpectedAndActualProducts(productReqDetails, createProduct);
+ Product expectedProduct = ResponseParser.parseToObjectUsingMapper(createProduct.getResponse(), Product.class);
+ RestResponse getProductRes = ProductRestUtils.getProduct(productReqDetails.getUniqueId(),
+ productManager1.getUserId());
+ ProductRestUtils.checkSuccess(getProductRes);
+ Product actualProduct = ResponseParser.parseToObjectUsingMapper(getProductRes.getResponse(), Product.class);
+ ProductValidationUtils.compareExpectedAndActualProducts(expectedProduct, actualProduct,
+ ComponentOperationEnum.GET_COMPONENT);
+ assertEquals(actualProduct.getIsActive(), new Boolean(false));
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.CREATED, Constants.EMPTY_STRING,
+ "0.1", null, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT, productUuid);
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductDescriptionMaxLength() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Abba");
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName()));
+ normalizedName = productReqDetails.getName().toLowerCase().replaceAll("\\s+", "");
+ productReqDetails.setDescription(
+ "Abba1234567890asdfghjkl123zxcvbnm432asdfghjkl_-.123Abba1234567890asdfghjkl23zxcvbnm432asdfghjkl_-.12Abba1234567890asdfghjkl123zxcvbnm432asdfghjkl_-.123Abba1234567890asdfghjkl23zxcvbnm432asdfghjkl_-.12Abba1234567890asdfghjkl123zxcvbnm432asdfghjkl_-.123Abba1234567890asdfghjkl23zxcvbnm432asdfghjkl_-.12Abba1234567890asdfghjkl123zxcvbnm432asdfghjkl_-.123Abba1234567890asdfghjkl23zxcvbnm432asdfghjkl_-.12Abba1234567890asdfghjkl123zxcvbnm432asdfghjkl_-.123Abba1234567890asdfghjkl23zxcvbnm432asdfghjkl_-.12Abba1234567890asdfghjkl123zxcvbnm432asdfghjkl_-.123Abba1234567890asdfghjkl23zxcvbnm432asdfghjkl_-.12Abba1234567890asdfghjkl123zxcvbnm432asdfghjkl_-.123Abba1234567890asdfghjkl23zxcvbnm432asdfghjkl_-.12Abba1234567890asdfghjkl123zxcvbnm432asdfghjkl_-.123Abba1234567890asdfghjkl23zxcvbnm432asdfghjkl_-.12Abba1234567890asdfghjkl123zxcvbnm432asdfghjkl_-.123Abba1234567890asdfghjkl23zxcvbnm432asdfghjkl_-.12Abba1234567890asdfghjkl123zxcvbnm432asdfghjkl_-.123Abba1234567890asdfghjkl23zxcvbnm432asdfghjkl_-.12asdfghjklzxcvbnmqwertyui");
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ ProductRestUtils.checkCreateResponse(createProduct);
+ String productUuid = ResponseParser.getUuidFromResponse(createProduct);
+ compareExpectedAndActualProducts(productReqDetails, createProduct);
+ Product expectedProduct = ResponseParser.parseToObjectUsingMapper(createProduct.getResponse(), Product.class);
+ RestResponse getProductRes = ProductRestUtils.getProduct(productReqDetails.getUniqueId(),
+ productManager1.getUserId());
+ ProductRestUtils.checkSuccess(getProductRes);
+ Product actualProduct = ResponseParser.parseToObjectUsingMapper(getProductRes.getResponse(), Product.class);
+ ProductValidationUtils.compareExpectedAndActualProducts(expectedProduct, actualProduct,
+ ComponentOperationEnum.GET_COMPONENT);
+ assertEquals(actualProduct.getIsActive(), new Boolean(false));
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.CREATED, Constants.EMPTY_STRING,
+ "0.1", null, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT, productUuid);
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductDescriptionExceedMaxLength() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Abba");
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName()));
+ normalizedName = productReqDetails.getName().toLowerCase().replaceAll("\\s+", "");
+ productReqDetails.setDescription(
+ "Abxba1234567890asdfghjkl123zxcvbnm432asdfghjkl_-.123Abba1234567890asdfghjkl23zxcvbnm432asdfghjkl_-.12Abba1234567890asdfghjkl123zxcvbnm432asdfghjkl_-.123Abba1234567890asdfghjkl23zxcvbnm432asdfghjkl_-.12Abba1234567890asdfghjkl123zxcvbnm432asdfghjkl_-.123Abba1234567890asdfghjkl23zxcvbnm432asdfghjkl_-.12Abba1234567890asdfghjkl123zxcvbnm432asdfghjkl_-.123Abba1234567890asdfghjkl23zxcvbnm432asdfghjkl_-.12Abba1234567890asdfghjkl123zxcvbnm432asdfghjkl_-.123Abba1234567890asdfghjkl23zxcvbnm432asdfghjkl_-.12Abba1234567890asdfghjkl123zxcvbnm432asdfghjkl_-.123Abba1234567890asdfghjkl23zxcvbnm432asdfghjkl_-.12Abba1234567890asdfghjkl123zxcvbnm432asdfghjkl_-.123Abba1234567890asdfghjkl23zxcvbnm432asdfghjkl_-.12Abba1234567890asdfghjkl123zxcvbnm432asdfghjkl_-.123Abba1234567890asdfghjkl23zxcvbnm432asdfghjkl_-.12Abba1234567890asdfghjkl123zxcvbnm432asdfghjkl_-.123Abba1234567890asdfghjkl23zxcvbnm432asdfghjkl_-.12Abba1234567890asdfghjkl123zxcvbnm432asdfghjkl_-.123Abba1234567890asdfghjkl23zxcvbnm432asdfghjkl_-.12asdfghjklzxcvbnmqwertyui");
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ assertEquals("Check response code ", BaseRestUtils.STATUS_CODE_INVALID_CONTENT,
+ createProduct.getErrorCode().intValue());
+ Product expectedProduct = Convertor.constructFieldsForRespValidation(productReqDetails, "", productManager1);
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.COMPONENT_DESCRIPTION_EXCEEDS_LIMIT,
+ Constants.EMPTY_STRING, Constants.EMPTY_STRING, null, null, Constants.EMPTY_STRING, "Product", "1024");
+ constructFieldsForAuditValidation.setCURR_VERSION("");
+ constructFieldsForAuditValidation.setCURR_STATE("");
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductTagIsEmpty() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Product");
+ productReqDetails.setTags(Arrays.asList(""));
+ normalizedName = productReqDetails.getName().toLowerCase().replaceAll("\\s+", "");
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ assertEquals("Check response code ", BaseRestUtils.STATUS_CODE_INVALID_CONTENT,
+ createProduct.getErrorCode().intValue());
+ Product expectedProduct = Convertor.constructFieldsForRespValidation(productReqDetails, "", productManager1);
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.INVALID_FIELD_FORMAT,
+ Constants.EMPTY_STRING, Constants.EMPTY_STRING, null, null, Constants.EMPTY_STRING, "Product", "tag");
+ constructFieldsForAuditValidation.setCURR_VERSION("");
+ constructFieldsForAuditValidation.setCURR_STATE("");
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ // DE192351
+ @Test
+ public void createProductTagValidationAllowedCharacters() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Product1"); // Bug @:&=+'#
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName(), "Acde2@3:4& m=n+b-u.j-u'g#b"));
+ normalizedName = productReqDetails.getName().toLowerCase();
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ ProductRestUtils.checkCreateResponse(createProduct);
+ String productUuid = ResponseParser.getUuidFromResponse(createProduct);
+ compareExpectedAndActualProducts(productReqDetails, createProduct);
+ Product expectedProduct = ResponseParser.parseToObjectUsingMapper(createProduct.getResponse(), Product.class);
+ RestResponse getProductRes = ProductRestUtils.getProduct(productReqDetails.getUniqueId(),
+ productManager1.getUserId());
+ ProductRestUtils.checkSuccess(getProductRes);
+ Product actualProduct = ResponseParser.parseToObjectUsingMapper(getProductRes.getResponse(), Product.class);
+ ProductValidationUtils.compareExpectedAndActualProducts(expectedProduct, actualProduct,
+ ComponentOperationEnum.GET_COMPONENT);
+ assertEquals(actualProduct.getIsActive(), new Boolean(false));
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.CREATED, Constants.EMPTY_STRING,
+ "0.1", null, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT, productUuid);
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductTagsNameValidationProductNameIsNotInTag() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Qwertyuiop1234567890asdfA");
+ productReqDetails.setTags(Arrays.asList("Abc"));
+ normalizedName = productReqDetails.getName().trim().toLowerCase();
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ assertEquals("Check response code ", BaseRestUtils.STATUS_CODE_INVALID_CONTENT,
+ createProduct.getErrorCode().intValue());
+ Product expectedProduct = Convertor.constructFieldsForRespValidation(productReqDetails, "", productManager1);
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.COMPONENT_INVALID_TAGS_NO_COMP_NAME,
+ Constants.EMPTY_STRING, Constants.EMPTY_STRING, null, null, Constants.EMPTY_STRING);
+ constructFieldsForAuditValidation.setCURR_VERSION("");
+ constructFieldsForAuditValidation.setCURR_STATE("");
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductSingleTagMaxLength() throws Exception {
+ // SingleTagMaxLength = 50
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Product1");
+ productReqDetails.setTags(
+ Arrays.asList(productReqDetails.getName(), "Abba1234567890asdfghjkl123zxcvbnm432asdfgh12345678"));
+ normalizedName = productReqDetails.getName().toLowerCase();
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ ProductRestUtils.checkCreateResponse(createProduct);
+ String productUuid = ResponseParser.getUuidFromResponse(createProduct);
+ compareExpectedAndActualProducts(productReqDetails, createProduct);
+ Product expectedProduct = ResponseParser.parseToObjectUsingMapper(createProduct.getResponse(), Product.class);
+ RestResponse getProductRes = ProductRestUtils.getProduct(productReqDetails.getUniqueId(),
+ productManager1.getUserId());
+ ProductRestUtils.checkSuccess(getProductRes);
+ Product actualProduct = ResponseParser.parseToObjectUsingMapper(getProductRes.getResponse(), Product.class);
+ ProductValidationUtils.compareExpectedAndActualProducts(expectedProduct, actualProduct,
+ ComponentOperationEnum.GET_COMPONENT);
+ assertEquals(actualProduct.getIsActive(), new Boolean(false));
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.CREATED, Constants.EMPTY_STRING,
+ "0.1", null, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT, productUuid);
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductSingleTagExceedMaxLength() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Product1"); // Bug @:&=+'#
+ productReqDetails.setTags(
+ Arrays.asList(productReqDetails.getName(), "Axbba1234567890asdfghjkl123zxcvbnm432asdfgh12345678"));
+ normalizedName = productReqDetails.getName().toLowerCase();
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ assertEquals("Check response code ", BaseRestUtils.STATUS_CODE_INVALID_CONTENT,
+ createProduct.getErrorCode().intValue());
+ Product expectedProduct = Convertor.constructFieldsForRespValidation(productReqDetails, "", productManager1);
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.COMPONENT_SINGLE_TAG_EXCEED_LIMIT,
+ Constants.EMPTY_STRING, Constants.EMPTY_STRING, null, null, Constants.EMPTY_STRING, "50");
+ constructFieldsForAuditValidation.setCURR_VERSION("");
+ constructFieldsForAuditValidation.setCURR_STATE("");
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductAllTagsMaxLength() throws Exception {
+ // AllTagsMaxLength = 1024
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Product1");
+ productReqDetails.setTags(
+ Arrays.asList(productReqDetails.getName(), "Abba1234567890asdfghjkl123zxcvbnm432asdfgh12345601",
+ "Abba1234567890asdfghjkl123zxcvbnm432asdfgh12345602",
+ "Abba1234567890asdfghjkl123zxcvbnm432asdfgh12345603",
+ "Abba1234567890asdfghjkl123zxcvbnm432asdfgh12345604",
+ "Abba1234567890asdfghjkl123zxcvbnm432asdfgh12345605",
+ "Abba1234567890asdfghjkl123zxcvbnm432asdfgh12345606",
+ "Abba1234567890asdfghjkl123zxcvbnm432asdfgh12345607",
+ "Abba1234567890asdfghjkl123zxcvbnm432asdfgh12345608",
+ "Abba1234567890asdfghjkl123zxcvbnm432asdfgh1234569",
+ "Abba1234567890asdfghjkl123zxcvbnm432asdfgh12345610",
+ "Abba1234567890asdfghjkl123zxcvbnm432asdfgh12345611",
+ "Abba1234567890asdfghjkl123zxcvbnm432asdfgh12345612",
+ "Abba1234567890asdfghjkl123zxcvbnm432asdfgh12345613",
+ "Abba1234567890asdfghjkl123zxcvbnm432asdfgh12345614",
+ "Abba1234567890asdfghjkl123zxcvbnm432asdfgh12345615",
+ "Abba1234567890asdfghjkl123zxcvbnm432asdfgh12345616",
+ "Abba1234567890asdfghjkl123zxcvbnm432asdfgh12345617",
+ "Abba1234567890asdfghjkl123zxcvbnm432asdfgh12345618",
+ "Abba1234567890asdfghjkl123zxcvbnm432asdfgh12345619",
+ "Abba1234567890asdfghjkl123zxcvbnm432asdfgh12345"));
+ normalizedName = productReqDetails.getName().toLowerCase();
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ ProductRestUtils.checkCreateResponse(createProduct);
+ String productUuid = ResponseParser.getUuidFromResponse(createProduct);
+ compareExpectedAndActualProducts(productReqDetails, createProduct);
+ Product expectedProduct = ResponseParser.parseToObjectUsingMapper(createProduct.getResponse(), Product.class);
+ RestResponse getProductRes = ProductRestUtils.getProduct(productReqDetails.getUniqueId(),
+ productManager1.getUserId());
+ ProductRestUtils.checkSuccess(getProductRes);
+ Product actualProduct = ResponseParser.parseToObjectUsingMapper(getProductRes.getResponse(), Product.class);
+ ProductValidationUtils.compareExpectedAndActualProducts(expectedProduct, actualProduct,
+ ComponentOperationEnum.GET_COMPONENT);
+ assertEquals(actualProduct.getIsActive(), new Boolean(false));
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.CREATED, Constants.EMPTY_STRING,
+ "0.1", null, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT, productUuid);
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductAllTagsExceedMaxLength() throws Exception {
+ // AllTagsMaxLength = 1024
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Product1");
+ productReqDetails.setTags(
+ Arrays.asList(productReqDetails.getName(), "Abba1234567890asdfghjkl123zxcvbnm432asdfgh12345601",
+ "Abba1234567890asdfghjkl123zxcvbnm432asdfgh12345602",
+ "Abba1234567890asdfghjkl123zxcvbnm432asdfgh12345603",
+ "Abba1234567890asdfghjkl123zxcvbnm432asdfgh12345604",
+ "Abba1234567890asdfghjkl123zxcvbnm432asdfgh12345605",
+ "Abba1234567890asdfghjkl123zxcvbnm432asdfgh12345606",
+ "Abba1234567890asdfghjkl123zxcvbnm432asdfgh12345607",
+ "Abba1234567890asdfghjkl123zxcvbnm432asdfgh12345608",
+ "Abba1234567890asdfghjkl123zxcvbnm432asdfgh1234569",
+ "Abba1234567890asdfghjkl123zxcvbnm432asdfgh12345610",
+ "Abba1234567890asdfghjkl123zxcvbnm432asdfgh12345611",
+ "Abba1234567890asdfghjkl123zxcvbnm432asdfgh12345612",
+ "Abba1234567890asdfghjkl123zxcvbnm432asdfgh12345613",
+ "Abba1234567890asdfghjkl123zxcvbnm432asdfgh12345614",
+ "Abba1234567890asdfghjkl123zxcvbnm432asdfgh12345615",
+ "Abba1234567890asdfghjkl123zxcvbnm432asdfgh12345616",
+ "Abba1234567890asdfghjkl123zxcvbnm432asdfgh12345617",
+ "Abba1234567890asdfghjkl123zxcvbnm432asdfgh12345618",
+ "Abba1234567890asdfghjkl123zxcvbnm432asdfgh12345619",
+ "Abba1234567890asdfghjkl123zxcvbnm432asdfgh123456"));
+ normalizedName = productReqDetails.getName().toLowerCase();
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ assertEquals("Check response code ", BaseRestUtils.STATUS_CODE_INVALID_CONTENT,
+ createProduct.getErrorCode().intValue());
+ Product expectedProduct = Convertor.constructFieldsForRespValidation(productReqDetails, "", productManager1);
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.COMPONENT_TAGS_EXCEED_LIMIT,
+ Constants.EMPTY_STRING, Constants.EMPTY_STRING, null, null, Constants.EMPTY_STRING, "1024");
+ constructFieldsForAuditValidation.setCURR_VERSION("");
+ constructFieldsForAuditValidation.setCURR_STATE("");
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductDuplicateTagRemoved() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Product1"); // Bug @:&=+'#
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName(), productReqDetails.getName()));
+ normalizedName = productReqDetails.getName().toLowerCase();
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ ProductRestUtils.checkCreateResponse(createProduct);
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName()));
+ String productUuid = ResponseParser.getUuidFromResponse(createProduct);
+ compareExpectedAndActualProducts(productReqDetails, createProduct);
+ Product expectedProduct = ResponseParser.parseToObjectUsingMapper(createProduct.getResponse(), Product.class);
+ RestResponse getProductRes = ProductRestUtils.getProduct(productReqDetails.getUniqueId(),
+ productManager1.getUserId());
+ ProductRestUtils.checkSuccess(getProductRes);
+ Product actualProduct = ResponseParser.parseToObjectUsingMapper(getProductRes.getResponse(), Product.class);
+ ProductValidationUtils.compareExpectedAndActualProducts(expectedProduct, actualProduct,
+ ComponentOperationEnum.GET_COMPONENT);
+ assertEquals(actualProduct.getIsActive(), new Boolean(false));
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.CREATED, Constants.EMPTY_STRING,
+ "0.1", null, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT, productUuid);
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductContactsIsEmpty() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Product1"); // Bug @:&=+'#
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName()));
+ normalizedName = productReqDetails.getName().toLowerCase();
+ productReqDetails.setContacts(Arrays.asList(""));
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ assertEquals("Check response code ", BaseRestUtils.STATUS_CODE_INVALID_CONTENT,
+ createProduct.getErrorCode().intValue());
+ Product expectedProduct = Convertor.constructFieldsForRespValidation(productReqDetails, "", productManager1);
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.COMPONENT_INVALID_CONTACT,
+ Constants.EMPTY_STRING, Constants.EMPTY_STRING, null, null, Constants.EMPTY_STRING, "Product");
+ constructFieldsForAuditValidation.setCURR_VERSION("");
+ constructFieldsForAuditValidation.setCURR_STATE("");
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductContactsInvalidFormat() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Product1"); // Bug @:&=+'#
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName()));
+ normalizedName = productReqDetails.getName().toLowerCase();
+ productReqDetails.setContacts(Arrays.asList("bt750345"));
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ assertEquals("Check response code ", BaseRestUtils.STATUS_CODE_INVALID_CONTENT,
+ createProduct.getErrorCode().intValue());
+ Product expectedProduct = Convertor.constructFieldsForRespValidation(productReqDetails, "", productManager1);
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.COMPONENT_INVALID_CONTACT,
+ Constants.EMPTY_STRING, Constants.EMPTY_STRING, null, null, Constants.EMPTY_STRING, "Product");
+ constructFieldsForAuditValidation.setCURR_VERSION("");
+ constructFieldsForAuditValidation.setCURR_STATE("");
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductConvertContactsToLowerCase() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Product1"); // Bug @:&=+'#
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName()));
+ normalizedName = productReqDetails.getName().toLowerCase();
+ productReqDetails.setContacts(Arrays.asList(productManager1.getUserId().toUpperCase()));
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ ProductRestUtils.checkCreateResponse(createProduct);
+ productReqDetails.setContacts(Arrays.asList(productManager1.getUserId().toLowerCase()));
+ String productUuid = ResponseParser.getUuidFromResponse(createProduct);
+ compareExpectedAndActualProducts(productReqDetails, createProduct);
+ Product expectedProduct = ResponseParser.parseToObjectUsingMapper(createProduct.getResponse(), Product.class);
+ RestResponse getProductRes = ProductRestUtils.getProduct(productReqDetails.getUniqueId(),
+ productManager1.getUserId());
+ ProductRestUtils.checkSuccess(getProductRes);
+ Product actualProduct = ResponseParser.parseToObjectUsingMapper(getProductRes.getResponse(), Product.class);
+ ProductValidationUtils.compareExpectedAndActualProducts(expectedProduct, actualProduct,
+ ComponentOperationEnum.GET_COMPONENT);
+ assertEquals(actualProduct.getIsActive(), new Boolean(false));
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.CREATED, Constants.EMPTY_STRING,
+ "0.1", null, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT, productUuid);
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductContactsDoexNotContainTheProductCreator() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Product1"); // Bug @:&=+'#
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName()));
+ normalizedName = productReqDetails.getName().toLowerCase();
+ productReqDetails.setContacts(Arrays.asList(productManager2.getUserId()));
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ ProductRestUtils.checkCreateResponse(createProduct);
+ productReqDetails.setContacts(Arrays.asList(productManager2.getUserId(), productManager1.getUserId()));
+ String productUuid = ResponseParser.getUuidFromResponse(createProduct);
+ compareExpectedAndActualProducts(productReqDetails, createProduct);
+ Product expectedProduct = ResponseParser.parseToObjectUsingMapper(createProduct.getResponse(), Product.class);
+ RestResponse getProductRes = ProductRestUtils.getProduct(productReqDetails.getUniqueId(),
+ productManager1.getUserId());
+ ProductRestUtils.checkSuccess(getProductRes);
+ Product actualProduct = ResponseParser.parseToObjectUsingMapper(getProductRes.getResponse(), Product.class);
+ ProductValidationUtils.compareExpectedAndActualProducts(expectedProduct, actualProduct,
+ ComponentOperationEnum.GET_COMPONENT);
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.CREATED, Constants.EMPTY_STRING,
+ "0.1", null, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT, productUuid);
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductContactsNotAllowedAsdcUsers() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Product1"); // Bug @:&=+'#
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName()));
+ normalizedName = productReqDetails.getName().toLowerCase();
+ productReqDetails.setContacts(Arrays.asList(designerUser.getUserId()));
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ assertEquals("Check response code ", BaseRestUtils.STATUS_CODE_INVALID_CONTENT,
+ createProduct.getErrorCode().intValue());
+ Product expectedProduct = Convertor.constructFieldsForRespValidation(productReqDetails, "", productManager1);
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.INVALID_PRODUCT_CONTACT,
+ Constants.EMPTY_STRING, Constants.EMPTY_STRING, null, null, Constants.EMPTY_STRING,
+ designerUser.getUserId());
+ constructFieldsForAuditValidation.setCURR_VERSION("");
+ constructFieldsForAuditValidation.setCURR_STATE("");
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductContactsNotAsdcUser() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Product1"); // Bug @:&=+'#
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName()));
+ normalizedName = productReqDetails.getName().toLowerCase();
+ String nonAsdcUser = "bh1234";
+ productReqDetails.setContacts(Arrays.asList(nonAsdcUser));
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ assertEquals("Check response code ", BaseRestUtils.STATUS_CODE_INVALID_CONTENT,
+ createProduct.getErrorCode().intValue());
+ Product expectedProduct = Convertor.constructFieldsForRespValidation(productReqDetails, "", productManager1);
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.INVALID_PRODUCT_CONTACT,
+ Constants.EMPTY_STRING, Constants.EMPTY_STRING, null, null, Constants.EMPTY_STRING, nonAsdcUser);
+ constructFieldsForAuditValidation.setCURR_VERSION("");
+ constructFieldsForAuditValidation.setCURR_STATE("");
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductProjectCodeIsEmpty() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Product1");
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName()));
+ normalizedName = productReqDetails.getName().toLowerCase().replaceAll("\\s+", "");
+ productReqDetails.setProjectCode("");
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ assertEquals("Check response code ", BaseRestUtils.STATUS_CODE_INVALID_CONTENT,
+ createProduct.getErrorCode().intValue());
+ Product expectedProduct = Convertor.constructFieldsForRespValidation(productReqDetails, "", productManager1);
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.MISSING_PROJECT_CODE,
+ Constants.EMPTY_STRING, Constants.EMPTY_STRING, null, null, Constants.EMPTY_STRING);
+ constructFieldsForAuditValidation.setCURR_VERSION("");
+ constructFieldsForAuditValidation.setCURR_STATE("");
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductProjectCodeIsNull() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Product1");
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName()));
+ normalizedName = productReqDetails.getName().toLowerCase().replaceAll("\\s+", "");
+ productReqDetails.setProjectCode(null);
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ assertEquals("Check response code ", BaseRestUtils.STATUS_CODE_INVALID_CONTENT,
+ createProduct.getErrorCode().intValue());
+ Product expectedProduct = Convertor.constructFieldsForRespValidation(productReqDetails, "", productManager1);
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.MISSING_PROJECT_CODE,
+ Constants.EMPTY_STRING, Constants.EMPTY_STRING, null, null, Constants.EMPTY_STRING);
+ constructFieldsForAuditValidation.setCURR_VERSION("");
+ constructFieldsForAuditValidation.setCURR_STATE("");
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductProjectCodeIsNotNumeric() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Product1");
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName()));
+ normalizedName = productReqDetails.getName().toLowerCase().replaceAll("\\s+", "");
+ productReqDetails.setProjectCode("asdfgh");
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ assertEquals("Check response code ", BaseRestUtils.STATUS_CODE_INVALID_CONTENT,
+ createProduct.getErrorCode().intValue());
+ Product expectedProduct = Convertor.constructFieldsForRespValidation(productReqDetails, "", productManager1);
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.INVALID_PROJECT_CODE,
+ Constants.EMPTY_STRING, Constants.EMPTY_STRING, null, null, Constants.EMPTY_STRING);
+ constructFieldsForAuditValidation.setCURR_VERSION("");
+ constructFieldsForAuditValidation.setCURR_STATE("");
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductProjectCodeHasnMinCharacters() throws Exception {
+ // Min =5
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Product1");
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName()));
+ normalizedName = productReqDetails.getName().toLowerCase().replaceAll("\\s+", "");
+ productReqDetails.setProjectCode("12345");
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ ProductRestUtils.checkCreateResponse(createProduct);
+ String productUuid = ResponseParser.getUuidFromResponse(createProduct);
+ compareExpectedAndActualProducts(productReqDetails, createProduct);
+ Product expectedProduct = ResponseParser.parseToObjectUsingMapper(createProduct.getResponse(), Product.class);
+ RestResponse getProductRes = ProductRestUtils.getProduct(productReqDetails.getUniqueId(),
+ productManager1.getUserId());
+ ProductRestUtils.checkSuccess(getProductRes);
+ Product actualProduct = ResponseParser.parseToObjectUsingMapper(getProductRes.getResponse(), Product.class);
+ ProductValidationUtils.compareExpectedAndActualProducts(expectedProduct, actualProduct,
+ ComponentOperationEnum.GET_COMPONENT);
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.CREATED, Constants.EMPTY_STRING,
+ "0.1", null, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT, productUuid);
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductProjectCodeHasnMaxCharacters() throws Exception {
+ // Max =10
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Product1");
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName()));
+ normalizedName = productReqDetails.getName().toLowerCase().replaceAll("\\s+", "");
+ productReqDetails.setProjectCode("1234567890");
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ ProductRestUtils.checkCreateResponse(createProduct);
+ String productUuid = ResponseParser.getUuidFromResponse(createProduct);
+ compareExpectedAndActualProducts(productReqDetails, createProduct);
+ Product expectedProduct = ResponseParser.parseToObjectUsingMapper(createProduct.getResponse(), Product.class);
+ RestResponse getProductRes = ProductRestUtils.getProduct(productReqDetails.getUniqueId(),
+ productManager1.getUserId());
+ ProductRestUtils.checkSuccess(getProductRes);
+ Product actualProduct = ResponseParser.parseToObjectUsingMapper(getProductRes.getResponse(), Product.class);
+ ProductValidationUtils.compareExpectedAndActualProducts(expectedProduct, actualProduct,
+ ComponentOperationEnum.GET_COMPONENT);
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.CREATED, Constants.EMPTY_STRING,
+ "0.1", null, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT, productUuid);
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductProjectCodeExceedMaxCharacters() throws Exception {
+ // Max =10
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Product1");
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName()));
+ normalizedName = productReqDetails.getName().toLowerCase().replaceAll("\\s+", "");
+ productReqDetails.setProjectCode("12345678901");
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ assertEquals("Check response code ", BaseRestUtils.STATUS_CODE_INVALID_CONTENT,
+ createProduct.getErrorCode().intValue());
+ Product expectedProduct = Convertor.constructFieldsForRespValidation(productReqDetails, "", productManager1);
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.INVALID_PROJECT_CODE,
+ Constants.EMPTY_STRING, Constants.EMPTY_STRING, null, null, Constants.EMPTY_STRING);
+ constructFieldsForAuditValidation.setCURR_VERSION("");
+ constructFieldsForAuditValidation.setCURR_STATE("");
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductProjectCodeLessThanMinCharacters() throws Exception {
+ // Max =10
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Product1");
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName()));
+ normalizedName = productReqDetails.getName().toLowerCase().replaceAll("\\s+", "");
+ productReqDetails.setProjectCode("1234");
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ assertEquals("Check response code ", BaseRestUtils.STATUS_CODE_INVALID_CONTENT,
+ createProduct.getErrorCode().intValue());
+ Product expectedProduct = Convertor.constructFieldsForRespValidation(productReqDetails, "", productManager1);
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.INVALID_PROJECT_CODE,
+ Constants.EMPTY_STRING, Constants.EMPTY_STRING, null, null, Constants.EMPTY_STRING);
+ constructFieldsForAuditValidation.setCURR_VERSION("");
+ constructFieldsForAuditValidation.setCURR_STATE("");
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductIconIsEmpty() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Product1");
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName()));
+ normalizedName = productReqDetails.getName().toLowerCase().replaceAll("\\s+", "");
+ productReqDetails.setIcon("");
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ assertEquals("Check response code ", BaseRestUtils.STATUS_CODE_INVALID_CONTENT,
+ createProduct.getErrorCode().intValue());
+ Product expectedProduct = Convertor.constructFieldsForRespValidation(productReqDetails, "", productManager1);
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.COMPONENT_MISSING_ICON,
+ Constants.EMPTY_STRING, Constants.EMPTY_STRING, null, null, Constants.EMPTY_STRING, "Product");
+ constructFieldsForAuditValidation.setCURR_VERSION("");
+ constructFieldsForAuditValidation.setCURR_STATE("");
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductIconIsNull() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Product1");
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName()));
+ normalizedName = productReqDetails.getName().toLowerCase().replaceAll("\\s+", "");
+ productReqDetails.setIcon(null);
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ assertEquals("Check response code ", BaseRestUtils.STATUS_CODE_INVALID_CONTENT,
+ createProduct.getErrorCode().intValue());
+ Product expectedProduct = Convertor.constructFieldsForRespValidation(productReqDetails, "", productManager1);
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.COMPONENT_MISSING_ICON,
+ Constants.EMPTY_STRING, Constants.EMPTY_STRING, null, null, Constants.EMPTY_STRING, "Product");
+ constructFieldsForAuditValidation.setCURR_VERSION("");
+ constructFieldsForAuditValidation.setCURR_STATE("");
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductIconMaxLength() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Product1");
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName()));
+ normalizedName = productReqDetails.getName().toLowerCase().replaceAll("\\s+", "");
+ productReqDetails.setIcon("asdfghjklqwertyuiozxcvbfv");
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ ProductRestUtils.checkCreateResponse(createProduct);
+ String productUuid = ResponseParser.getUuidFromResponse(createProduct);
+ compareExpectedAndActualProducts(productReqDetails, createProduct);
+ Product expectedProduct = ResponseParser.parseToObjectUsingMapper(createProduct.getResponse(), Product.class);
+ RestResponse getProductRes = ProductRestUtils.getProduct(productReqDetails.getUniqueId(),
+ productManager1.getUserId());
+ ProductRestUtils.checkSuccess(getProductRes);
+ Product actualProduct = ResponseParser.parseToObjectUsingMapper(getProductRes.getResponse(), Product.class);
+ ProductValidationUtils.compareExpectedAndActualProducts(expectedProduct, actualProduct,
+ ComponentOperationEnum.GET_COMPONENT);
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.CREATED, Constants.EMPTY_STRING,
+ "0.1", null, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT, productUuid);
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductIconExceedMaxLength() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Product1");
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName()));
+ normalizedName = productReqDetails.getName().toLowerCase().replaceAll("\\s+", "");
+ productReqDetails.setIcon("asdfghjklqwertyuiozxcvbf12");
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ assertEquals("Check response code ", BaseRestUtils.STATUS_CODE_INVALID_CONTENT,
+ createProduct.getErrorCode().intValue());
+ Product expectedProduct = Convertor.constructFieldsForRespValidation(productReqDetails, "", productManager1);
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.COMPONENT_ICON_EXCEEDS_LIMIT,
+ Constants.EMPTY_STRING, Constants.EMPTY_STRING, null, null, Constants.EMPTY_STRING, "Product", "25");
+ constructFieldsForAuditValidation.setCURR_VERSION("");
+ constructFieldsForAuditValidation.setCURR_STATE("");
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductIconAllowedCharacters() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Product1");
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName()));
+ normalizedName = productReqDetails.getName().toLowerCase().replaceAll("\\s+", "");
+ productReqDetails.setIcon("a--s-fghjk_q__r1234567890");
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ ProductRestUtils.checkCreateResponse(createProduct);
+ String productUuid = ResponseParser.getUuidFromResponse(createProduct);
+ compareExpectedAndActualProducts(productReqDetails, createProduct);
+ Product expectedProduct = ResponseParser.parseToObjectUsingMapper(createProduct.getResponse(), Product.class);
+ RestResponse getProductRes = ProductRestUtils.getProduct(productReqDetails.getUniqueId(),
+ productManager1.getUserId());
+ ProductRestUtils.checkSuccess(getProductRes);
+ Product actualProduct = ResponseParser.parseToObjectUsingMapper(getProductRes.getResponse(), Product.class);
+ ProductValidationUtils.compareExpectedAndActualProducts(expectedProduct, actualProduct,
+ ComponentOperationEnum.GET_COMPONENT);
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.CREATED, Constants.EMPTY_STRING,
+ "0.1", null, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT, productUuid);
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductIconInValidCharacters() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Product1");
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName()));
+ normalizedName = productReqDetails.getName().toLowerCase().replaceAll("\\s+", "");
+ String icon = "asdfg";
+ char invalidChars[] = { '~', '!', '$', '%', '^', '*', '(', ')', '"', '{', '}', '[', ']', '?', '>', '<', '/',
+ '|', '\\', ',' };
+ RestResponse createProduct;
+ for (int i = 0; i < invalidChars.length; i++) {
+ productReqDetails.setIcon(icon + invalidChars[i]);
+ createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ assertEquals("Check response code ", BaseRestUtils.STATUS_CODE_INVALID_CONTENT,
+ createProduct.getErrorCode().intValue());
+ Product expectedProduct = Convertor.constructFieldsForRespValidation(productReqDetails, "",
+ productManager1);
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.COMPONENT_INVALID_ICON,
+ Constants.EMPTY_STRING, Constants.EMPTY_STRING, null, null, Constants.EMPTY_STRING, "Product");
+ constructFieldsForAuditValidation.setCURR_VERSION("");
+ constructFieldsForAuditValidation.setCURR_STATE("");
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+ }
+
+ @Test
+ public void createProductIsActiveisEmpty() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Product1");
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName()));
+ normalizedName = productReqDetails.getName().toLowerCase().replaceAll("\\s+", "");
+ productReqDetails.setActive("");
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ ProductRestUtils.checkCreateResponse(createProduct);
+ productReqDetails.setActive("false");
+ String productUuid = ResponseParser.getUuidFromResponse(createProduct);
+ compareExpectedAndActualProducts(productReqDetails, createProduct);
+ Product expectedProduct = ResponseParser.parseToObjectUsingMapper(createProduct.getResponse(), Product.class);
+ RestResponse getProductRes = ProductRestUtils.getProduct(productReqDetails.getUniqueId(),
+ productManager1.getUserId());
+ ProductRestUtils.checkSuccess(getProductRes);
+ Product actualProduct = ResponseParser.parseToObjectUsingMapper(getProductRes.getResponse(), Product.class);
+ ProductValidationUtils.compareExpectedAndActualProducts(expectedProduct, actualProduct,
+ ComponentOperationEnum.GET_COMPONENT);
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.CREATED, Constants.EMPTY_STRING,
+ "0.1", null, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT, productUuid);
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductIsActiveisNull() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Product1");
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName()));
+ normalizedName = productReqDetails.getName().toLowerCase().replaceAll("\\s+", "");
+ productReqDetails.setActive("");
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ ProductRestUtils.checkCreateResponse(createProduct);
+ productReqDetails.setActive("false");
+ String productUuid = ResponseParser.getUuidFromResponse(createProduct);
+ compareExpectedAndActualProducts(productReqDetails, createProduct);
+ Product expectedProduct = ResponseParser.parseToObjectUsingMapper(createProduct.getResponse(), Product.class);
+ RestResponse getProductRes = ProductRestUtils.getProduct(productReqDetails.getUniqueId(),
+ productManager1.getUserId());
+ ProductRestUtils.checkSuccess(getProductRes);
+ Product actualProduct = ResponseParser.parseToObjectUsingMapper(getProductRes.getResponse(), Product.class);
+ ProductValidationUtils.compareExpectedAndActualProducts(expectedProduct, actualProduct,
+ ComponentOperationEnum.GET_COMPONENT);
+ assertEquals(actualProduct.getIsActive(), new Boolean(false));
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.CREATED, Constants.EMPTY_STRING,
+ "0.1", null, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT, productUuid);
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductIsActiveisFalse() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Product1");
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName()));
+ normalizedName = productReqDetails.getName().toLowerCase().replaceAll("\\s+", "");
+ productReqDetails.setActive("false");
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ ProductRestUtils.checkCreateResponse(createProduct);
+ String productUuid = ResponseParser.getUuidFromResponse(createProduct);
+ compareExpectedAndActualProducts(productReqDetails, createProduct);
+ Product expectedProduct = ResponseParser.parseToObjectUsingMapper(createProduct.getResponse(), Product.class);
+ RestResponse getProductRes = ProductRestUtils.getProduct(productReqDetails.getUniqueId(),
+ productManager1.getUserId());
+ ProductRestUtils.checkSuccess(getProductRes);
+ Product actualProduct = ResponseParser.parseToObjectUsingMapper(getProductRes.getResponse(), Product.class);
+ ProductValidationUtils.compareExpectedAndActualProducts(expectedProduct, actualProduct,
+ ComponentOperationEnum.GET_COMPONENT);
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.CREATED, Constants.EMPTY_STRING,
+ "0.1", null, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT, productUuid);
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductIsActiveisHasInvalidValue() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Product1");
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName()));
+ normalizedName = productReqDetails.getName().toLowerCase().replaceAll("\\s+", "");
+ productReqDetails.setActive("xfalse");
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ assertEquals("Check response code ", BaseRestUtils.STATUS_CODE_INVALID_CONTENT,
+ createProduct.getErrorCode().intValue());
+ Product expectedProduct = Convertor.constructFieldsForRespValidation(productReqDetails, "", productManager1);
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.INVALID_CONTENT,
+ Constants.EMPTY_STRING, Constants.EMPTY_STRING, null, null, Constants.EMPTY_STRING);
+ constructFieldsForAuditValidation.setCURR_VERSION("");
+ constructFieldsForAuditValidation.setCURR_STATE("");
+ constructFieldsForAuditValidation.setRESOURCE_NAME("");
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ @Test
+ public void createProductIsActiveisTrue() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Product1");
+ productReqDetails.setTags(Arrays.asList(productReqDetails.getName()));
+ normalizedName = productReqDetails.getName().toLowerCase().replaceAll("\\s+", "");
+ productReqDetails.setActive("true");
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ ProductRestUtils.checkCreateResponse(createProduct);
+ String productUuid = ResponseParser.getUuidFromResponse(createProduct);
+ compareExpectedAndActualProducts(productReqDetails, createProduct);
+ Product expectedProduct = ResponseParser.parseToObjectUsingMapper(createProduct.getResponse(), Product.class);
+ RestResponse getProductRes = ProductRestUtils.getProduct(productReqDetails.getUniqueId(),
+ productManager1.getUserId());
+ ProductRestUtils.checkSuccess(getProductRes);
+ Product actualProduct = ResponseParser.parseToObjectUsingMapper(getProductRes.getResponse(), Product.class);
+ ProductValidationUtils.compareExpectedAndActualProducts(expectedProduct, actualProduct,
+ ComponentOperationEnum.GET_COMPONENT);
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.CREATED, Constants.EMPTY_STRING,
+ "0.1", null, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT, productUuid);
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ //////////////////////////////////////////////
+ // DE192424
+ @Test
+ public void createProductNameValidationNormalizationNameWithSpaces() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setName("Abba Emma");
+ // productReqDetails.setName("abba emma");
+ // productReqDetails.setTags(Arrays.asList("abba emma"));
+ normalizedName = productReqDetails.getName().toLowerCase().replaceAll("\\s+", "");
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ ProductRestUtils.checkCreateResponse(createProduct);
+ String actualNormalizedNameFromResponse = ResponseParser.getValueFromJsonResponse(createProduct.getResponse(),
+ "normalizedName");
+ assertTrue(actualNormalizedNameFromResponse.equals(normalizedName));
+ // productReqDetails.setName("Abba Emma");
+ String productUuid = ResponseParser.getUuidFromResponse(createProduct);
+ compareExpectedAndActualProducts(productReqDetails, createProduct);
+ Product expectedProduct = ResponseParser.parseToObjectUsingMapper(createProduct.getResponse(), Product.class);
+ RestResponse getProductRes = ProductRestUtils.getProduct(productReqDetails.getUniqueId(),
+ productManager1.getUserId());
+ ProductRestUtils.checkSuccess(getProductRes);
+ Product actualProduct = ResponseParser.parseToObjectUsingMapper(getProductRes.getResponse(), Product.class);
+ ProductValidationUtils.compareExpectedAndActualProducts(expectedProduct, actualProduct,
+ ComponentOperationEnum.GET_COMPONENT);
+ assertEquals(actualProduct.getIsActive(), new Boolean(false));
+ ExpectedProductAudit constructFieldsForAuditValidation = Convertor.constructFieldsForAuditValidation(
+ expectedProduct, CREATE_AUDIT_ACTION, productManager1, ActionStatus.CREATED, Constants.EMPTY_STRING,
+ "0.1", null, LifecycleStateEnum.NOT_CERTIFIED_CHECKOUT, productUuid);
+ AuditValidationUtils.validateAuditProduct(constructFieldsForAuditValidation, CREATE_AUDIT_ACTION);
+ }
+
+ private void compareExpectedAndActualProducts(ProductReqDetails productReqDetails, RestResponse createProduct)
+ throws JSONException {
+ String productName = ResponseParser.getNameFromResponse(createProduct);
+ assertTrue(productReqDetails.getName().equals(productName));
+ String productIcon = ResponseParser.getValueFromJsonResponse(createProduct.getResponse(), "icon");
+ assertTrue(productReqDetails.getIcon().equals(productIcon));
+ String productFullName = ResponseParser.getValueFromJsonResponse(createProduct.getResponse(), "fullName");
+ assertTrue(productReqDetails.getFullName().equals(productFullName));
+ String productProjectCode = ResponseParser.getValueFromJsonResponse(createProduct.getResponse(), "projectCode");
+ assertTrue(productReqDetails.getProjectCode().equals(productProjectCode));
+ String productIsActive = ResponseParser.getValueFromJsonResponse(createProduct.getResponse(), "isActive");
+ String expectedIsActive = (productReqDetails.getActive() != null ? productReqDetails.getActive() : "false");
+ assertTrue(productIsActive.equals(expectedIsActive));
+ String productdescription = ResponseParser.getValueFromJsonResponse(createProduct.getResponse(), "description");
+ assertTrue(productReqDetails.getDescription().equals(productdescription));
+ String productNormalizedName = ResponseParser.getValueFromJsonResponse(createProduct.getResponse(),
+ "normalizedName");
+ assertTrue(normalizedName.equals(productNormalizedName));
+ String productContacts = ResponseParser.getValueFromJsonResponse(createProduct.getResponse(), "contacts");
+ JSONArray reciviedContacts = new JSONArray(productContacts);
+ String actualContact = null;
+ for (int i = 0; i < reciviedContacts.length(); i++) {
+ actualContact = reciviedContacts.getString(i);
+ assertEquals(productReqDetails.getContacts().get(i), actualContact);
+ }
+ String productTags = ResponseParser.getValueFromJsonResponse(createProduct.getResponse(), "tags");
+ JSONArray reciviedTages = new JSONArray(productTags);
+ String actualTag = null;
+ for (int i = 0; i < reciviedTages.length(); i++) {
+ actualTag = reciviedTages.getString(i);
+ assertEquals(productReqDetails.getTags().get(i), actualTag);
+ }
+ }
+
+ // END
+ ///////////////////////////////////////////////////////
+ @Test
+ public void createProductSuccessFlow() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ assertEquals("Check response code after create Product", BaseRestUtils.STATUS_CODE_CREATED,
+ createProduct.getErrorCode().intValue());
+
+ RestResponse getProductRes = ProductRestUtils.getProduct(productReqDetails.getUniqueId(),
+ productManager1.getUserId());
+ assertEquals("Check response code after getting created Product", BaseRestUtils.STATUS_CODE_SUCCESS,
+ getProductRes.getErrorCode().intValue());
+
+ Product expectedProduct = ResponseParser.parseToObjectUsingMapper(createProduct.getResponse(), Product.class);
+ Product actualProduct = ResponseParser.parseToObjectUsingMapper(getProductRes.getResponse(), Product.class);
+ ProductValidationUtils.compareExpectedAndActualProducts(expectedProduct, actualProduct,
+ ComponentOperationEnum.GET_COMPONENT);
+ assertEquals(actualProduct.getIsActive(), new Boolean(false));
+ }
+
+ @Test
+ public void createProductSetIsActive() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setActive("true");
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ assertEquals("Check response code after create Product", BaseRestUtils.STATUS_CODE_CREATED,
+ createProduct.getErrorCode().intValue());
+
+ RestResponse getProductRes = ProductRestUtils.getProduct(productReqDetails.getUniqueId(),
+ productManager1.getUserId());
+ assertEquals("Check response code after getting created Product", BaseRestUtils.STATUS_CODE_SUCCESS,
+ getProductRes.getErrorCode().intValue());
+
+ Product expectedProduct = ResponseParser.parseToObjectUsingMapper(createProduct.getResponse(), Product.class);
+ Product actualProduct = ResponseParser.parseToObjectUsingMapper(getProductRes.getResponse(), Product.class);
+ ProductValidationUtils.compareExpectedAndActualProducts(expectedProduct, actualProduct,
+ ComponentOperationEnum.GET_COMPONENT);
+ assertEquals(actualProduct.getIsActive(), new Boolean(true));
+ }
+
+ @Test
+ public void createProductNoIcon() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setIcon(null);
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ assertEquals("Check response code after create Product", BaseRestUtils.STATUS_CODE_MISSING_DATA,
+ createProduct.getErrorCode().intValue());
+
+ }
+
+ @Test
+ public void createProductNoProjectCode() throws Exception {
+ ProductReqDetails productReqDetails = ElementFactory.getDefaultProduct();
+ productReqDetails.setProjectCode(null);
+ RestResponse createProduct = ProductRestUtils.createProduct(productReqDetails, productManager1);
+ assertEquals("Check response code after create Product", BaseRestUtils.STATUS_CODE_MISSING_DATA,
+ createProduct.getErrorCode().intValue());
+
+ }
+
+}