Контроллер:
Код: Выделить всё
public class ClassController : ControllerBase
{
private readonly IClassSqlService ClassSql;
private readonly ILogger Logger;
public ClassController(
IConfiguration config,
ILogger logger,
IDataAccessAbstractFactory classSql)
{
string SMString = config.GetValue(DataAccessName.SMCnx)!;
Logger = logger;
ClassSql = classSql.Create(SMString);
}
[HttpGet]
[ProducesResponseType(200, Type = typeof(List))]
public async Task ReadAllClasses(
string? academic_year = null)
{
List output;
if(academic_year is not null)
{
bool isIdValid = int.TryParse(academic_year, out int year);
if (isIdValid is false)
return BadRequest();
output = await ClassSql.ReadAllClassesByAcademicYearAsync(academic_year);
}
else
{
output = await ClassSql.ReadAllClassesAsync();
}
if (output.Any() is false)
return NotFound();
return Ok(output);
}
}
Код: Выделить всё
public class ClassControllerTests
{
private readonly IClassSqlService ClassSql;
private readonly ClassController sut;
public ClassControllerTests()
{
var config = A.Fake();
var classSql = A.Fake();
var logger = A.Fake();
sut = new ClassController(config, logger, classSql);
ClassSql = classSql.Create(string.Empty);
}
[Fact]
public async Task ReadAllClassesShouldReturnOk()
{
// arrange
var classes = A.CollectionOfFake(5);
A.CallTo(() => ClassSql.ReadAllClassesAsync()).Returns(classes.ToList());
// action
var result = await sut.ReadAllClasses();
// assert
result.Result.Should().NotBeNull();
result.Result.Should().BeOfType(typeof(OkObjectResult));
result.Value.Should().NotBeEmpty();
}
}
Любая помощь была бы замечательной.
Спасибо.
Подробнее здесь: https://stackoverflow.com/questions/783 ... fakeiteasy