4
4
import io .cucumber .java .en .Then ;
5
5
import io .cucumber .java .en .When ;
6
6
import org .ays .browser .AysPageActions ;
7
+ import org .ays .enums .AysLanguage ;
7
8
import org .ays .pages .AdminRegistrationApplicationDetailPage ;
8
9
import org .ays .pages .AdminRegistrationApplicationsPage ;
9
10
import org .ays .pages .AdminRegistrationPreApplicationPage ;
11
+ import org .ays .utilities .AysLocaleStorageUtil ;
12
+ import org .ays .utilities .AysLocalizationUtil ;
10
13
import org .ays .utilities .AysRandomUtil ;
11
14
import org .testng .Assert ;
12
15
16
+ import static org .testng .AssertJUnit .assertEquals ;
17
+
13
18
public class AdminRegistrationPreApplicationCreation {
14
19
private final AdminRegistrationApplicationsPage adminRegistrationApplicationsPage ;
15
20
private final AdminRegistrationApplicationDetailPage adminRegistrationApplicationDetailPage ;
16
21
private final AdminRegistrationPreApplicationPage adminRegistrationPreApplicationPage ;
22
+ private final AysLocalizationUtil localizationUtil ;
17
23
private final AysPageActions pageActions ;
18
- private String enteredReason ;
19
24
20
25
public AdminRegistrationPreApplicationCreation () {
21
26
this .adminRegistrationApplicationsPage = new AdminRegistrationApplicationsPage ();
22
27
this .adminRegistrationApplicationDetailPage = new AdminRegistrationApplicationDetailPage ();
23
28
this .adminRegistrationPreApplicationPage = new AdminRegistrationPreApplicationPage ();
29
+ this .localizationUtil = new AysLocalizationUtil ();
24
30
this .pageActions = new AysPageActions ();
25
31
}
26
32
@@ -42,7 +48,7 @@ public void selectAnInstitutionFromTheDropdownMenu() {
42
48
43
49
@ And ("Enter a valid creation reason with text between {int} and {int} characters" )
44
50
public void enterAValidCreationReasonWithTextBetweenAndCharacters (int arg0 , int arg1 ) {
45
- enteredReason = AysRandomUtil .generateReason ();
51
+ String enteredReason = AysRandomUtil .generateReason ();
46
52
pageActions .clickMethod (adminRegistrationPreApplicationPage .getReason ());
47
53
pageActions .sendKeysMethod (adminRegistrationPreApplicationPage .getReason (), enteredReason );
48
54
}
@@ -60,27 +66,29 @@ public void iShouldSeeASuccessMessageConfirmingThePreApplicationCreation() {
60
66
@ And ("I should be redirected to the details page after creation" )
61
67
public void iShouldBeRedirectedToTheDetailsPageAfterCreation () {
62
68
Assert .assertTrue (pageActions .isPresent (adminRegistrationApplicationDetailPage .getHeader ()));
63
- String actualReason = adminRegistrationApplicationDetailPage .getReasonValue ().getAttribute ("value" );
64
- Assert .assertEquals (enteredReason , actualReason );
65
69
}
66
70
67
71
68
72
@ Then ("Enter {string} and validate the error message {string}" )
69
- public void enterAndValidateTheErrorMessage (String invalidReason , String expectedErrorMessage ) {
73
+ public void enterAndValidateTheErrorMessage (String invalidReason , String errorKey ) {
70
74
pageActions .clickMethod (adminRegistrationPreApplicationPage .getReason ());
71
75
pageActions .sendKeysMethod (adminRegistrationPreApplicationPage .getReason (), invalidReason );
72
76
pageActions .clickMethod (adminRegistrationPreApplicationPage .getCreate ());
73
77
78
+
74
79
String actualErrorMessage = adminRegistrationPreApplicationPage .getErrorMessageForReason ().getText ();
75
- Assert .assertEquals (actualErrorMessage , expectedErrorMessage ,
76
- "Error message mismatch for reason: " + invalidReason );
80
+ localizationUtil .validateElementMessage (
81
+ errorKey ,
82
+ actualErrorMessage ,
83
+ true
84
+ );
77
85
78
86
}
79
87
80
88
@ Then ("Enter a reason with more than {int} characters and validate the error message" )
81
89
public void enterAReasonWithMoreThanCharactersAndValidateTheErrorMessage (int length ) {
82
- String longReason = "A" . repeat ( length + 1 );
83
- String expectedErrorMessage = "This field must not exceed " + length + " characters." ;
90
+ String longReason = AysRandomUtil . generateReason ( 600 );
91
+ String expectedErrorMessage = "This field must be at most " + length + " characters." ;
84
92
85
93
pageActions .clickMethod (adminRegistrationPreApplicationPage .getReason ());
86
94
pageActions .sendKeysMethod (adminRegistrationPreApplicationPage .getReason (), longReason );
@@ -106,4 +114,36 @@ public void iShouldSeeAnErrorMessageForReason(String expectedReasonErrorMessage)
106
114
String actualReasonErrorMessage = adminRegistrationPreApplicationPage .getErrorMessageForReason ().getText ();
107
115
Assert .assertEquals (actualReasonErrorMessage , expectedReasonErrorMessage , "Error message did not match." );
108
116
}
117
+
118
+ @ Then ("I should see that the application status is {string}" )
119
+ public void iShouldSeeThatTheApplicationStatusIs (String expectedStatus ) {
120
+ pageActions .waitUntilVisible (adminRegistrationApplicationDetailPage .getStatus ());
121
+ String actualStatus = adminRegistrationApplicationDetailPage .getStatus ().getAttribute ("value" );
122
+ Assert .assertEquals (actualStatus , expectedStatus );
123
+ }
124
+
125
+ @ Then ("User should be able to see all texts on admin registration pre-application page compatible with the {string} language" )
126
+ public void userShouldBeAbleToSeeAllTextsOnAdminRegistrationPreApplicationPageCompatibleWithTheLanguage (String language ) {
127
+ if (language .equalsIgnoreCase ("Turkish" )) {
128
+ AysLocaleStorageUtil .getLanguageFromLocalStorage ();
129
+ AysLocalizationUtil .setLanguage (AysLanguage .TR );
130
+ } else if (language .equalsIgnoreCase ("English" )) {
131
+ AysLocaleStorageUtil .getLanguageFromLocalStorage ();
132
+ AysLocalizationUtil .setLanguage (AysLanguage .EN );
133
+ }
134
+
135
+ String header = AysLocalizationUtil .getText ("admin_reg_pre_application_header" );
136
+ String institutionLabel = AysLocalizationUtil .getText ("admin_reg_pre_application_institution_label" );
137
+ String selectInstitutionButton = AysLocalizationUtil .getText ("admin_reg_pre_application_select_institution_button" );
138
+ String creationReasonLabel = AysLocalizationUtil .getText ("admin_reg_pre_application_creation_reason_label" );
139
+ String createButton = AysLocalizationUtil .getText ("admin_reg_pre_application_creat_button" );
140
+
141
+
142
+ assertEquals (adminRegistrationPreApplicationPage .getPreApplicationPageHeader ().getText (), header );
143
+ assertEquals (adminRegistrationPreApplicationPage .getInstitutionText ().getText (), institutionLabel );
144
+ assertEquals (adminRegistrationPreApplicationPage .getSelectInstitutionText ().getText (), selectInstitutionButton );
145
+ assertEquals (adminRegistrationPreApplicationPage .getCreationReasonText ().getText (), creationReasonLabel );
146
+ assertEquals (adminRegistrationPreApplicationPage .getCreate ().getText (), createButton );
147
+
148
+ }
109
149
}
0 commit comments