protected async Task OutputFolderContentsMatchesFolderContentsOf(string name) { var folder = name.StartsWith("Folder") ? name : MakeFolderName(name); Debug.WriteLine(Directory.GetCurrentDirectory()); var kongReader = new KongAdminReader(new KongAdminHttpClient(new KongAdminApiConnectionDetails())); var kongConfiguration = await kongReader.GetConfiguration(); var availablePlugins = kongConfiguration.Plugins.Available.Where(x => x.Value).Select(x => x.Key).ToDictionary(x => x, x => new AsyncLazy <KongPluginSchema>(() => kongReader.GetPluginSchema(x))); var configReader = new ConfigFileReader(); var folderConfiguration = await configReader.ReadConfiguration(folder, availablePlugins); var outputConfiguration = await configReader.ReadConfiguration(OutputFolder, availablePlugins); folderConfiguration.GlobalConfig.Plugins.Should().NotBeEmpty(); folderConfiguration.Services.Count.Should().Be(3); outputConfiguration.GlobalConfig.Plugins.Should().BeEquivalentTo(folderConfiguration.GlobalConfig.Plugins); outputConfiguration.Services.Should().BeEquivalentTo(folderConfiguration.Services); foreach (var outputService in outputConfiguration.Services) { var folderService = folderConfiguration.Services.Single(x => x.Name == outputService.Name); outputService.Plugins.Should().BeEquivalentTo(folderService.Plugins); outputService.Routes.Should().BeEquivalentTo(folderService.Routes); foreach (var outputServiceRoute in outputService.Routes) { var folderServiceRoute = folderService.Routes.Single(x => x.Equals(outputServiceRoute)); outputServiceRoute.Plugins.Should().BeEquivalentTo(folderServiceRoute.Plugins); } } }
protected async Task OutputFolderContentsMatchesFolderContentsOf(string name) { var folder = name.StartsWith("Folder") ? name : MakeFolderName(name); Debug.WriteLine(Directory.GetCurrentDirectory()); var kongReader = new KongAdminReader(new KongAdminHttpClient(new KongAdminApiConnectionDetails())); var kongConfiguration = await kongReader.GetConfiguration(); var schemas = kongConfiguration.GetSchemas(kongReader); var configReader = new ConfigFileReader(new PhysicalFileProvider()); var folderConfiguration = await configReader.ReadConfiguration(folder, schemas); var outputConfiguration = await configReader.ReadConfiguration(OutputFolder, schemas); folderConfiguration.GlobalConfig.Plugins.Should().NotBeEmpty(); folderConfiguration.Services.Count.Should().Be(3); outputConfiguration.GlobalConfig.Plugins.Should().BeEquivalentTo(folderConfiguration.GlobalConfig.Plugins); outputConfiguration.Services.Should().BeEquivalentTo(folderConfiguration.Services); foreach (var outputService in outputConfiguration.Services) { var folderService = folderConfiguration.Services.Single(x => x.Name == outputService.Name); outputService.Plugins.Should().BeEquivalentTo(folderService.Plugins); outputService.Routes.Should().BeEquivalentTo(folderService.Routes); foreach (var outputServiceRoute in outputService.Routes) { var folderServiceRoute = folderService.Routes.Single(x => x.Equals(outputServiceRoute)); outputServiceRoute.Plugins.Should().BeEquivalentTo(folderServiceRoute.Plugins); } } }
protected async Task OutputFolderContentsMatchesFolderContentsOf(string name) { var folder = name.StartsWith("Folder") ? name : MakeFolderName(name); Debug.WriteLine(Directory.GetCurrentDirectory()); var settings = new Settings { Admin = new Admin { Host = Host, Port = Port } }; var kongReader = new KongAdminReader(new KongAdminHttpClient(Options.Create(settings))); var kongConfiguration = await kongReader.GetConfiguration(); var availablePlugins = kongConfiguration.Plugins.Available.Where(x => x.Value).Select(x => x.Key).ToArray(); var configReader = new ConfigFileReader(); var folderConfiguration = await configReader.ReadConfiguration(folder, availablePlugins); var outputConfiguration = await configReader.ReadConfiguration(OutputFolder, availablePlugins); folderConfiguration.GlobalConfig.Plugins.Should().NotBeEmpty(); folderConfiguration.Services.Count.Should().Be(3); outputConfiguration.GlobalConfig.Plugins.Should().BeEquivalentTo(folderConfiguration.GlobalConfig.Plugins); outputConfiguration.Services.Should().BeEquivalentTo(folderConfiguration.Services); foreach (var outputService in outputConfiguration.Services) { var folderService = folderConfiguration.Services.Single(x => x.Name == outputService.Name); outputService.Plugins.Should().BeEquivalentTo(folderService.Plugins); outputService.Routes.Should().BeEquivalentTo(folderService.Routes); foreach (var outputServiceRoute in outputService.Routes) { var folderServiceRoute = folderService.Routes.Single(x => x.Equals(outputServiceRoute)); outputServiceRoute.Plugins.Should().BeEquivalentTo(folderServiceRoute.Plugins); } } }