Skip to content

Commit

Permalink
complete test PN-9259
Browse files Browse the repository at this point in the history
  • Loading branch information
leleOFA committed Apr 24, 2024
1 parent 1728e7e commit 4d6a567
Show file tree
Hide file tree
Showing 8 changed files with 49 additions and 57 deletions.
5 changes: 5 additions & 0 deletions src/main/java/it/pn/frontend/e2e/common/BasePage.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,8 @@
package it.pn.frontend.e2e.common;

import io.cucumber.java.Before;
import io.cucumber.java.Scenario;
import it.pn.frontend.e2e.listeners.Hooks;
import org.openqa.selenium.*;
import org.openqa.selenium.support.PageFactory;
import org.openqa.selenium.support.ui.ExpectedConditions;
Expand All @@ -12,8 +15,10 @@
import java.util.concurrent.TimeUnit;

public class BasePage {

protected WebDriver driver;

protected String scenarioName = Hooks.scenario;
protected int loadComponentWaitTime = Integer.parseInt(System.getProperty("loadComponentWaitTime"));

private static final Logger loggerBase = LoggerFactory.getLogger("BasePage");
Expand Down
4 changes: 4 additions & 0 deletions src/main/java/it/pn/frontend/e2e/listeners/Hooks.java
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,10 @@ public class Hooks {
private static final Logger logger = LoggerFactory.getLogger("Hooks");
public static WebDriver driver;
public DevTools devTools;

public Map<String, RequestWillBeSent> requests = new HashMap<>();

public static String scenario;
public static List<NetWorkInfo> netWorkInfos = new ArrayList<>();
private String headless;
private final CookieConfig cookieConfig = new CookieConfig();
Expand Down Expand Up @@ -175,6 +178,7 @@ protected void edge() {
@Before
public void startScenario(Scenario scenario) {
logger.info("-------------------------------------------START SCENARIO: " + scenario.getName() + "------------------------------------------------");
this.scenario = scenario.getName();
Collection<String> tags = scenario.getSourceTagNames();
for (String tag : tags) {
if (tag.startsWith("@TA_")) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,12 @@
import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

public class NotificationSingleton {

private String iun;
private Map<String, String> scenarioIun = new ConcurrentHashMap<>();
private String notificationRequestId;
private static NotificationSingleton instance;

Expand All @@ -22,6 +23,11 @@ public static synchronized NotificationSingleton getInstance() {
return instance;
}

public void setScenarioIun(String scenarioName,String iun){
scenarioIun.put(scenarioName,iun);
}


public String getIun(String scenarioName){
return scenarioIun.get(scenarioName);
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package it.pn.frontend.e2e.pages.mittente;

import com.google.gson.internal.LinkedTreeMap;
import io.cucumber.java.Scenario;
import it.pn.frontend.e2e.common.BasePage;
import it.pn.frontend.e2e.listeners.Hooks;
import it.pn.frontend.e2e.listeners.NetWorkInfo;
Expand Down Expand Up @@ -800,28 +801,30 @@ public void verificaNotificaCreata() {
}
}
}

if (!notificationRequestId.isEmpty()) {
//LinkedTreeMap<String, Object> notificationData;
String notificationStatus;
//String notificationIUN;
LinkedTreeMap<String, Object> notificationData;
String notificationStatus;
String notificationIUN;
int maximumRetry = 0;
do {
notificationStatus = restNotification.getNotificationStatus(notificationRequestId).get("notificationRequestStatus").toString();
while (notificationStatus.equals("WAITING")){
if (maximumRetry > 4) {
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");
}
//notificationData = restNotification.getNotificationStatus(notificationRequestId);
notificationStatus = restNotification.getNotificationStatus(notificationRequestId).get("notificationRequestStatus").toString();
//notificationIUN = notificationData.get("iun").toString();
//if (notificationStatus.equals("ACCEPTED")){
// notificationSingleton.setIun(notificationIUN);
//}else{
WebTool.waitTime(90);
logger.info("Tentativo n. " + maximumRetry + " - Stato notifica: " + notificationStatus);
maximumRetry++;
// }
} while (notificationStatus.equals("WAITING"));
notificationSingleton.setIun(restNotification.getNotificationStatus(notificationRequestId).get("iun").toString());
notificationData = restNotification.getNotificationStatus(notificationRequestId);
notificationStatus = notificationData.get("notificationRequestStatus").toString();
if(notificationStatus.equals("ACCEPTED")){
notificationIUN = notificationData.get("iun").toString();
notificationSingleton.setScenarioIun(scenarioName,notificationIUN);
}else{
WebTool.waitTime(90);
logger.info("Tentativo n. " + maximumRetry + " - Stato notifica: " + notificationStatus);
maximumRetry++;
}
}
//notificationSingleton.setScenarioIun(scenario.getName(),restNotification.getNotificationStatus(notificationRequestId).get("iun").toString());
driver.navigate().refresh();
logger.info("La notifica è stata creata correttamente");
} else {
Expand All @@ -844,7 +847,7 @@ public void checkNotifica() {
}

public void clickSuNotifica() {
String iun = notificationSingleton.getIun();
String iun = notificationSingleton.getIun(scenarioName);
try{
By notification = By.xpath("//table[@id='notifications-table']//tr[.//button[contains(text(),'"+iun+"')]]");
getWebDriverWait(30).withMessage("notifica non esistente").until(ExpectedConditions.visibilityOfElementLocated(notification));
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,14 @@
package it.pn.frontend.e2e.section.mittente;

import it.pn.frontend.e2e.common.BasePage;
import it.pn.frontend.e2e.utility.WebTool;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.text.PDFTextStripper;
import org.junit.Assert;
import org.openqa.selenium.*;
import org.openqa.selenium.support.FindBy;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.Wait;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

Expand Down Expand Up @@ -265,8 +267,8 @@ public String getTextDocumentiAllegati() {

public void checkStatoTimeline(String statoTimeline){
try {
By testIrreperibilita = By.id("Destinatario irreperibile-status");
this.getWebDriverWait(10).until(ExpectedConditions.visibilityOfElementLocated(testIrreperibilita));
By testIrreperibilita = By.id(statoTimeline);
getWebDriverWait(10).until(ExpectedConditions.visibilityOfElementLocated(testIrreperibilita));
logger.info("irreperibilitá avvenuta");
} catch (TimeoutException e) {
logger.error("irreperibilitá non avvenuta con errore: " + e.getMessage());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ public void insertGruppo(String gruppo) {

try {
By gruppoBy = By.xpath("//li[contains(text(),'" + gruppo + "')]");
this.getWebDriverWait(40).until(ExpectedConditions.visibilityOfElementLocated(gruppoBy));
getWebDriverWait(40).until(ExpectedConditions.visibilityOfElementLocated(gruppoBy));
logger.info("gruppo " + gruppo + " trovato con successo");
element(gruppoBy).click();
} catch (TimeoutException e) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1087,9 +1087,12 @@ public void siVerificaCheLaNotificaAbbiaLoStato(String stato) {
piattaformaNotifichePage.verificaPresenzaStato(stato);
}


@And("Si controlla lo stato timeline {string} in dettaglio notifica")
public void siControllaLoStatoTimelineInDettaglioNotifica(String statoTimelineNotifica) {
siVisualizzaCorrettamenteLaSectionDettaglioNotifica();
WebTool.waitTime(790);
driver.navigate().refresh();
siVisualizzaCorrettamenteLElencoCompletoDegliStatiCheLaNotificaHaPercorso();
dettaglioNotificaMittenteSection.checkStatoTimeline(statoTimelineNotifica);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,38 +30,7 @@ Feature: invio notifica con sequence
| nomeDocumentoNotifica | RATA SCADUTA IMU |
And Si verifica che la notifica è stata creata correttamente
And Si seleziona la notifica
And Si controlla lo stato timeline "irreperibile" in dettaglio notifica
And Si controlla lo stato timeline "Destinatario irreperibile-status" in dettaglio notifica
And Logout da portale mittente

@WorkflowNotificaConSequence @ignored
Scenario: [TA-FE WORKFLOW DELLA NOTIFICA CON SEQUENCE-@FAIL-Discovery_AR] - Il mittente invia una notifica a destinatario con sequence
Given PF - Si effettua la login tramite token exchange come "delegante", e viene visualizzata la dashboard
When Nella pagina Piattaforma Notifiche persona fisica si clicca sul bottone I Tuoi Recapiti
And Si verifica siano presenti recapiti digitali
| email | provaemail@test.it |
And Logout da portale persona fisica
Given PA - Si effettua la login tramite token exchange, e viene visualizzata la dashboard
When Nella pagina Piattaforma Notifiche cliccare sul bottone Invia una nuova notifica
And Si visualizza correttamente la pagina Piattaforma Notifiche section Informazioni preliminari
And Creazione notifica completa
| oggettoDellaNotifica | Pagamento rata IMU |
| descrizione | PAGAMENTO RATA IMU |
| modello | AR |
| gruppoTest | test-TA-FE-TEST |
| gruppoDev | GruppoTest |
| codiceTassonometrico | 123456A |
| nomeFileYaml | datiNotifica |
| nomePF | Gaio Giulio |
| cognomePF | Cesare |
| codiceFiscalePF | CSRGGL44L13H501E |
| indirizzoPF | via @FAIL-Discovery_AR |
| numeroCivicoPF | 20 |
| comunePF | MILANO |
| provinciaPF | MI |
| codicepostalePF | 20147 |
| statoPF | ITALIA |
| nomeDocumentoNotifica | RATA SCADUTA IMU |
And Si verifica che la notifica è stata creata correttamente
And Si seleziona la notifica
And Si controlla lo stato timeline "irreperibile" in dettaglio notifica
And Logout da portale mittente

0 comments on commit 4d6a567

Please sign in to comment.