public async Task GetPodsAsyncHitsTheUri()
        {
            var httpClientSettingsMock = GetKubeHttpClientSettingsProviderForTest();

            var httpClientMock = new Mock <IKubeHttpClient>();

            httpClientMock.Setup(httpClient => httpClient.Settings).Returns(httpClientSettingsMock.Object);
            HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new StringContent(JsonConvert.SerializeObject(new K8sEntityList <K8sPod>
                {
                    Items = new List <K8sPod>
                    {
                        new K8sPod()
                        {
                            Metadata = new K8sPodMetadata()
                            {
                                Name = "pod1"
                            }, Status = new K8sPodStatus()
                            {
                                ContainerStatuses = new List <ContainerStatus>()
                                {
                                    new ContainerStatus()
                                    {
                                        ContainerID = "c1"
                                    }
                                }
                            }
                        },
                        new K8sPod()
                        {
                            Metadata = new K8sPodMetadata()
                            {
                                Name = "pod2"
                            }, Status = new K8sPodStatus()
                            {
                                ContainerStatuses = new List <ContainerStatus>()
                                {
                                    new ContainerStatus()
                                    {
                                        ContainerID = "c2"
                                    }
                                }
                            }
                        }
                    }
                }))
            };

            httpClientMock.Setup(httpClient => httpClient.SendAsync(It.IsAny <HttpRequestMessage>())).Returns(Task.FromResult(response));
            using (K8sQueryClient target = new K8sQueryClient(httpClientMock.Object))
            {
                await target.GetPodsAsync();
            }

            httpClientMock.Verify(mock => mock.SendAsync(It.Is <HttpRequestMessage>(m => m.RequestUri.AbsoluteUri.Equals("https://baseaddress/api/v1/namespaces/queryNamespace/pods"))), Times.Once);
        }
        public async Task GetPodsAsyncReturnsMultiplePods()
        {
            var httpClientSettingsMock = GetKubeHttpClientSettingsProviderForTest();

            var httpClientMock = new Mock <IKubeHttpClient>();

            httpClientMock.Setup(httpClient => httpClient.Settings).Returns(httpClientSettingsMock.Object);
            HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK)
            {
                Content = new StringContent(JsonConvert.SerializeObject(new K8sEntityList <K8sPod>
                {
                    Items = new List <K8sPod>
                    {
                        new K8sPod()
                        {
                            Metadata = new K8sPodMetadata()
                            {
                                Name = "pod1"
                            }, Status = new K8sPodStatus()
                            {
                                ContainerStatuses = new List <ContainerStatus>()
                                {
                                    new ContainerStatus()
                                    {
                                        ContainerID = "c1"
                                    }
                                }
                            }
                        },
                        new K8sPod()
                        {
                            Metadata = new K8sPodMetadata()
                            {
                                Name = "pod2"
                            }, Status = new K8sPodStatus()
                            {
                                ContainerStatuses = new List <ContainerStatus>()
                                {
                                    new ContainerStatus()
                                    {
                                        ContainerID = "c2"
                                    }
                                }
                            }
                        }
                    }
                }))
            };

            httpClientMock.Setup(httpClient => httpClient.SendAsync(It.IsAny <HttpRequestMessage>())).Returns(Task.FromResult(response));

            using (K8sQueryClient target = new K8sQueryClient(httpClientMock.Object))
            {
                IEnumerable <K8sPod> result = await target.GetPodsAsync();

                Assert.NotNull(result);
                Assert.Equal(2, result.Count());
                Assert.Contains(result, p => p.Metadata.Name.Equals("pod1"));
                Assert.Contains(result, p => p.Metadata.Name.Equals("pod2"));
            }
        }