62 lines
2.1 KiB
C#
62 lines
2.1 KiB
C#
using MeetTheTeacher.Model;
|
|
|
|
namespace MeetTheTeacher.Test.Model;
|
|
|
|
public sealed class CsvDataTests
|
|
{
|
|
[Fact]
|
|
public void GetHeader_Valid()
|
|
{
|
|
var headerNames = new List<string> { "Name", "Day", "ConsultingHour", "Room" };
|
|
var data = new List<string> { "Teacher1", "Monday", "10:00-12:00", "A1" };
|
|
|
|
var csvData = new CsvData(headerNames, data);
|
|
|
|
csvData.GetHeader().Should().Be("Name;Day;ConsultingHour;Room");
|
|
}
|
|
|
|
[Fact]
|
|
public void GetData_Valid()
|
|
{
|
|
var headerNames = new List<string> { "Name", "Day", "ConsultingHour", "Room" };
|
|
var data = new List<string> { "Teacher1", "Monday", "10:00-12:00", "A1" };
|
|
|
|
var csvData = new CsvData(headerNames, data);
|
|
|
|
csvData.GetData().Should().Be("Teacher1;Monday;10:00-12:00;A1");
|
|
}
|
|
|
|
[Fact]
|
|
public void Deconstruct_Valid()
|
|
{
|
|
var headerNames = new List<string> { "Name", "Day", "ConsultingHour", "Room" };
|
|
var data = new List<string> { "Teacher1", "Monday", "10:00-12:00", "A1" };
|
|
|
|
var csvData = new CsvData(headerNames, data);
|
|
|
|
var (deconstructedHeaderNames, deconstructedData) = csvData;
|
|
|
|
deconstructedHeaderNames.Should().BeEquivalentTo(headerNames);
|
|
deconstructedData.Should().BeEquivalentTo(data);
|
|
}
|
|
|
|
[Theory]
|
|
[MemberData(nameof(EmptyInputData))]
|
|
public void GetHeaderAndData_EmptyInputData_ReturnsEmptyString(string[] headerNames, string[] data)
|
|
{
|
|
var csvData = new CsvData(headerNames, data);
|
|
|
|
string header = csvData.GetHeader();
|
|
string rowData = csvData.GetData();
|
|
|
|
header.Should().Be(string.Join(CsvData.Separator, headerNames));
|
|
rowData.Should().Be(string.Join(CsvData.Separator, data));
|
|
}
|
|
|
|
public static TheoryData<string[], string[]> EmptyInputData => new()
|
|
{
|
|
{ Array.Empty<string>(), new[] { "Teacher1", "Monday", "10:00-12:00", "A1" } },
|
|
{ new[] { "Name", "Day", "ConsultingHour", "Room" }, Array.Empty<string>() },
|
|
{ Array.Empty<string>(), Array.Empty<string>() }
|
|
};
|
|
}
|