public async Task AddSession_HappyPath_ShouldReturnOk() { //Arrange var endDate = DateTime.Now; var startDate = DateTime.Now.AddDays(-1); var newSession = new AddSessionDto(); var mockSessionService = A.Fake <ISessionService>(); A.CallTo(() => mockSessionService.AddSession(newSession)).Returns( new ServiceResponse <List <GetSessionDto> > { Data = new List <GetSessionDto> { new GetSessionDto { Id = 1, StartDateTime = startDate, EndDateTime = endDate } } }); var controller = new SessionController(mockSessionService); //Act var result = await controller.AddSession(newSession); var okResult = result as OkObjectResult; var actualResult = okResult.Value as ServiceResponse <List <GetSessionDto> >; //Assert Assert.AreEqual(typeof(OkObjectResult), result.GetType()); Assert.AreEqual(1, actualResult.Data[0].Id); Assert.AreEqual(startDate, actualResult.Data[0].StartDateTime); Assert.AreEqual(endDate, actualResult.Data[0].EndDateTime); }
public async Task <IActionResult> AddSession(AddSessionDto newSession) { ServiceResponse <List <GetSessionDto> > response = await _sessionService.AddSession(newSession); if (response.Data == null) { return(BadRequest(response)); } return(Ok(response)); }
public async Task AddSession_HappyPath_ShouldReturnBadRequest() { //Arrange var newSession = new AddSessionDto(); var mockSessionService = A.Fake <ISessionService>(); A.CallTo(() => mockSessionService.AddSession(newSession)).Returns( new ServiceResponse <List <GetSessionDto> > { Data = null }); var controller = new SessionController(mockSessionService); //Act var result = await controller.AddSession(newSession); //Assert Assert.AreEqual(typeof(BadRequestObjectResult), result.GetType()); }
public async Task <ServiceResponse <List <GetSessionDto> > > AddSession(AddSessionDto newSession) { ServiceResponse <List <GetSessionDto> > serviceResponse = new ServiceResponse <List <GetSessionDto> >(); try { Session session = _mapper.Map <Session>(newSession); session.User = await _context.Users.FirstOrDefaultAsync(u => u.Id == GetUserId()); int result = DateTime.Compare(newSession.StartDateTime, newSession.EndDateTime); if (result < 0) { session.StartDateTime = newSession.StartDateTime; session.EndDateTime = newSession.EndDateTime; await _context.Sessions.AddAsync(session); await _context.SaveChangesAsync(); serviceResponse.Data = (_context.Sessions.Where(s => s.User.Id == GetUserId()) .Select(s => _mapper.Map <GetSessionDto>(s))).ToList(); } else { serviceResponse.Success = false; serviceResponse.Message = "EndDateTime cannot be earlier than StartDateTime."; } } catch (Exception ex) { serviceResponse.Success = false; serviceResponse.Message = ex.Message; } return(serviceResponse); }