Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pn-9258-notifica-analogica-stato-consegnata #166

Open
wants to merge 21 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,9 @@ public class DettaglioNotificaSection extends BasePage {
@FindBy(xpath = "//*[contains(@class, 'MuiTimelineItem-root')]")
List<WebElement> tuttiStatiNotificaList;

@FindBy(id = "breadcrumb-indietro-button")
WebElement indietroButton;

public DettaglioNotificaSection(WebDriver driver) {
super(driver);
}
Expand All @@ -37,21 +40,18 @@ public void waitLoadDettaglioNotificaDESection() {
boolean isSelfcare = driver.getCurrentUrl().contains("selfcare");
By titleDettaglioNotificaField = By.id("title-of-page");
By statoNotificaBy = By.id("notification-state");
By indietroButtonBy = By.id("breadcrumb-indietro-button");
By informazioniBy = By.id("notification-detail-table");
By allegatiSection = By.id("notification-detail-document-attached");
By sezioneRecapiti = By.id("side-item-I tuoi recapiti");
By aarDownload = By.xpath("//div[@data-testid='aarDownload']");
By aarBox = By.xpath("//div[@data-testid='aarBox']");

By attestazione = By.xpath("//button[@data-testid='download-legalfact']");

getWebDriverWait(10).withMessage("il titolo Dettaglio notifica non è visibile").until(ExpectedConditions.visibilityOfElementLocated(titleDettaglioNotificaField));
getWebDriverWait(10).withMessage("il bottone indietro non è visibile").until(ExpectedConditions.visibilityOfElementLocated(indietroButtonBy));
getWebDriverWait(10).withMessage("il bottone indietro non è visibile").until(ExpectedConditions.visibilityOf(indietroButton));
getWebDriverWait(10).withMessage("Dettaglio notifica non è visibile").until(ExpectedConditions.visibilityOfElementLocated(informazioniBy));
getWebDriverWait(10).withMessage("La sezione Documenti allegati non è visibile").until(ExpectedConditions.visibilityOfElementLocated(allegatiSection));
getWebDriverWait(10).withMessage("Lo stato della notificanon non è visibile").until(ExpectedConditions.visibilityOfElementLocated(statoNotificaBy));
if (isSelfcare) {
if (!isSelfcare) {
getWebDriverWait(10).withMessage("Il sezione recapiti non è visibile").until(ExpectedConditions.visibilityOfElementLocated(sezioneRecapiti));
}

Expand All @@ -70,7 +70,7 @@ public void clickLinkAttestazioniOpponibile(int numeroLinkAttestazioniOpponibile
if (attestazioniFile.get(numeroLinkAttestazioniOpponibile).isDisplayed()) {
attestazioniFile.get(numeroLinkAttestazioniOpponibile).click();
} else {
this.js().executeScript("arguments[0].scrollIntoView(true);", attestazioniFile.get(numeroLinkAttestazioniOpponibile));
js().executeScript("arguments[0].scrollIntoView(true);", attestazioniFile.get(numeroLinkAttestazioniOpponibile));
attestazioniFile.get(numeroLinkAttestazioniOpponibile).click();
}
}
Expand All @@ -79,7 +79,7 @@ public void clickLinkDocumentiAllegati(int numeroLinkDocumentiAllegati) {
if (documentiAllegati.get(numeroLinkDocumentiAllegati).isDisplayed()) {
documentiAllegati.get(numeroLinkDocumentiAllegati).click();
} else {
this.js().executeScript("arguments[0].scrollIntoView(true);", attestazioniFile.get(numeroLinkDocumentiAllegati));
js().executeScript("arguments[0].scrollIntoView(true);", attestazioniFile.get(numeroLinkDocumentiAllegati));
documentiAllegati.get(numeroLinkDocumentiAllegati).click();
}
}
Expand All @@ -93,7 +93,7 @@ public int getLinkDocumentiAllegati() {
}

public void selezioneVediDettaglioButton() {
getWebDriverWait(10).withMessage("Bottone vedi dettaglio non è cliccabile").until(ExpectedConditions.elementToBeClickable(this.vediDettagliButton));
getWebDriverWait(10).withMessage("Bottone vedi dettaglio non è cliccabile").until(ExpectedConditions.elementToBeClickable(vediDettagliButton));
vediDettagliButton.click();
if (!tuttiStatiNotificaList.isEmpty()) {
logger.info("Tutti gli stati sono stati visualizzati correttamente");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,9 @@ public class PiattaformaNotifichePage extends BasePage {
@FindBy(id = "notifications-table")
WebElement notificationsTable;

@FindBy(id = "notificationsTable.body.row")
List<WebElement> notificationsTableLines;

@FindBy(id = "message")
WebElement erroreMessaggio;

Expand Down Expand Up @@ -798,16 +801,19 @@ public void verificaNotificaCreata() {
}
}
if (!notificationRequestId.isEmpty()) {
String statusNotifica;
String statusNotifica = "";
int maximumRetry = 0;
do {
if (maximumRetry > 4) {
if (maximumRetry > 6) {
logger.error("Sono stati fatti 5 tentativi per verificare la creazione della notifica");
Assert.fail("La notifica risulta ancora in stato WAITING dopo 5 tentativi");
}
RestNotification restNotification = new RestNotification();
statusNotifica = restNotification.getNotificationStatus(notificationRequestId);
WebTool.waitTime(90);
if (statusNotifica.equals("ACCEPTED")) {
break;
}
WebTool.waitTime(60);
logger.info("Tentativo n. " + maximumRetry + " - Stato notifica: " + statusNotifica);
maximumRetry++;
} while (statusNotifica.equals("WAITING"));
Expand All @@ -819,6 +825,91 @@ public void verificaNotificaCreata() {
}
}

public void clickBottoneAnnullaNotifica() {
try {
By bottoneAnnullaNotifica = By.xpath("//button[@data-testid='cancelNotificationBtn']");
getWebDriverWait(10).until(ExpectedConditions.and(
ExpectedConditions.visibilityOfElementLocated(bottoneAnnullaNotifica),
ExpectedConditions.elementToBeClickable(bottoneAnnullaNotifica)));
element(bottoneAnnullaNotifica).click();
} catch (TimeoutException e) {
logger.error("Bottone annulla notifica non visibile e cliccabile");
Assert.fail("Bottone annulla notifica non visibile e cliccabile");

}
}

public void clickAnnullaNotificaModale() {
try {
By bottoneAnnullaNotificaModale = By.xpath("//button[@data-testid='modalCloseAndProceedBtnId']");
getWebDriverWait(10).until(ExpectedConditions.and(
ExpectedConditions.visibilityOfElementLocated(bottoneAnnullaNotificaModale),
ExpectedConditions.elementToBeClickable(bottoneAnnullaNotificaModale)));
element(bottoneAnnullaNotificaModale).click();
} catch (TimeoutException e) {
logger.error("Bottone annulla notifica della modale non visibile e cliccabile");
Assert.fail("Bottone annulla notifica della modale non visibile e cliccabile");

}
}

public void checkBottoneAnnullaNotifica() {
try {
By bottoneAnnullaNotifica = By.xpath("//button[@data-testid='cancelNotificationBtn']");
getWebDriverWait(10).until(ExpectedConditions.invisibilityOfElementLocated(bottoneAnnullaNotifica));
} catch (TimeoutException e) {
logger.error("Bottone annulla notifica visibile");
Assert.fail("Bottone annulla notifica visibile");

}
}

public void checkStatoNotifica(String stato) {
driver.navigate().refresh();
WebTool.waitTime(10);
try {
WebElement notificationLine = notificationsTableLines.get(0);
WebElement chipStatus = notificationLine.findElement(By.id("status-chip-" + stato));
getWebDriverWait(10).withMessage("La notifica non ha lo stato " + stato).until(ExpectedConditions.visibilityOf(chipStatus));
} catch (TimeoutException e) {
logger.error("Notifica non trovata con errore: " + e.getMessage());
Assert.fail("Notifica non trovata con errore: " + e.getMessage());
}
}

public void selezionaNotificaConStato(String statoNotifica) {
boolean testSuccess = false;
for (int i = 0; i < 8; i++) {
try {
WebElement notificationLine = notificationsTableLines.get(0);
WebElement chipStatus = notificationLine.findElement(By.id("status-chip-" + statoNotifica));
if (chipStatus != null) {
logger.info("La notifica è passata allo stato " + statoNotifica + " e si procede con il test");
testSuccess = true;
break;
}
} catch (NoSuchElementException e) {
logger.info("Dopo " + i + " tentativi la notifica non è ancora passata allo stato: " + statoNotifica);
}
WebTool.waitTime(15);
driver.navigate().refresh();
}
if (!testSuccess) {
logger.error("La notifica non è passata allo stato " + statoNotifica);
Assert.fail("La notifica non è passata allo stato " + statoNotifica);
}
}

public void checkPopUpConfermaAnnullamentoNotifica() {
try {
By popUpConfermaAnnullamento = By.xpath("//div[@role='alert']/div[text()='La richiesta di annullamento è stata accettata.']");
getWebDriverWait(10).withMessage("Pop up NON visualizzato").until(ExpectedConditions.visibilityOfElementLocated(popUpConfermaAnnullamento));
} catch (TimeoutException e) {
logger.error("Il pop up di conferma dell'annullamento della notifica non viene visualizzato con errore: " + e.getMessage());
Assert.fail("Il pop up di conferma dell'annullamento della notifica non viene visualizzato con errore: " + e.getMessage());
}
}

public void verificaInvioNotificaDiCortesia() {
try {
By voceNotificaDiCortesia = By.xpath("//span[contains(text(), 'Invio del messaggio di cortesia')]");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -326,6 +326,22 @@ public void checkTentatoInvioADomicilioSpeciale(String domicilioSpeciale) {
}
}

public void checkInvioADomicilioFisico() {
try {
By invioRaccomandata = By.xpath("//span[contains(text(), 'Invio via raccomandata A/R')]");
By stampaRaccomandata = By.xpath("//div[contains(span/text(), \"Aggiornamento sull'invio cartaceo\") and (div[contains(p/text(), 'stampata ed imbustata')])]");
By aggiornamentoInvio = By.xpath("//div[contains(span/text(), \"Aggiornamento sull'invio cartaceo\") and (div[contains(p/text(), 'nuovo documento allegato')])]");
By invioCartaceoABuonFine = By.xpath("//span[contains(text(), 'Invio per via cartacea andato a buon fine')]");
getWebDriverWait(10).withMessage("L'invio della raccomandata all'indirizzo fisico non è visibile").until(ExpectedConditions.visibilityOfElementLocated(invioRaccomandata));
getWebDriverWait(10).withMessage("Step timeline della raccomandata stampata ed imbustata non visibile").until(ExpectedConditions.visibilityOfElementLocated(stampaRaccomandata));
getWebDriverWait(10).withMessage("L'aggiornamento dell'invio della raccomandata all'indirizzo fisico non è visibile").until(ExpectedConditions.visibilityOfElementLocated(aggiornamentoInvio));
getWebDriverWait(10).withMessage("L'invio della raccomandata andato a buon fine non è visibile").until(ExpectedConditions.visibilityOfElementLocated(invioCartaceoABuonFine));
} catch (TimeoutException e) {
logger.error("L'invio della notifica al domicilio fisico non viene effettuato con errore: " + e.getMessage());
Assert.fail("L'invio della notifica al domicilio fisico non viene effettuato con errore: " + e.getMessage());
}
}

public void checkAvvisoPagoPa() {
try {
By boxPagamento = By.xpath("//div[@data-testid='payment-item']");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,6 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.net.URL;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -366,6 +366,14 @@ public void siControllaIlDettaglioDellaNotifica() {
dettaglioNotifica.waitLoadDettaglioNotificaDESection();
}

@And("Si controlla che nel portale del destinatario la notifica sia {string} e si chiude la scheda")
public void siControllaCheNelPortaleDelDestinatarioLaNotificaSiaESiChiudeLaScheda(String statoNotifica) {
logger.info("Si controlla che anche nel portale del destinatario la notifica sia in stato " + statoNotifica + " e si chiude la scheda");
piattaformaNotifichePage.selezionaNotifica();
piattaformaNotifichePage.verificaPresenzaStato(statoNotifica);
WebTool.closeTab();
}

@And("Si controlla che il testo sia nel box pagamento {string}")
public void siControllaTestoSiaNelBoxPagamento(String xpath) {
boolean isPresent = dettaglioNotifica.isFieldDisplayed(By.xpath(xpath));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ public void siVisualizzaCorrettamenteLaPaginaPiattaformaNotificheDestinatario()
notifichePFPage.waitLoadNotificheDEPage();
}

@And("Nella pagina Piattaforma Notifiche persona fisica inserire il codice IUN da dati notifica {string}")
@And("Collegarsi a link con codice {int}")
public void collegarsiLink(int code) {
switch (code) {
Expand Down Expand Up @@ -84,7 +85,7 @@ public void nellaPaginaPiattaformaNotificheDestinatarioInserireIlCodiceIUNDaDati
notificheDestinatarioPage.inserisciCodiceIUN(this.datiNotifica.get("codiceIUN").toString());
}

@And("Nella pagina Piattaforma Notifiche persona fisica inserire il codice IUN {string}")
@And("Nella pagina Piattaforma Notifiche persona fisica inserire il codice IUN {string}")
public void nellaPaginaPiattaformaNotificheDestinatarioInserireIlCodiceIUN(String IUN) throws InterruptedException {
logger.info("Si inserisce il codice IUN");
NotifichePFPage notifichePFPage = new NotifichePFPage(this.driver);
Expand Down Expand Up @@ -174,7 +175,7 @@ public void cliccareSulBottoneRimuoviFiltriPersonaFisica() {
notifichePFPage.clickRimuoviFiltriButton();
}

@And("Nella pagina Piattaforma Notifiche persona fisica inserire il codice IUN non valido da dati notifica {string}")
@And("Nella pagina Piattaforma Notifiche persona fisica inserire il codice IUN non valido da dati notifica {string}")
public void nellaPaginaPiattaformaNotifichePersonaGiuridicaInserireIlCodiceIunNonValidoDaDatiNotifica(String datiNotificaNonValidoPF) throws InterruptedException {
logger.info("Si inserisce il codice IUN non valido");
DataPopulation dataPopulation = new DataPopulation();
Expand Down
Loading