public void CreateFacility_RegularValues_OkResults()
        {
            //Arrange
            var facility = new Mock <IFacility>();

            facility.SetupGet(a => a.Id).Returns(4);
            facility.SetupGet(a => a.BuildingId).Returns(1);
            facility.SetupGet(a => a.Level).Returns(model.Level);
            facility.SetupGet(a => a.Number).Returns(model.Number);

            facade.Setup(f => f.CreateFacility("3445", model.Level, model.Number)).Returns(facility.Object);

            var controller = new FacilityController(facade.Object)
            {
                ControllerContext = controllerContext
            };

            //Act
            var result = controller.CreateFacility(model);

            //Assert
            Assert.NotNull(result);

            var okresult = Assert.IsType <OkNegotiatedContentResult <GenericResponse> >(result);

            Assert.Equal(true, okresult.Content.IsSuccess);
        }
        public void CreateFacility_ThrowsError_BadModel()
        {
            //Arrange
            var controller = new FacilityController(facade.Object)
            {
                ControllerContext = controllerContext
            };

            controller.ModelState.AddModelError("Key", "ErrorMessage");

            //Act
            var result = controller.CreateFacility(model);

            //Assert
            Assert.NotNull(result);
            Assert.IsType <InvalidModelStateResult>(result);
        }
        public void CreateFacility_ThrowsError_InternalError()
        {
            //Arrange
            var exception = new ConnApsDomain.Exceptions.InternalException();

            facade.Setup(f => f.CreateFacility("3445", model.Level, model.Number)).Throws(exception);

            var controller = new FacilityController(facade.Object)
            {
                ControllerContext = controllerContext
            };

            //Act
            var result = controller.CreateFacility(model);

            //Assert
            Assert.NotNull(result);

            Assert.IsType <InternalServerErrorResult>(result);
        }
        public void CreateFacility_InvalidValues_BadRequest()
        {
            //Arrange
            var exception = new ConnApsDomain.Exceptions.NotFoundException("Facility");

            facade.Setup(f => f.CreateFacility("3445", model.Level, model.Number)).Throws(exception);

            var controller = new FacilityController(facade.Object)
            {
                ControllerContext = controllerContext
            };

            //Act
            var result = controller.CreateFacility(model);

            //Assert
            Assert.NotNull(result);

            var badRequest = Assert.IsType <BadRequestErrorMessageResult>(result);

            Assert.Equal("The Facility you requested was not found. Please search again.", badRequest.Message);
        }