using CapaServicio.Controllers;
using CapaServicio.Models;
using CapaServicio.Repository;
using CapaServicio.Service;
using Microsoft.AspNetCore.Mvc;
using Moq;
namespace CapaTest
{
public class UnitTest1
{
private Mock<IAlumnoService> _mockService;
private AlumnoesController _controller;
public UnitTest1()
{
// Crear el mock del servicio y configurar su comportamiento
_mockService = new Mock<IAlumnoService>();
// Esto son datos falsos de prueba que será lo que obtengamos cuando
// El controlador llame al servicio
_mockService.Setup(s => s.ObtenerTodos()).Returns(new List<Alumno> { new Alumno(), new Alumno() });
_mockService.Setup(s => s.ObtenerPorId(2)).Returns(new Alumno());
//// Crear una instancia del controlador con el mock del servicio
_controller = new AlumnoesController(_mockService.Object);
}
[Fact]
public async Task Test1Async()
{
// Aquí verifico el index
var result = await _controller.Index() as ViewResult;
// Verificar
Assert.NotNull(result);
// Compruebo, por ejemplo, que el modelo es una lista de alumnos
Assert.IsType(typeof(List<Alumno>), result.Model);
Assert.Equal(2, ((List<Alumno>)result.Model).Count);
// Aquí verifico el Details con un id 2
result = await _controller.Details(2) as ViewResult;
Assert.NotNull(result);
// Compruebo que el modelo sea alumno...
Assert.IsType(typeof(Alumno), result.Model);
}
}
}