public async Task NullReturnedWhenApiResponseIsOkAndDataIsArbitrary()
        {
            var repo    = new PetsRepository(new HttpClient(new MockHttpHandler("null", HttpStatusCode.OK)), _mockApplicationSettings.Object);
            var results = await repo.GetAllOwnersAndPets().ConfigureAwait(false);

            results.Should().BeNull();
        }
        public async Task NullReturnedWhenApiIsDown()
        {
            var repo    = new PetsRepository(new HttpClient(new MockHttpHandler(string.Empty, HttpStatusCode.BadRequest)), _mockApplicationSettings.Object);
            var results = await repo.GetAllOwnersAndPets().ConfigureAwait(false);

            results.Should().BeNull();
        }
        public async Task ResultsReturnedWhenApiIsUp()
        {
            var mockDataForGrouping = new List <Owner>
            {
                new Owner {
                    Name   = "Selina",
                    Gender = "Female",
                    Pets   = new List <Pet> {
                        new Pet {
                            Type = "Cat", Name = "Garfield"
                        },
                        new Pet {
                            Type = "Cat", Name = "Abe"
                        }
                    }
                },
                new Owner {
                    Name   = "Bruce",
                    Gender = "Male",
                    Pets   = new List <Pet> {
                        new Pet {
                            Type = "Cat", Name = "Jasper"
                        },
                        new Pet {
                            Type = "Dog", Name = "Scooby"
                        },
                        new Pet {
                            Type = "Cat", Name = "Garry"
                        }
                    }
                }
            };

            var mockJson = JsonConvert.SerializeObject(mockDataForGrouping);
            var repo     = new PetsRepository(new HttpClient(new MockHttpHandler(mockJson)), _mockApplicationSettings.Object);
            var results  = await repo.GetAllOwnersAndPets().ConfigureAwait(false);

            results.Should().NotBeNull();
        }