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 14 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,14 +40,13 @@ 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 altriDocumenti = isSelfcare ? By.xpath("//div[@data-testid='aarDownload']") : By.xpath("//div[@data-testid='aarBox']");
By attestazione = By.xpath("//button[@data-testid='download-legalfact']");
this.getWebDriverWait(30).withMessage("il titolo Dettaglio notifica non è visibile").until(ExpectedConditions.visibilityOfElementLocated(titleDettaglioNotificaField));
this.getWebDriverWait(30).withMessage("il bottone indietro non è visibile").until(ExpectedConditions.visibilityOfElementLocated(indietroButtonBy));
this.getWebDriverWait(30).withMessage("il bottone indietro non è visibile").until(ExpectedConditions.visibilityOf(indietroButton));
Gabriiii99 marked this conversation as resolved.
Show resolved Hide resolved
this.getWebDriverWait(30).withMessage("Dettaglio notifica non è visibile").until(ExpectedConditions.visibilityOfElementLocated(informazioniBy));
this.getWebDriverWait(30).withMessage("La sezione Documenti allegati non è visibile").until(ExpectedConditions.visibilityOfElementLocated(allegatiSection));
this.getWebDriverWait(30).withMessage("Lo stato della notificanon non è visibile").until(ExpectedConditions.visibilityOfElementLocated(statoNotificaBy));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,6 +92,8 @@ public class PiattaformaNotifichePage extends BasePage {
@FindBy(id = "notifications-table")
WebElement notificationsTable;

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

public PiattaformaNotifichePage(WebDriver driver) {
super(driver);
Expand Down Expand Up @@ -792,16 +794,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 @@ -813,6 +818,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 @@ -319,4 +319,20 @@ public void checkTentatoInvioADomicilioSpeciale(String domicilioSpeciale) {
Assert.fail("L'invio della notifica al domicilio speciale indicato non viene effettuato con errore: " + e.getMessage());
}
}

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());
}
}
}
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 @@ -14,6 +14,7 @@
import it.pn.frontend.e2e.utility.CookieConfig;
import it.pn.frontend.e2e.utility.DataPopulation;
import it.pn.frontend.e2e.utility.DownloadFile;
import it.pn.frontend.e2e.utility.WebTool;
import org.junit.Assert;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
Expand Down Expand Up @@ -357,6 +358,14 @@ public void siCliccaSullaNotificaDelDelegante() {
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();
}
}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ public void siVisualizzaCorrettamenteLaPaginaPiattaformaNotificheDestinatario()
notifichePFPage.waitLoadNotificheDEPage();
}

