public void UpdateDoorTypeReturnsBadRequestWhenModelIsInvalid()
        {
            var invalidModel = new DoorTypeModel();

            _sut.ModelState.AddModelError("name", "name is required");

            var result = _sut.UpdateEntity(invalidModel, 1) as BadRequestResult;

            Assert.That(result, Is.Not.Null);

            _doorTypeRepositoryMock.Verify(m => m.Update(It.IsAny <int>(), It.IsAny <DoorType>()), Times.Never);
        }
        public void UpdateDoorTypeReturnsBadRequestWhenIdFromModelDoesNotMatchIdFromQueryParameter()
        {
            var invalidModel = new DoorTypeModel
            {
                Id = 1
            };

            var result = _sut.UpdateEntity(invalidModel, invalidModel.Id + 1) as BadRequestObjectResult;

            Assert.That(result, Is.Not.Null);

            _doorTypeRepositoryMock.Verify(m => m.Update(It.IsAny <int>(), It.IsAny <DoorType>()), Times.Never);
        }
        public void UpdateDoorTypeReturnsNotFoundWhenDoorTypeIsNotFound()
        {
            var invalidModel = new DoorTypeModel
            {
                Id = 1
            };

            _doorTypeRepositoryMock.Setup(m => m.Update(It.IsAny <int>(), It.IsAny <DoorType>()))
            .Returns(false);

            var result = _sut.UpdateEntity(invalidModel, invalidModel.Id) as NotFoundObjectResult;

            Assert.That(result, Is.Not.Null);

            _doorTypeRepositoryMock.Verify(m => m.Update(It.IsAny <int>(), It.IsAny <DoorType>()), Times.Once);
        }
        public void UpdateDoorTypeReturnsOkWhenEverythingIsCorrect()
        {
            var validModel = new DoorTypeModel
            {
                Id   = 1,
                Name = ""
            };

            _doorTypeRepositoryMock.Setup(m => m.Update(It.IsAny <int>(), It.IsAny <DoorType>()))
            .Returns(true);

            var result = _sut.UpdateEntity(validModel, validModel.Id) as OkResult;

            Assert.That(result, Is.Not.Null);

            _doorTypeRepositoryMock.Verify(m => m.Update(It.IsAny <int>(), It.IsAny <DoorType>()), Times.Once);
        }
        public void PostDoorTypeReturnsOkWhenModelIsValid()
        {
            var validModel = new DoorTypeModel
            {
                Name = "name"
            };

            _mapperMock.Setup(m => m.Map <DoorTypeReturnModel>(It.IsAny <DoorType>()))
            .Returns(new DoorTypeReturnModel());
            _mapperMock.Setup(m => m.Map <DoorType>(It.IsAny <DoorTypeModel>()))
            .Returns(new DoorType());
            var result = _sut.PostEntity(validModel) as OkObjectResult;

            Assert.That(result, Is.Not.Null);
            Assert.That((DoorTypeReturnModel)result.Value, Is.Not.Null);

            _doorTypeRepositoryMock.Verify(m => m.Add(It.IsAny <DoorType>()), Times.Once);
        }