I am using Reqnroll in an ASP.NET Core MVC app written in C#.
I have the following scenario:
Szenario: Passwort zurücksetzen und anmelden
Wenn ich auf Passwort vergessen klicke
Und meine Email eingebe
Dann wird die Erfolgsmeldung "Prüfe dein Email Postfach" angezeigt
Wenn ich den Link öffne
Und ich mein Passwort wie folgt neu setzte:
| Label | Eingabe |
| E-Mail | (Benutzer_Email) |
| Passwort | Abc1234! |
| Passwort bestätigen | Abc1234! |
Dann ist die Seite "Anmelden" offen
My problem is, that I can't find a way to replace the (Benutzer_Email) value with [StepArgumentTransformation]. Each scenario is run with a different email and username. The email this scenario gets is random, that is why I have to replace it.
I have done it successfully when just using a simple string:
[StepArgumentTransformation]
public string ErsetzteBenutzerDaten(string eingabe)
{
var benutzer = this.testContext.GibBenutzer();
return eingabe.Replace("(Benutzername)", benutzer.Benutzername)
.Replace("(Benutzer_Email)", benutzer.Email);
}
But within a DataTable, I just can't figure this one out.
This code doesn't work:
[StepArgumentTransformation]
public DataTable TransformEmail(DataTable table)
{
var benutzer = this.testContext.GibBenutzer();
foreach (var row in table.Rows)
{
for (int i = 0; i < row.Keys.Count; i++)
{
var value = row[i];
table.Rows. = value.Replace("(Benutzername)", benutzer.Benutzername)
.Replace("(Benutzer_Email)", benutzer.Email);
}
}
return benutzer.Email;
}
Does anyone know how to do this correctly?
Thank you in advance
Simon