package com.agile611.testng.webdriver;

import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.interactions.Actions;
import static org.testng.Assert.assertEquals;
import org.testng.annotations.Test;

public class DragAndDropTest extends BaseTest {

    @Test
    public void testApp() throws InterruptedException {

        driver.navigate().to("https://the-internet.herokuapp.com/drag_and_drop");

        Thread.sleep(2000);

        // Localizar los dos elementos con sus IDs reales
        WebElement columnA = driver.findElement(By.id("column-a"));
        WebElement columnB = driver.findElement(By.id("column-b"));

        // Verificar estado inicial: A está a la izquierda, B a la derecha
        assertEquals(columnA.findElement(By.tagName("header")).getText(), "A");
        assertEquals(columnB.findElement(By.tagName("header")).getText(), "B");

        // Arrastrar A sobre B (intercambiar posiciones)
        Actions dragAndDrop = new Actions(driver);
        dragAndDrop.dragAndDrop(columnA, columnB).perform();
        
        Thread.sleep(2000);

        // Verificar que han intercambiado: ahora A está donde estaba B y viceversa
        assertEquals(columnA.findElement(By.tagName("header")).getText(), "B");
        assertEquals(columnB.findElement(By.tagName("header")).getText(), "A");
    }
}