Exemplo n.º 1
0
        public async void RequestSession_Returns_OkObjectResult_With_SessionRequestDto()
        {
            var userId    = Guid.NewGuid();
            var roomId    = Guid.NewGuid();
            var startTime = new DateTime(2018, 1, 1, 10, 0, 0, DateTimeKind.Unspecified);
            var endTime   = startTime.AddHours(2);

            _identity.Setup(i => i.IsAuthenticated).Returns(true);
            _identity.Setup(i => i.Name).Returns(userId.ToString());
            _identity.Setup(i => i.Claims).Returns(new List <Claim>
            {
                new Claim(ClaimTypes.Name, userId.ToString()),
                new Claim(ApiClaimTypes.TimeZoneId, "1"),
                new Claim(ApiClaimTypes.TimeZoneName, "Central Standard Time"),
                new Claim(ApiClaimTypes.TimeZoneUtcOffset, "-6")
            });

            var room = new RoomDto
            {
                Id = roomId
            };

            var expectedModel = new SessionRequestDto
            {
                Id               = Guid.NewGuid(),
                RoomId           = roomId,
                RequestingUserId = userId,
                RequestedTime    = new DateRangeDto {
                    Start = startTime, End = endTime
                }
            };

            _roomService
            .Setup(s => s.GetAsync(It.IsAny <Guid>()))
            .Returns(Task.FromResult(room));

            _roomService
            .Setup(s => s.RequestSessionAsync(It.IsAny <SessionRequestDto>()))
            .Returns(Task.FromResult(expectedModel));

            var result = await _roomsController.RequestSession(roomId, expectedModel.RequestedTime);

            Assert.IsType <OkObjectResult>(result);

            var okResult = result as OkObjectResult;

            Assert.IsType <SessionRequestDto>(okResult.Value);

            var actual = okResult.Value as SessionRequestDto;

            Assert.Equal(expectedModel.Id, actual.Id);
            Assert.Equal(expectedModel.RoomId, actual.RoomId);
            Assert.Equal(expectedModel.RequestingUserId, actual.RequestingUserId);
            Assert.Equal(expectedModel.RequestedTime.Start, actual.RequestedTime.Start);
            Assert.Equal(expectedModel.RequestedTime.End, actual.RequestedTime.End);
        }