Last active
December 21, 2021 15:55
-
-
Save evan-boissonnot/69f05705de2cf4eba86ea89c4df0a46c to your computer and use it in GitHub Desktop.
Mediatr and service collection to test handler within controller
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public async Task ShouldReturnListOfSelfies() | |
{ | |
// ARRANGE | |
var expectedList = new List<Selfie>() | |
{ | |
new Selfie() { Wookie = new Wookie() }, | |
new Selfie() { Wookie = new Wookie() } | |
}; | |
var repositoryMock = new Mock<ISelfieRepository>(); | |
repositoryMock.Setup(item => item.GetAll(It.IsAny<int>())).Returns(expectedList); | |
var services = new ServiceCollection(); | |
var serviceConfig = new MediatRServiceConfiguration(); | |
ServiceRegistrar.AddRequiredServices(services, serviceConfig); | |
services.AddScoped<IRequestHandler<SelectAllSelfiesQuery, List<SelfieResumeDto>>, SelectAllSelfiesHandler>(); | |
//services.AddMediatR(typeof(SelectAllSelfiesHandler).GetType().Assembly); | |
services.AddSingleton(typeof(ISelfieRepository), repositoryMock.Object); | |
var provider = services.BuildServiceProvider(); | |
var mediator = provider.GetRequiredService<IMediator>(); | |
var service = provider.GetRequiredService<ISelfieRepository>(); | |
//mediatorMock.Setup(item => item.Send(It.IsAny<int>(), CancellationToken.None)).Returns(Task.FromResult<object>(expectedList)); | |
var controller = new SelfiesController(mediator, repositoryMock.Object, new Mock<IWebHostEnvironment>().Object); | |
// ACT | |
var result = await controller.GetAll(); | |
// ASSERT | |
Assert.NotNull(result); | |
Assert.IsType<OkObjectResult>(result); | |
OkObjectResult okResult = result as OkObjectResult; | |
var resultObject = okResult.Value; | |
Assert.NotNull(resultObject); | |
Assert.IsType<List<SelfieResumeDto>>(resultObject); | |
List<SelfieResumeDto> list = okResult.Value as List<SelfieResumeDto>; | |
Assert.True(list.Count == expectedList.Count); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment