public void GetCityAddresses_NoAddressesAvailable_EmptyResultReturned()
        {
            var mockRepository = new Mock <IAddressRepository>();

            mockRepository.Setup(m => m.GetAddresses()).ReturnsAsync(() => new List <Address>());

            var service = new CityAddressService(mockRepository.Object);
            var task    = service.GetCityAddresses();
            var result  = task.Result.ToList();

            Assert.AreEqual(0, result.Count);
        }
        public void GetCityAddresses_AddressesAvailable_GroupedResultsReturned()
        {
            var mockRepository = new Mock <IAddressRepository>();

            mockRepository.Setup(m => m.GetAddresses()).ReturnsAsync(() => testData);

            var service = new CityAddressService(mockRepository.Object);
            var task    = service.GetCityAddresses();
            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());
        }