public void GetAddressById_AddressNotExisted_ReturnNotFound()
        {
            AddressService.ResetCalls();

            var  id       = 126;
            long clientId = 1;

            AddressService.Setup(x => x.GetAddress(clientId, id)).Returns((Address)null);

            var controller = new AddressController(AddressService.Object, Logger.Object)
            {
                ControllerContext = new ControllerContext {
                    HttpContext = new DefaultHttpContext()
                }
            };

            controller.ControllerContext.HttpContext.Items.Add("clientId", clientId);

            var actionResult = controller.GetById(id);
            var result       = actionResult as OkObjectResult;
            var result1      = actionResult as NotFoundResult;

            AddressService.Verify(x => x.GetAddress(clientId, id), Times.Once);
            Assert.IsTrue(result == null);
            Assert.IsTrue(result1 != null);
        }
        public void GetAddressById_ServiceReturnException_ReturnInternalServerError()
        {
            AddressService.ResetCalls();

            var  id               = 126;
            long clientId         = 1;
            var  exceptionMessage = "some exception message";

            AddressService.Setup(x => x.GetAddress(clientId, id)).Throws(new Exception(exceptionMessage));

            var controller = new AddressController(AddressService.Object, Logger.Object)
            {
                ControllerContext = new ControllerContext {
                    HttpContext = new DefaultHttpContext()
                }
            };

            controller.ControllerContext.HttpContext.Items.Add("clientId", clientId);

            var actionResult = controller.GetById(id);
            var result       = actionResult as OkObjectResult;
            var result1      = actionResult as ObjectResult;

            AddressService.Verify(x => x.GetAddress(clientId, id), Times.Once);
            Assert.IsTrue(result == null);
            Assert.IsTrue(result1 != null);
            Assert.AreEqual(result1.StatusCode, 500);
            Assert.AreEqual(result1.Value, exceptionMessage);
        }
        public void GetAddressById_AddressExisted_ReturnOk()
        {
            AddressService.ResetCalls();

            var  id       = 126;
            var  value    = "hgktb865fjygf";
            var  nodeId   = 1;
            long clientId = 1;

            AddressService.Setup(x => x.GetAddress(clientId, id)).Returns(new Address {
                Id = id, IsUsed = true, NodeId = nodeId, Value = value
            });

            var controller = new AddressController(AddressService.Object, Logger.Object)
            {
                ControllerContext = new ControllerContext {
                    HttpContext = new DefaultHttpContext()
                }
            };

            controller.ControllerContext.HttpContext.Items.Add("clientId", clientId);

            var actionResult = controller.GetById(id);
            var result       = actionResult as OkObjectResult;
            var pagedResult  = result.Value as WebApi.Areas.V1.Models.Address;

            AddressService.Verify(x => x.GetAddress(clientId, id), Times.Once);
            Assert.AreEqual(result.StatusCode, 200);
            Assert.AreEqual(pagedResult.Value, value);
            Assert.AreEqual(pagedResult.Id, id);
            Assert.AreEqual(pagedResult.IsUsed, true);
            Assert.AreEqual(pagedResult.NodeId, nodeId);
        }