Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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));
        }
Ejemplo n.º 3
0
        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());
        }
Ejemplo n.º 4
0
        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);
        }