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); }