52 lines
2 KiB
C#
52 lines
2 KiB
C#
using MeetTheTeacher.Import;
|
|
using MeetTheTeacher.Model;
|
|
|
|
namespace MeetTheTeacher.Test.Import;
|
|
|
|
public sealed class TeacherDataCsvImporterTests
|
|
{
|
|
[Fact]
|
|
public void DataLoading_Simple()
|
|
{
|
|
var importer = new TeacherDataCsvImporter(GetPath("teachers_minimal.csv"),
|
|
GetPath("teachers-with-business-card_minimal.csv"));
|
|
|
|
IEnumerable<Teacher> data = importer.LoadTeacherData();
|
|
|
|
// wrapping in list, because enumerating multiple times
|
|
var dataAsList = new List<Teacher>(data);
|
|
|
|
dataAsList.Should().NotBeEmpty().And.HaveCount(4);
|
|
CheckTeacher(dataAsList[0], "Aberger Christian", DayOfWeek.Tuesday, SchoolUnit.UE06,
|
|
new TimeFrame(new(12,45), new(13,35)),
|
|
"E74", null);
|
|
CheckTeacher(dataAsList[1], "Atak Mehmet", null, null, null, null, null);
|
|
CheckTeacher(dataAsList[2], "Auernig Franz", DayOfWeek.Thursday, SchoolUnit.UE05,
|
|
new TimeFrame(new(11,50), new(12,40)),
|
|
"E31", null);
|
|
CheckTeacher(dataAsList[3], "Baar Erich", DayOfWeek.Friday, SchoolUnit.UE04,
|
|
new TimeFrame(new(10,55), new(11,45)),
|
|
"E05", 12240);
|
|
}
|
|
|
|
private static void CheckTeacher(Teacher teacher, string name, DayOfWeek? dayOfWeek, SchoolUnit? unit,
|
|
TimeFrame? time, string? room, int? imageId)
|
|
{
|
|
teacher.Name.Should().Be(name);
|
|
teacher.ConsultingHourWeekDay.Should().Be(dayOfWeek);
|
|
teacher.ConsultingHourUnit.Should().Be(unit);
|
|
teacher.ConsultingHour.Should().Be(time);
|
|
teacher.Room.Should().Be(room);
|
|
|
|
if (imageId.HasValue)
|
|
{
|
|
teacher.Should().BeOfType<TeacherWithBusinessCard>();
|
|
}
|
|
else
|
|
{
|
|
teacher.Should().NotBeOfType<TeacherWithBusinessCard>();
|
|
}
|
|
}
|
|
|
|
private static string GetPath(string fileName) => Path.Combine(Directory.GetCurrentDirectory(), $"Data/{fileName}");
|
|
}
|