public void Get_NoAddressesAvailable_EmptyResultReturned()
        {
            var mockService = new Mock <ICityAddressService>();

            mockService.Setup(m => m.GetCityAddresses()).ReturnsAsync(() => new List <City>());
            var mockLogger = new Mock <ILogger <CityGroupsController> >();

            var controller = new CityGroupsController(mockLogger.Object, mockService.Object);
            var task       = controller.Get();
            var result     = task.Result.ToList();

            Assert.AreEqual(0, result.Count);
        }
        public void Get_AddressesAvailable_GroupedResultsReturned()
        {
            var mockService = new Mock <ICityAddressService>();

            mockService.Setup(m => m.GetCityAddresses()).ReturnsAsync(() => testData);
            var mockLogger = new Mock <ILogger <CityGroupsController> >();

            var controller = new CityGroupsController(mockLogger.Object, mockService.Object);
            var task       = controller.Get();
            var result     = task.Result.ToList();

            Assert.AreEqual(2, result.Count);
            Assert.AreEqual("London", result[0].Name);
            Assert.AreEqual(2, result[0].Addresses.Count());
            Assert.AreEqual("New York", result[1].Name);
            Assert.AreEqual(1, result[1].Addresses.Count());
        }