adminPanel.scenarios.GeneratorInstances.java Source code

Java tutorial

Introduction

Here is the source code for adminPanel.scenarios.GeneratorInstances.java

Source

package adminPanel.scenarios;

import adminPanel.pages.DrawerPage;
import adminPanel.pages.LoginPage;
import adminPanel.pages.Toolbar;
import model.*;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;

import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.Random;

import static config.MyListener.webDriver;
import static utilites.Utilities.*;

public class GeneratorInstances {
    DrawerPage drawerPage = new DrawerPage();
    private By fieldName = xpathContainsIdBrowser("name");
    private By fieldSpecialization = xpathContainsIdBrowser("specialization");
    private By fieldPhoneNumber = xpathContainsIdBrowser("cellPhone");
    private By fieldEmail = xpathContainsIdBrowser("email");
    private By fieldLocation = By.id("us3-address");
    private By buttonCreateReturn = By.name("btn_create_and_list");
    private By fieldScheduleStartTime = xpathContainsIdBrowser("startTime");
    private By fieldScheduleEndTime = xpathContainsIdBrowser("finishTime");
    private By fieldWebSite = xpathContainsIdBrowser("webSite");
    private By fieldTitle = xpathContainsIdBrowser("title");

    public void createDoctor(Doctor doctor) {
        new LoginPage().loginByDefaultData();
        drawerPage.openDrawer();
        drawerPage.openDirectories();
        drawerPage.addDoctor();

        sendKeysBrowser(fieldName, doctor.getName());
        sendKeysBrowser(fieldSpecialization, doctor.getSpecialization());
        sendKeysBrowser(fieldPhoneNumber, doctor.getPhoneNumber());
        sendKeysBrowser(fieldEmail, doctor.getEmail());
        scrollBrowserToDown();
        setPhoto();
        webDriver.findElement(fieldLocation).clear();
        sendKeysBrowser(fieldLocation, doctor.getLocation());
        scrollBrowserToDown();
        waitAndTapBrowser(buttonCreateReturn);
        new Toolbar().logout();
    }

    public void createPainClinic(PainClinic painClinic) {
        new LoginPage().loginByDefaultData();
        drawerPage.openDrawer();
        drawerPage.openDirectories();
        drawerPage.addPainClinic();

        sendKeysBrowser(fieldName, painClinic.getName());
        sendKeysBrowser(fieldSpecialization, painClinic.getSpecialization());
        sendKeysBrowser(fieldPhoneNumber, painClinic.getPhoneNumber());
        sendKeysBrowser(fieldEmail, painClinic.getEmail());
        sendKeysBrowser(fieldScheduleStartTime, String.valueOf(painClinic.getScheduleStartTime()));
        sendKeysBrowser(fieldScheduleEndTime, String.valueOf(painClinic.getScheduleEndTime()));
        scrollBrowserToDown();
        setPhoto();
        webDriver.findElement(fieldLocation).clear();
        sendKeysBrowser(fieldLocation, painClinic.getLocation());
        scrollBrowserToDown();
        waitAndTapBrowser(buttonCreateReturn);
        new Toolbar().logout();

    }

