Sync Integ to Master
[sdc.git] / ui-ci / src / main / java / org / openecomp / sdc / ci / tests / datatypes / CanvasManager.java
index b4f5002..910cc54 100644 (file)
 
 package org.openecomp.sdc.ci.tests.datatypes;
 
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Random;
-import java.util.UUID;
-import java.util.concurrent.TimeUnit;
-import java.util.stream.Collectors;
-
+import com.aventstack.extentreports.Status;
+import com.clearspring.analytics.util.Pair;
 import org.apache.commons.lang3.tuple.ImmutablePair;
 import org.openecomp.sdc.ci.tests.datatypes.DataTestIdEnum.LeftPanelCanvasItems;
 import org.openecomp.sdc.ci.tests.datatypes.enums.CircleSize;
@@ -40,9 +34,11 @@ import org.openqa.selenium.StaleElementReferenceException;
 import org.openqa.selenium.WebElement;
 import org.openqa.selenium.interactions.Actions;
 import org.testng.Assert;
+import org.testng.SkipException;
 
-import com.aventstack.extentreports.Status;
-import com.clearspring.analytics.util.Pair;
+import java.util.*;
+import java.util.concurrent.TimeUnit;
+import java.util.stream.Collectors;
 
 public final class CanvasManager {
        private Map<String, CanvasElement> canvasElements;
@@ -110,7 +106,7 @@ public final class CanvasManager {
                        actions.clickAndHold();
                        actions.release();
                        actions.perform();
-                       isKeepWaiting = GeneralUIUtils.getWebElementByTestID("selectedCompTitle").getText()
+                       isKeepWaiting = GeneralUIUtils.getWebElementByTestID(DataTestIdEnum.CompositionRightPanel.COMPONENT_TITLE.getValue()).getText()
                                        .equals(containerName);
                        sumOfWaiting += napPeriod;
                        if (sumOfWaiting > maxWait) {
@@ -131,6 +127,56 @@ public final class CanvasManager {
                ExtentTestActions.log(Status.INFO, String.format("Canvas element %s selected", canvasElement.getElementType()));
        }
 
+       public void openLinkPopupReqsCapsConnection(CanvasElement canvasElement)
+       {
+               ExtentTestActions.log(Status.INFO, "Open Link popup");
+               clickOnCanvasLink(canvasElement);
+               int x = canvasElement.getLocation().getLeft() + 30; // view button x delta
+               int y = canvasElement.getLocation().getRight() + 11; // view button y delta
+               clickOnCanvasPosition(x,y);
+               GeneralUIUtils.ultimateWait();
+       }
+       public void closeLinkPopupReqsCapsConnection()
+       {
+               GeneralUIUtils.clickOnElementByTestId("Cancel");
+               GeneralUIUtils.ultimateWait();
+       }
+
+       public void clickSaveOnLinkPopup()
+       {
+               ExtentTestActions.log(Status.INFO, "Click save on link popup");
+               GeneralUIUtils.clickOnElementByTestId("Save");
+               GeneralUIUtils.ultimateWait();
+       }
+
+       public void deleteLinkPopupReqsCapsConnection(CanvasElement canvasElement)
+       {
+               clickOnCanvasLink(canvasElement);
+               int x = canvasElement.getLocation().getLeft() + 30; // delete button x delta
+               int y = canvasElement.getLocation().getRight() + 30; // delete button x delta
+               clickOnCanvasPosition(x,y);
+       }
+
+       public void clickOnCanvasLink(CanvasElement canvasElement) {
+               actions.moveToElement(canvas, canvasElement.getLocation().left, canvasElement.getLocation().right);
+               actions.click().perform();
+               GeneralUIUtils.ultimateWait();
+       }
+
+       public void clickOnCanvasPosition(int x, int y) {
+
+               try {
+                       actions.moveToElement(canvas, x, y);
+                       actions.click();
+                       actions.perform();
+                       GeneralUIUtils.ultimateWait();
+               }
+               catch (Exception e)
+               {
+                       System.out.println(e);
+               }
+       }
+
        public void moveElementOnCanvas(CanvasElement canvasElement) throws Exception {
                moveElementOnCanvas(canvasElement, getFreePosition());
        }
@@ -182,6 +228,7 @@ public final class CanvasManager {
 
        private CanvasElement createElementOnCanvasWithoutDuration(String elementDataTestId) throws Exception {
                try {
+                       CompositionPage.searchForElement(elementDataTestId);
                        WebElement element = findClickElement(elementDataTestId);
                        ImmutablePair<Integer, Integer> freePosition = getFreePosition();
                        actions.moveToElement(element, 20, 20);
@@ -245,12 +292,12 @@ public final class CanvasManager {
        }
 
        private void selectReqAndCapAndConnect() throws Exception {
-               addFitstReqOrCapAndPressNext();
-               addFitstReqOrCapAndPressNext();
+               addFirstReqOrCapAndPressNext();
+               addFirstReqOrCapAndPressNext();
                linkMenuClickOnFinishButton();
        }
 
-       private void addFitstReqOrCapAndPressNext() throws Exception {
+       private void addFirstReqOrCapAndPressNext() throws Exception {
                addFirstReqOrCap();
                linkMenuClickOnNextButton();
        }
@@ -344,12 +391,35 @@ public final class CanvasManager {
         * Validate that instance was selected on right sidebar
         */
        public void validateInstanceSelected(CanvasElement canvasElement) {
-               long maxWait = 3000;
+               long maxWait = 5000;
+               long sumOfWaiting = 0;
+               long napPeriod = 200;
+               boolean isInstanceSelected;
+               do {
+                       isInstanceSelected = CompositionPage.getSelectedInstanceName().toLowerCase().contains(canvasElement.getElementType().toLowerCase());
+
+                       if (!isInstanceSelected) {
+                               try {
+                                       TimeUnit.MILLISECONDS.sleep(napPeriod);
+                               } catch (InterruptedException e) {
+                                       e.printStackTrace();
+                               }
+                       }
+
+                       sumOfWaiting += napPeriod;
+                       if (sumOfWaiting > maxWait) {
+                               throw new SkipException(String.format("Open bug 342260, can't select instance properly, waited for %s seconds", (int) (maxWait/1000)));
+                       }
+               } while (!isInstanceSelected);
+       }
+
+       public void validateLinkIsSelected() {
+               long maxWait = 5000;
                long sumOfWaiting = 0;
                long napPeriod = 200;
                boolean isInstanceSelected;
                do {
-                       isInstanceSelected = CompositionPage.getSelectedInstanceName().contains(canvasElement.getElementType());
+                       isInstanceSelected = GeneralUIUtils.isWebElementExistByClass("w-sdc-menu-item w-sdc-canvas-menu-item-view");
 
                        if (!isInstanceSelected) {
                                try {
@@ -361,7 +431,7 @@ public final class CanvasManager {
 
                        sumOfWaiting += napPeriod;
                        if (sumOfWaiting > maxWait) {
-                               Assert.fail(String.format("Can't select instance properly, waited for %s seconds", (int) (maxWait/1000)));
+                               Assert.fail(String.format("Can't select link properly, waited for %s seconds", (int) (maxWait/1000)));          
                        }
                } while (!isInstanceSelected);
        }
@@ -372,18 +442,27 @@ public final class CanvasManager {
         GeneralUIUtils.ultimateWait();
     }
 
-       private void selectTypeOfReqCap(String reqCapType)
+       private void selectTypeOfReqCap(String dataTestId, String reqCapType)
        {
-        GeneralUIUtils.getSelectList(reqCapType,DataTestIdEnum.LinkMenuItems.REQ_CAP_SELECT_DATA_TESTS_ID.getValue());
-        GeneralUIUtils.ultimateWait();
+        GeneralUIUtils.selectByValueTextContained(dataTestId, reqCapType);
        }
 
        public void linkElementsAndSelectCapReqTypeAndCapReqName(CanvasElement firstElement, CircleSize firstElementSize, CanvasElement secondElement, CircleSize secondElementSize, ConnectionWizardPopUpObject connectionWizardPopUpObject) throws Exception {
-        drawSimpleLink(firstElement, firstElementSize, secondElement, secondElementSize);
-        selectTypeOfReqCap(connectionWizardPopUpObject.getCapabilityTypeSecondItem());
-               addFitstReqOrCapAndPressNext();
+               SetupCDTest.getExtendTest().log(Status.INFO, String.format("Creating link between %s and %s", firstElement.getElementType(), secondElement.getElementType()));
+               drawSimpleLink(firstElement, firstElementSize, secondElement, secondElementSize);
+        selectTypeOfReqCap(DataTestIdEnum.LinkMenuItems.REQ_CAP_SELECT_DATA_TESTS_ID.getValue(),connectionWizardPopUpObject.getCapabilityTypeSecondItem());
+               addFirstReqOrCapAndPressNext();
                selectReqCapByName(connectionWizardPopUpObject.getCapabilityNameSecondItem());
                linkMenuClickOnNextButton();
         linkMenuClickOnFinishButton();
     }
+
+       public ImmutablePair<Integer, Integer> calcMidOfLink(ImmutablePair<Integer, Integer> location1, ImmutablePair<Integer, Integer> location2)
+       {
+               int x = (location1.getLeft()+location2.getLeft())/2;
+               int y = (location1.getRight()+location2.getRight())/2;
+
+               ImmutablePair<Integer, Integer> location = new ImmutablePair<>(x,y);
+               return location;
+       }
 }