Beispiel #1
0
        public async Task RegisterCourseCommandIsValid_RegistedCourse_ReturnsSuccessMessage(string name, Type type)
        {
            //Expected
            var messageExpected = "Curso salvo com sucesso!";
            var objExpected     = new Course
            {
                Name = name,
                Type = type
            };

            IResponse response = new Response
            {
                hasError      = false,
                collections   = null,
                ErrorMessages = new List <string>(),
                message       = "O Curso foi salvo com sucesso!"
            };

            //Arrange

            var mockRepository = new Mock <ICourseRepository>();

            mockRepository.Setup(x => x.Add(It.IsAny <Course>())).Returns(Task.FromResult(1));
            mockRepository.Setup(x => x.Any(It.IsAny <Expression <Func <Course, bool> > >())).Returns(Task.FromResult(false));
            var mockMapper = new Mock <IMapper>();

            mockMapper.Setup(x => x.Map <Course>(It.IsAny <RegisterCourseCommand>())).Returns(objExpected);
            var mockResponse = new Mock <IResponse>();

            mockResponse.Setup(x => x.Generate(It.IsAny <object>(), It.IsAny <string>(), It.IsAny <bool>(), It.IsAny <List <string> >())).Returns(Task.FromResult(response));

            var command = new RegisterCourseCommand
            {
                Name = name,
                Type = type
            };

            var handler = new RegisterCourseHandler(mockMapper.Object, mockRepository.Object, mockResponse.Object);

            //Act

            var result = await handler.Handle(command, new CancellationToken());

            //Assert
            Assert.NotNull(result);
            Assert.NotEmpty(result.message);
            Assert.False(result.hasError);
            Assert.Equal(result.message, messageExpected);
            Assert.IsType <Response>(result);
        }
Beispiel #2
0
 public async Task Register(CourseInputModel courseInputModel) =>
 await mediator.Send(RegisterCourseCommand.Create(
                         courseInputModel.Name, courseInputModel.Description, courseInputModel.Price, courseInputModel.Video));
 public Task <IResponse> Register([FromBody] RegisterCourseCommand command)
 {
     return(mediator.Send(command));
 }