    public void createLicensedProducer(LicensedProducer licensedProducer) {
        new LoginPage().loginByDefaultData();
        drawerPage.openDrawer();
        drawerPage.openDirectories();
        drawerPage.addLicensedProducer();

        sendKeysBrowser(fieldName, licensedProducer.getName());
        sendKeysBrowser(fieldPhoneNumber, licensedProducer.getPhoneNumber());
        sendKeysBrowser(fieldEmail, licensedProducer.getEmail());
        sendKeysBrowser(fieldWebSite, licensedProducer.getWebsite());
        setPhoto();
        webDriver.findElement(fieldLocation).clear();
        sendKeysBrowser(fieldLocation, licensedProducer.getLocation());
        sleep(2000);
        scrollBrowserToDown();
        sleep(2000);
        scrollBrowserToDown();
        waitAndTapBrowser(buttonCreateReturn);

        try {
            Thread.sleep(10000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        new Toolbar().logout();

    }

    public void createOnlineStore(OnlineStore onlineStore) {
        new LoginPage().loginByDefaultData();
        drawerPage.openDrawer();
        drawerPage.openDirectories();
        drawerPage.addOnlineStore();

        sendKeysBrowser(fieldName, onlineStore.getName());
        sendKeysBrowser(fieldPhoneNumber, onlineStore.getPhoneNumber());
        sendKeysBrowser(fieldEmail, onlineStore.getEmail());
        sendKeysBrowser(fieldWebSite, onlineStore.getWebsite());
        setPhoto();
        waitAndTapBrowser(buttonCreateReturn);
        new Toolbar().logout();
    }

    public void createDispensary(Dispensary dispensary) {
        new LoginPage().loginByDefaultData();
        drawerPage.openDrawer();
        drawerPage.openDirectories();
        drawerPage.addDispensary();

        sendKeysBrowser(fieldName, dispensary.getName());
        sendKeysBrowser(fieldPhoneNumber, dispensary.getPhoneNumber());
        sendKeysBrowser(fieldEmail, dispensary.getEmail());
        sendKeysBrowser(fieldScheduleStartTime, String.valueOf(dispensary.getScheduleStartTime()));
        sendKeysBrowser(fieldScheduleEndTime, String.valueOf(dispensary.getScheduleEndTime()));
        sleep(2000);
        scrollBrowserToDown();
        setPhoto();
        sleep(2000);
        scrollBrowserToDown();
        webDriver.findElement(fieldLocation).clear();
        sendKeysBrowser(fieldLocation, dispensary.getLocation());
        waitAndTapBrowser(buttonCreateReturn);
        new Toolbar().logout();

    }

    private void setPhoto() {
        WebElement fileInput = webDriver.findElement(By.xpath("//*[@id=\"file_ajax\"]"));
        fileInput.sendKeys("/Users/oleg/IdeaProjects/NGC_Tests/src/test/resources/images/doctor_avatar.png");
    }

    private void setPhoto(String path) {
        WebElement fileInput = webDriver.findElement(By.xpath("//*[@id=\"file_ajax\"]"));
        fileInput.sendKeys("/Users/oleg/IdeaProjects/NGC_Tests/src/test/resources/images/" + path);
    }

    private void sleep(int x) {
        try {
            Thread.sleep(x);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
    }

    public void createDirectoryInstances(int amount) {

        for (int i = 0; i < amount; i++) {
            createRandomDoctor();

            createRandomPainClinic();

            createRandomLicensedProducer();

            createRandomOnlineStore();

            createRandomDispensary();
        }
    }

    public void createRandomDoctor() {
        Doctor doctor = new Doctor();
        String doctorName = randomTopName();
        doctor.setName(doctorName);
        doctor.setSpecialization("psychiatrist");
        doctor.setPhoneNumber(String.valueOf(new Random().nextInt(999999999) + 1111));
        doctor.setEmail(doctorName + "@mail.com");
        doctor.setLocation("Canada");
        createDoctor(doctor);
    }

    public void createRandomPainClinic() {
        String nameClinic = randomTopName();
        PainClinic painClinic = new PainClinic();
        painClinic.setName("Doctor " + nameClinic + " Clinic");
        painClinic.setSpecialization("psychiatrist");
        painClinic.setPhoneNumber(String.valueOf(new Random().nextInt(999999999) + 1111));
        painClinic.setEmail(nameClinic + "@mail.com");
        painClinic.setScheduleStartTime(8);
        painClinic.setScheduleEndTime(20);
        painClinic.setLocation("Canada");
        createPainClinic(painClinic);
    }

    public void createRandomDispensary() {
        String nameDispensary = randomTopName();
        Dispensary dispensary = new Dispensary();
        dispensary.setName(nameDispensary + " Dispensary");
        dispensary.setEmail(nameDispensary + "@mail.com");
        dispensary.setPhoneNumber(String.valueOf(new Random().nextInt(999999999) + 1111));
        dispensary.setScheduleStartTime(8);
        dispensary.setScheduleEndTime(20);
        dispensary.setLocation("Canada");
        createDispensary(dispensary);
    }

    public void createRandomOnlineStore() {
        String nameStore = randomTopName();
        OnlineStore onlineStore = new OnlineStore();
        onlineStore.setName("Online Store " + nameStore);
        onlineStore.setPhoneNumber(String.valueOf(new Random().nextInt(999999999) + 1111));
        onlineStore.setEmail(nameStore + "@mail.com");
        onlineStore.setWebsite("http://www." + nameStore + ".com");
        createOnlineStore(onlineStore);
    }

    public void createRandomLicensedProducer() {
        String nameProducer = randomTopName();
        LicensedProducer licensedProducer = new LicensedProducer();
        licensedProducer.setName(nameProducer + " Producer");
        licensedProducer.setPhoneNumber(String.valueOf(new Random().nextInt(999999999) + 1111));
        licensedProducer.setEmail(nameProducer + "@mail.com");
        licensedProducer.setWebsite("http://www." + nameProducer + ".com");
        licensedProducer.setLocation("Canada");
        createLicensedProducer(licensedProducer);
    }

    public void createEvent(int amount) {
        Event event = new Event();

        String[] events = event.getEvents();
        int random = new Random().nextInt(events.length);
        String eventTitle = events[random];
        String randomImageEvent = "events" + new Random().nextInt(5) + 1 + ".jpg";
        String description = "It's description about " + eventTitle;
        String location = "Canada, Ottawa";
        DateTimeFormatter dtf = DateTimeFormatter.ofPattern("MM/dd/yyyy");
        LocalDate localDate = LocalDate.now();
        int hours = new Random().nextInt(24);
        int minutes = new Random().nextInt(60);
        String time = "" + hours + ":" + minutes;

        event.setTitle(eventTitle);
        event.setDescription(description);
        event.setLocation(location);
        event.setDate(localDate.toString());
        event.setTime(time);

        scrollBrowserToDown();
        setPhoto(randomImageEvent);

    }
}