public async Task GetConfigurationFile_FilePresentWithDockerComposeYmlPaths_ReturnsDeserializedFileWithProperPathSet()
        {
            //Arrange
            var fakePullDogRepositoryClient = Substitute.For <IPullDogRepositoryClient>();

            fakePullDogRepositoryClient
            .GetFilesForPathAsync("pull-dog.json")
            .Returns(new[]
            {
                new RepositoryFile(
                    "pull-dog.json",
                    Encoding.UTF8.GetBytes(@"{
                            ""dockerComposeYmlFilePaths"": [""some-docker-compose-file-path""]
                        }"))
            });

            var client = new PullDogFileCollector(
                fakePullDogRepositoryClient,
                Substitute.For <IDockerComposeParserFactory>(),
                Substitute.For <ILogger>());

            //Act
            var configurationFile = await client.GetConfigurationFileAsync();

            //Assert
            Assert.IsNotNull(configurationFile);
            Assert.AreEqual("some-docker-compose-file-path", configurationFile.DockerComposeYmlFilePaths.Single());
        }
        public async Task GetConfigurationFile_FilePresent_ReturnsDeserializedFile()
        {
            //Arrange
            var fakePullDogRepositoryClient = Substitute.For <IPullDogRepositoryClient>();

            fakePullDogRepositoryClient
            .GetFilesForPathAsync("pull-dog.json")
            .Returns(new[]
            {
                new RepositoryFile(
                    "pull-dog.json",
                    Encoding.UTF8.GetBytes("{}"))
            });

            var client = new PullDogFileCollector(
                fakePullDogRepositoryClient,
                Substitute.For <IDockerComposeParserFactory>(),
                Substitute.For <ILogger>());

            //Act
            var configurationFile = await client.GetConfigurationFileAsync();

            //Assert
            Assert.IsNotNull(configurationFile);
        }
        public async Task GetConfigurationFile_FileNotPresent_ReturnsNull()
        {
            //Arrange
            var fakePullDogRepositoryClient = Substitute.For <IPullDogRepositoryClient>();

            fakePullDogRepositoryClient
            .GetFilesForPathAsync("pull-dog.json")
            .Returns(Array.Empty <RepositoryFile>());

            var client = new PullDogFileCollector(
                fakePullDogRepositoryClient,
                Substitute.For <IDockerComposeParserFactory>(),
                Substitute.For <ILogger>());

            //Act
            var configurationFile = await client.GetConfigurationFileAsync();

            //Assert
            Assert.IsNull(configurationFile);
        }