@And("Nella pagina Piattaforma Notifiche persona fisica inserire il codice IUN da dati notifica {string}")
@And("Nella pagina Piattaforma Notifiche persona fisica inserire il codice IUN da dati notifica {string}")
public void nellaPaginaPiattaformaNotificheDestinatarioInserireIlCodiceIUNDaDatiNotifica(String dpDataNotifica) throws InterruptedException {
logger.info("Si inserisce il codice IUN");
DataPopulation dataPopulation = new DataPopulation();
Expand All @@ -49,7 +49,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 @@ -138,7 +138,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
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
import it.pn.frontend.e2e.utility.DataPopulation;
import it.pn.frontend.e2e.utility.WebTool;
import org.junit.Assert;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.slf4j.Logger;
Expand Down Expand Up @@ -61,7 +60,6 @@ public class NotificaMittentePagoPATest {
private final String PA = "pubblica amministrazione";



@When("Nella Home page mittente cliccare sul bottone Gestisci di Piattaforma Notifiche")
public void nellaHomePageMittenteCliccareSuGestisciDiPiattaforma() {
AreaRiservataPAPage areaRiservataPAPage = new AreaRiservataPAPage(this.driver);
Expand Down Expand Up @@ -889,7 +887,7 @@ public void nellaSectionCliccareSulTastoTornaAInformazioniPreliminari() {

@And("Nella section Destinatario inserire i dati del destinatario persona giuridica aggiuntiva")
public void nellaSectionDestinatarioInserireIDatiDelDestinatarioPersonaGiuridichaAggiuntiva(Map<String, String> destinatario) {
logger.info("Si cerca di aggiungere la persone giuridica aggiuntiva");
logger.info("Si cerca di aggiungere la persona giuridica aggiuntiva");
destinatarioPASection.inserimentoDestinatarioPGAggiuntivo(destinatario);
}

Expand Down Expand Up @@ -988,7 +986,6 @@ public void nellaSectionInformazioniPreliminariSiInserisconoIDatiDellaNotificaSe

}


@Then("Nella section Destinatario si inseriscono i dati del destinatario")
public void nellaSectionDestinatarioSiInserisconoIDatiDelDestinatario(Map<String, String> destinatario) {
logger.info("Si inseriscono i dati del destinatario nella sezione Destinatario");
Expand Down Expand Up @@ -1146,11 +1143,11 @@ public void inParalleloSiEffettuaLAccessoAlPortaleDestinatarioESiApreLaNotificaR
}

@Then("In parallelo si effettua l'accesso al portale destinatario persona fisica e si verifica la timeline {string}")
public void inParalleloSiEffettuaLAccessoAlPortaleDestinatarioPFESiVerificaLaTimeline(String messagio) {
public void inParalleloSiEffettuaLAccessoAlPortaleDestinatarioPFESiVerificaLaTimeline(String messaggio) {
WebTool.switchToPortal(AppPortal.PF);
piattaformaNotifichePage.selezionaNotifica();
WebTool.waitTime(5);
piattaformaNotifichePage.visualizzaTimeline(messagio);
piattaformaNotifichePage.visualizzaTimeline(messaggio);
WebTool.closeTab();
}

Expand Down Expand Up @@ -1203,6 +1200,44 @@ public void siVerificaCheLaNotificaAbbiaLoStato(String stato) {
piattaformaNotifichePage.verificaPresenzaStato(stato);
}

@And("Si annulla la notifica")
public void siAnnullaLaNotifica() {
logger.info("Si clicca sul pusante annulla notifica");
WebTool.waitTime(10);
piattaformaNotifichePage.clickBottoneAnnullaNotifica();
piattaformaNotifichePage.clickAnnullaNotificaModale();
}

@And("Il bottone annulla notifica non è visualizzabile nella descrizione della notifica")
public void ilBottoneAnnullaNotificaNonÈVisualizzabileNellaDescrizioneDellaNotifica() {
logger.info("Si controlla che il bottone annulla notifica non sia visualizzabile");
piattaformaNotifichePage.checkBottoneAnnullaNotifica();
}

@And("Nella pagina Piattaforma Notifiche la notifica presenta lo stato {string}")
public void nellaPaginaPiattaformaNotificheLaNotificaPresentaLoStato(String stato) {
logger.info("Si controlla che nella pagina piattaforma notifiche la notifica abbia lo stato " + stato);
piattaformaNotifichePage.checkStatoNotifica(stato);
}

@And("Si attende che lo stato della notifica sia {string}")
public void siAttendeCheLoStatoDellaNotificaSia(String statoNotifica) {
logger.info("Si clicca sulla notifica appena creata quando lo stato diventa: " + statoNotifica);
piattaformaNotifichePage.selezionaNotificaConStato(statoNotifica);
}

@Then("Si controlla la comparsa del pop up di conferma annullamento")
public void siControllaLaComparsaDelPopUpDiConfermaAnnullamento() {
logger.info("Si controlla la presenza del pop up di conferma dell'annullamento della notifica");
piattaformaNotifichePage.checkPopUpConfermaAnnullamentoNotifica();
}

@And("Si clicca il bottone indietro nella descrizione della notifica")
public void siCliccaIlBottoneIndietroNellaDescrizioneDellaNotifica() {
logger.info("Si clicca sul bottone indietro della pagina della descrizione della notifica");
dettaglioNotificaMittenteSection.clickIndietroButton();
}

@And("Si verifica che l'invio della notifica sia fallito {int} volte")
public void siVerificaCheLInvioDellaNotificaSiaFallitoDueVolte(int numeroFallimenti) {
logger.info("Si verifica che l'invio della notifica sia fallito " + numeroFallimenti + " volta/e");
Expand Down Expand Up @@ -1245,7 +1280,6 @@ public void siAccedeNuovamenteAlPortaleConTokenPerEliminareIRecapitiInseriti(Str
}
}


@Then("Nella section del destinatario numero {int} si inseriscono i suoi dati")
public void nellaSectionDelDestinatarioNumeroSiInserisconoISuoiDati(int numeroDestinatario, Map<String, String> destinatario) {
logger.info("Si inseriscono i dati del destinatario nella sezione Destinatario");
Expand All @@ -1265,6 +1299,12 @@ public void nellaSectionDelDestinatarioNumeroSiInserisconoISuoiDati(int numeroDe
destinatarioPASection.inserireCodiceFiscaleMultiDestinatario(numeroDestinatario, destinatario.get("codiceFiscale"));
}

@And("Si verifica l'invio della notifica al domicilio fisico")
public void siVerificaLInvioDellaNotificaAlDomicilioFisico() {
logger.info("Si controlla che la notifica sia stata inviato al domicilio fisico");
dettaglioNotificaMittenteSection.checkInvioADomicilioFisico();
}

/**
* A simple object that represents the esito notifica, i.e. the return value of siVerificaEsitoNotifica.
*/
Expand Down
Loading