mirror of
				https://github.com/nsnail/Ocelot.git
				synced 2025-11-04 20:50:49 +08:00 
			
		
		
		
	Feat/monorepo (#734)
* copied everything from repos back to ocelot repo * added src projects to sln * removed all test projects that have no tests * added all test projects to sln * removed test not on master * merged unit tests * merged acceptance tests * merged integration tests * fixed namepaces * build script creates packages for all projects * updated docs to make sure no references to external repos that we will remove * +semver: breaking
This commit is contained in:
		@@ -0,0 +1,91 @@
 | 
			
		||||
namespace Ocelot.UnitTests.Administration
 | 
			
		||||
{
 | 
			
		||||
    using System;
 | 
			
		||||
    using System.Collections.Generic;
 | 
			
		||||
    using IdentityServer4.AccessTokenValidation;
 | 
			
		||||
    using Microsoft.AspNetCore.Hosting;
 | 
			
		||||
    using Microsoft.AspNetCore.Hosting.Internal;
 | 
			
		||||
    using Microsoft.Extensions.Configuration;
 | 
			
		||||
    using Microsoft.Extensions.DependencyInjection;
 | 
			
		||||
    using Ocelot.Administration;
 | 
			
		||||
    using Ocelot.DependencyInjection;
 | 
			
		||||
    using Shouldly;
 | 
			
		||||
    using TestStack.BDDfy;
 | 
			
		||||
    using Xunit;
 | 
			
		||||
 | 
			
		||||
    public class OcelotAdministrationBuilderTests
 | 
			
		||||
    {
 | 
			
		||||
        private readonly IServiceCollection _services;
 | 
			
		||||
        private IServiceProvider _serviceProvider;
 | 
			
		||||
        private readonly IConfiguration _configRoot;
 | 
			
		||||
        private IOcelotBuilder _ocelotBuilder;
 | 
			
		||||
        private Exception _ex;
 | 
			
		||||
 | 
			
		||||
        public OcelotAdministrationBuilderTests()
 | 
			
		||||
        {
 | 
			
		||||
            _configRoot = new ConfigurationRoot(new List<IConfigurationProvider>());
 | 
			
		||||
            _services = new ServiceCollection();
 | 
			
		||||
            _services.AddSingleton<IHostingEnvironment, HostingEnvironment>();
 | 
			
		||||
            _services.AddSingleton(_configRoot);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        //keep
 | 
			
		||||
        [Fact]
 | 
			
		||||
        public void should_set_up_administration_with_identity_server_options()
 | 
			
		||||
        {
 | 
			
		||||
            Action<IdentityServerAuthenticationOptions> options = o => {};
 | 
			
		||||
 | 
			
		||||
            this.Given(x => WhenISetUpOcelotServices())
 | 
			
		||||
                .When(x => WhenISetUpAdministration(options))
 | 
			
		||||
                .Then(x => ThenAnExceptionIsntThrown())
 | 
			
		||||
                .Then(x => ThenTheCorrectAdminPathIsRegitered())
 | 
			
		||||
                .BDDfy();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        //keep
 | 
			
		||||
        [Fact]
 | 
			
		||||
        public void should_set_up_administration()
 | 
			
		||||
        {
 | 
			
		||||
            this.Given(x => WhenISetUpOcelotServices())
 | 
			
		||||
                .When(x => WhenISetUpAdministration())
 | 
			
		||||
                .Then(x => ThenAnExceptionIsntThrown())
 | 
			
		||||
                .Then(x => ThenTheCorrectAdminPathIsRegitered())
 | 
			
		||||
                .BDDfy();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private void WhenISetUpAdministration()
 | 
			
		||||
        {
 | 
			
		||||
            _ocelotBuilder.AddAdministration("/administration", "secret");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private void WhenISetUpAdministration(Action<IdentityServerAuthenticationOptions> options)
 | 
			
		||||
        {
 | 
			
		||||
            _ocelotBuilder.AddAdministration("/administration", options);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private void ThenTheCorrectAdminPathIsRegitered()
 | 
			
		||||
        {
 | 
			
		||||
            _serviceProvider = _services.BuildServiceProvider();
 | 
			
		||||
            var path = _serviceProvider.GetService<IAdministrationPath>();
 | 
			
		||||
            path.Path.ShouldBe("/administration");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private void WhenISetUpOcelotServices()
 | 
			
		||||
        {
 | 
			
		||||
            try
 | 
			
		||||
            {
 | 
			
		||||
                _ocelotBuilder = _services.AddOcelot(_configRoot);
 | 
			
		||||
            }
 | 
			
		||||
            catch (Exception e)
 | 
			
		||||
            {
 | 
			
		||||
                _ex = e;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private void ThenAnExceptionIsntThrown()
 | 
			
		||||
        {
 | 
			
		||||
            _ex.ShouldBeNull();
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user