public async Task Get_Valid()
        {
            int numUsers = 1;

            var logger = new Mock <ILogger <RandomUserGeneratorDataController> >(MockBehavior.Strict);
            var logic  = new Mock <IRandomUserGeneratorLogic>(MockBehavior.Strict);

            var userList = new List <User>
            {
                new User
                {
                    Gender    = "Male",
                    FirstName = "Jon",
                    LastName  = "Snow",
                    Country   = "House Stark"
                }
            };

            logic.Setup(x => x.GetRandomUserGeneratorDataHolder(numUsers))
            .ReturnsAsync(new RandomUserGeneratorDataHolder(userList));

            var controller = new RandomUserGeneratorDataController(logger.Object, logic.Object);

            var result = await controller.Get(numUsers);

            Assert.IsInstanceOfType(result, typeof(OkObjectResult));
            logic.VerifyAll();
            logger.VerifyAll();
        }
        public async Task Get_Negative_Invalid()
        {
            int numUsers = -1;

            var logger = new Mock <ILogger <RandomUserGeneratorDataController> >(MockBehavior.Strict);
            var logic  = new Mock <IRandomUserGeneratorLogic>(MockBehavior.Strict);

            var controller = new RandomUserGeneratorDataController(logger.Object, logic.Object);

            var result = await controller.Get(numUsers);

            Assert.IsInstanceOfType(result, typeof(BadRequestObjectResult));
            logic.VerifyAll();
            logger.VerifyAll();
        }
        public async Task Get_Catches_Exception_Returns_ObjectResult()
        {
            int numUsers = 1;

            var logger = new Mock <ILogger <RandomUserGeneratorDataController> >(MockBehavior.Strict);
            var logic  = new Mock <IRandomUserGeneratorLogic>(MockBehavior.Strict);

            string errorMessage = "Unexpected error message";

            logic.Setup(x => x.GetRandomUserGeneratorDataHolder(numUsers))
            .Throws(new UnexpectedApiException(errorMessage));

            var controller = new RandomUserGeneratorDataController(logger.Object, logic.Object);

            var result = await controller.Get(numUsers);

            Assert.IsInstanceOfType(result, typeof(ObjectResult));
            logic.VerifyAll();
            logger.VerifyAll();
        }