Adapt welcome wallpaper to SGU gender
This commit is contained in:
@@ -133,6 +133,64 @@ public sealed class SguProfileParserTests
|
||||
Assert.Null(profile.Email);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData("ctl00_contenedor_ddlsexo", "ctl00$contenedor$ddlsexo", "1", InstitutionalGender.Male)]
|
||||
[InlineData("alternate-id", "ctl00$contenedor$ddlsexo", "2", InstitutionalGender.Female)]
|
||||
public void ParsesStaffGenderFromTheSelectedPersonalDataOption(
|
||||
string id,
|
||||
string name,
|
||||
string selectedValue,
|
||||
InstitutionalGender expected)
|
||||
{
|
||||
string html = $"""
|
||||
<select id="{id}" name="{name}">
|
||||
<option value="">Seleccione...</option>
|
||||
<option value="1"{(selectedValue == "1" ? " selected=\"selected\"" : string.Empty)}>Masculino</option>
|
||||
<option value="2"{(selectedValue == "2" ? " selected=\"selected\"" : string.Empty)}>Femenino</option>
|
||||
</select>
|
||||
""";
|
||||
|
||||
InstitutionalProfile? profile = SguProfileParser.ParseAdministrativePersonal(html);
|
||||
|
||||
Assert.NotNull(profile);
|
||||
Assert.Equal(expected, profile.Gender);
|
||||
}
|
||||
|
||||
[Theory]
|
||||
[InlineData("M", InstitutionalGender.Male)]
|
||||
[InlineData("f", InstitutionalGender.Female)]
|
||||
public void ParsesStudentGenderFromTheInformationSpan(
|
||||
string source,
|
||||
InstitutionalGender expected)
|
||||
{
|
||||
string html = $"""
|
||||
<span id="ctl00_contenedor_HistorialAlumno1_lblClaveAlumnoHP">123456</span>
|
||||
<span id="ctl00_contenedor_HistorialAlumno1_lblSexoAlumnoHP">{source}</span>
|
||||
""";
|
||||
|
||||
InstitutionalProfile? profile = SguProfileParser.ParseStudent(html, "123456");
|
||||
|
||||
Assert.NotNull(profile);
|
||||
Assert.Equal(expected, profile.Gender);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void IgnoresUnknownGenderValuesWithoutFailingProfileParsing()
|
||||
{
|
||||
const string html = """
|
||||
<input id="ctl00_contenedor_txtNombre" value="PERSONA" />
|
||||
<select id="ctl00_contenedor_ddlsexo">
|
||||
<option selected="selected" value="9">SIN CLASIFICAR</option>
|
||||
</select>
|
||||
""";
|
||||
|
||||
InstitutionalProfile? profile = SguProfileParser.ParseAdministrativePersonal(html);
|
||||
|
||||
Assert.NotNull(profile);
|
||||
Assert.Equal("Persona", profile.DisplayName);
|
||||
Assert.Null(profile.Gender);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ParsesAdministrativeAddressFromInputsAndSelectedOptions()
|
||||
{
|
||||
@@ -182,7 +240,8 @@ public sealed class SguProfileParserTests
|
||||
InstitutionalProfile personal = new(
|
||||
DisplayName: "María del Carmen de la Fuente",
|
||||
GivenName: "María del Carmen",
|
||||
Surname: "de la Fuente");
|
||||
Surname: "de la Fuente",
|
||||
Gender: InstitutionalGender.Female);
|
||||
InstitutionalProfile location = new(
|
||||
StreetAddress: "Calle Uno 10",
|
||||
City: "Ciudad de México",
|
||||
@@ -200,6 +259,7 @@ public sealed class SguProfileParserTests
|
||||
Assert.Equal("Ingeniería", combined.Department);
|
||||
Assert.Equal("Calle Uno 10", combined.StreetAddress);
|
||||
Assert.Equal("01000", combined.PostalCode);
|
||||
Assert.Equal(InstitutionalGender.Female, combined.Gender);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -215,6 +275,7 @@ public sealed class SguProfileParserTests
|
||||
<span id="ctl00_contenedor_HistorialAlumno1_lblCorreoAlumnoHP">
|
||||
<a href="mailto:alumna@lasalle.mx">ALUMNA@LASALLE.MX</a>
|
||||
</span>
|
||||
<span id="ctl00_contenedor_HistorialAlumno1_lblSexoAlumnoHP">F</span>
|
||||
<span id="ctl00_contenedor_HistorialAlumno1_lblCURPAlumnoHP">
|
||||
DATO-SENSIBLE-QUE-NO-DEBE-EXTRAERSE
|
||||
</span>
|
||||
@@ -262,6 +323,7 @@ public sealed class SguProfileParserTests
|
||||
Assert.Equal("Ciudad de México", profile.City);
|
||||
Assert.Equal("Ciudad de México", profile.State);
|
||||
Assert.Equal("08500", profile.PostalCode);
|
||||
Assert.Equal(InstitutionalGender.Female, profile.Gender);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
|
||||
Reference in New Issue
Block a user