コード例 #1
0
        public void CreateRequest_EmailSent_RequestStored_Success()
        {
            // Arrange
            TemperatureRequest request = GetValidTemperatureRequest();

            // Act
            Result result = _airConditionUnitService.CreateRequest(RequesterEmail, request);

            // Assert
            Common.AssertResult(result, isSuccess: true);
            AssertEmailSender(request, sendCalled: true);
            AssertRepository(request, saveCalled: true);
        }
コード例 #2
0
        public IHttpActionResult CreateTemperatureRequest(TemperatureRequest request)
        {
            _logger.Debug($"temperatuerRequest {request} from '{User.Identity?.Name}'");
            if (request.IsInvalid())
            {
                _logger.Warn("temperatuerRequest is invalid");
                return(BadRequest());
            }

            if (request.RequestDateTime == null)
            {
                _logger.Info("temperatuerRequest has no time specified");
                request.RequestDateTime = DateTime.UtcNow;
            }

            Result result = _airConditionUnitService.CreateRequest(User.Identity.Name, request);

            _logger.Debug(result.ToString());

            if (result.IsFailure)
            {
                return(InternalServerError());
            }

            return(GetTemperatureRequestHistory(request.AirConditionUnitId));
        }
コード例 #3
0
        public void AirConditionUnitsController_CreateTemperatureRequest_ValidRequest_Success()
        {
            // Arrange
            var request = GetValidTemperatureRequest();

            _airConditionUnitService.CreateRequest(
                Arg.Any <string>(),
                Arg.Is <TemperatureRequest>(r => r.AirConditionUnitId == request.AirConditionUnitId &&
                                            r.AirConditionUnitName == request.AirConditionUnitName &&
                                            r.Temperature == request.Temperature))
            .Returns(new Result());

            _airConditionUnitService.GetRequestHistory(Arg.Any <string>())
            .Returns(new Result <TemperatureRequestHistory[]>(new TemperatureRequestHistory[0]));

            // Act
            // TODO: refactor
            var result = _controller.CreateTemperatureRequest(request) as OkNegotiatedContentResult <TemperatureRequestHistoryResponse>;

            // Assert
            //Assert.IsNotNull(result, Common.ShowResponseTypeMismatchMessage(typeof(OkResult)));
            Assert.IsNotNull(result, Common.ShowResponseTypeMismatchMessage(typeof(OkNegotiatedContentResult <TemperatureRequestHistoryResponse>)));
            Assert.AreEqual(0, result.Content.History.Length);
        }