public void When_invalid_phone_number_entered_during_create_phone_number_then_return_bad_request(string phoneNo)
        {
            var createPhoneDto = new CreatePhoneRequestDto()
            {
                PhoneNo = phoneNo
            };

            var result = _customerController.CreatePhoneNumber(1, createPhoneDto);

            Assert.IsInstanceOf <BadRequestObjectResult>(result);
        }
        public void When_duplicate_phone_data_entered_during_create_phone_number_then_return_bad_request()
        {
            var createPhoneDto = new CreatePhoneRequestDto()
            {
                PhoneNo = "0412345678"
            };

            _phoneInfoRepository.IsDuplicatePhoneNumberFound(createPhoneDto.PhoneNo).Returns(true);

            var result = _customerController.CreatePhoneNumber(1, createPhoneDto);

            Assert.IsInstanceOf <BadRequestObjectResult>(result);
        }
        public void When_create_phone_number_for_non_existance_customer_then_return_bad_request()
        {
            _phoneInfoRepository.IsCustomerExists(1).Returns(false);

            var createPhoneDto = new CreatePhoneRequestDto()
            {
                PhoneNo = "0412345678"
            };

            var result = _customerController.CreatePhoneNumber(1, createPhoneDto);

            Assert.IsInstanceOf <BadRequestObjectResult>(result);
        }
        public void When_valid_data_entered_then_new_phone_added_into_the_context()
        {
            var createPhoneDto = new CreatePhoneRequestDto()
            {
                PhoneNo = "0412345678"
            };

            _phoneInfoRepository.IsCustomerExists(1).Returns(true);
            _phoneInfoRepository.IsDuplicatePhoneNumberFound(createPhoneDto.PhoneNo).Returns(false);

            var result = _customerController.CreatePhoneNumber(1, createPhoneDto);

            _phoneInfoRepository.Received().CreatePhoneNumber(Arg.Any <Phone>());
        }
Ejemplo n.º 5
0
        public IActionResult CreatePhoneNumber(int customerId, [FromBody] CreatePhoneRequestDto newPhoneNo)
        {
            if (newPhoneNo == null)
            {
                return(BadRequest(OperationResponse.Fail("Phone number is required")));
            }

            if (!_phoneInfoRepository.IsCustomerExists(customerId))
            {
                return(BadRequest(OperationResponse.Fail("Customer not found")));
            }

            if (_phoneInfoRepository.IsDuplicatePhoneNumberFound(newPhoneNo.PhoneNo))
            {
                return(BadRequest(OperationResponse.Fail("This phone number already exists")));
            }

            var isPhoneNoValid = Regex.IsMatch(newPhoneNo.PhoneNo, "(03|04)\\d{8}$");

            if (!isPhoneNoValid)
            {
                return(BadRequest(OperationResponse.Fail("Phone number is incorrect! Enter 10 digits number beginning with 03 or 04!")));
            }

            var newPhoneData = new Phone()
            {
                CustomerId = customerId,
                Number     = newPhoneNo.PhoneNo,
                Activated  = false
            };

            _phoneInfoRepository.CreatePhoneNumber(newPhoneData);
            if (!_phoneInfoRepository.Save())
            {
                return(StatusCode(500, OperationResponse.Fail("Unsuccessful saving data. Something wrong in the server.")));
            }

            return(CreatedAtRoute("GetCustomerPhones",
                                  customerId,
                                  OperationResponse.Succeed(new
            {
                customerId,
                newPhoneNo = newPhoneData.Number
            })));
        }
        public void When_user_input_null_phone_no_when_create_phone_number_then_return_bad_request()
        {
            var createPhoneDto = new CreatePhoneRequestDto()
            {
                PhoneNo = null
            };

            var result = _customerController.CreatePhoneNumber(1, createPhoneDto);

            Assert.IsInstanceOf <BadRequestObjectResult>(result);

            var badResult = result as BadRequestObjectResult;

            Assert.AreEqual(400, badResult.StatusCode);

            var value = badResult.Value as OperationResponse;

            Assert.IsFalse(value.IsSuccessful);
        }
        public void When_new_phone_unsuccessfully_save_into_db_then_return_server_error()
        {
            var createPhoneDto = new CreatePhoneRequestDto()
            {
                PhoneNo = "0412345678"
            };

            _phoneInfoRepository.IsCustomerExists(1).Returns(true);
            _phoneInfoRepository.IsDuplicatePhoneNumberFound(createPhoneDto.PhoneNo).Returns(false);
            _phoneInfoRepository.Save().Returns(false);

            var result = _customerController.CreatePhoneNumber(1, createPhoneDto);

            Assert.IsInstanceOf <ObjectResult>(result);

            var statusCodeResult = result as ObjectResult;

            Assert.AreEqual(500, statusCodeResult.StatusCode);
        }
        public void When_new_phone_successfully_save_into_db_then_return_success()
        {
            var createPhoneDto = new CreatePhoneRequestDto()
            {
                PhoneNo = "0412345678"
            };

            _phoneInfoRepository.IsCustomerExists(1).Returns(true);
            _phoneInfoRepository.IsDuplicatePhoneNumberFound(createPhoneDto.PhoneNo).Returns(false);
            _phoneInfoRepository.Save().Returns(true);

            var result = _customerController.CreatePhoneNumber(1, createPhoneDto);

            Assert.IsInstanceOf <CreatedAtRouteResult>(result);

            var routeResult = result as CreatedAtRouteResult;

            Assert.AreEqual(201, routeResult.StatusCode);

            var value = routeResult.Value as OperationResponse;

            Assert.IsTrue(value.IsSuccessful);
        }