package com.dumiduh.elements;

import com.dumiduh.function.DropDownPageFunctions;
import com.dumiduh.models.TestData;
import com.dumiduh.utils.JSONUtil;
import com.dumiduh.utils.TestBase;
import org.testng.Assert;
import org.testng.annotations.AfterClass;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;

import static com.dumiduh.constants.Constants.DROPDOWN_PAGE_URL;


public class DropDownPageElementsTest extends TestBase {

    @BeforeClass
    public static void setup() {
        instantiateDriver();
    }

    @Test
    public static void dropDownPageElementTest() {
        TestData data = DropDownTest.data;

        driver.get(DROPDOWN_PAGE_URL);
        DropDownPageFunctions dropdown = new DropDownPageFunctions(driver);
        Assert.assertTrue(dropdown.isTheDropDownHeadingDisplayed());
        Assert.assertTrue(dropdown.isTheDropDownDisplayed());

        Assert.assertEquals(data.getNumberOfOptions(), dropdown.getTheListOfOptions()
                .size());
        if (dropdown.getTheListOfOptions()
                .containsAll(data.getListOfOptions())) {
            Assert.assertTrue(true);
        }
    }

    @AfterClass
    public void cleanUp() {
        DropDownTest.data.setDropDownSelection("Option 2");
        driver.quit();
    }
}