Example #1
0
        public void IsLoggersRequest_ReturnsExpected()
        {
            var opts = new LoggersOptions();

            var ep     = new LoggersEndpoint(opts);
            var middle = new LoggersEndpointMiddleware(null, ep);

            var context = CreateRequest("GET", "/loggers");

            Assert.True(middle.IsLoggerRequest(context));

            var context2 = CreateRequest("PUT", "/loggers");

            Assert.False(middle.IsLoggerRequest(context2));

            var context3 = CreateRequest("GET", "/badpath");

            Assert.False(middle.IsLoggerRequest(context3));

            var context4 = CreateRequest("POST", "/loggers");

            Assert.True(middle.IsLoggerRequest(context4));

            var context5 = CreateRequest("POST", "/badpath");

            Assert.False(middle.IsLoggerRequest(context5));

            var context6 = CreateRequest("POST", "/loggers/Foo.Bar.Class");

            Assert.True(middle.IsLoggerRequest(context6));

            var context7 = CreateRequest("POST", "/badpath/Foo.Bar.Class");

            Assert.False(middle.IsLoggerRequest(context7));
        }
        public void Contstructor_BindsConfigurationCorrectly()
        {
            var appsettings = new Dictionary <string, string>()
            {
                ["management:endpoints:enabled"]           = "false",
                ["management:endpoints:sensitive"]         = "false",
                ["management:endpoints:path"]              = "/cloudfoundryapplication",
                ["management:endpoints:loggers:enabled"]   = "false",
                ["management:endpoints:loggers:sensitive"] = "true",
                ["management:endpoints:cloudfoundry:validatecertificates"] = "true",
                ["management:endpoints:cloudfoundry:enabled"] = "true"
            };
            ConfigurationBuilder configurationBuilder = new ConfigurationBuilder();

            configurationBuilder.AddInMemoryCollection(appsettings);
            var config = configurationBuilder.Build();

            var opts = new LoggersOptions(config);
            CloudFoundryOptions cloudOpts = new CloudFoundryOptions(config);

            Assert.True(cloudOpts.Enabled);
            Assert.False(cloudOpts.Sensitive);
            Assert.Equal(string.Empty, cloudOpts.Id);
            Assert.Equal("/cloudfoundryapplication", cloudOpts.Path);
            Assert.True(cloudOpts.ValidateCertificates);

            Assert.False(opts.Enabled);
            Assert.True(opts.Sensitive);
            Assert.Equal("loggers", opts.Id);
            Assert.Equal("/cloudfoundryapplication/loggers", opts.Path);
        }
        public void Constructor_InitializesWithDefaults()
        {
            var opts = new LoggersOptions();

            Assert.True(opts.Enabled);
            Assert.True(opts.Sensitive);
            Assert.Equal("loggers", opts.Id);
        }
Example #4
0
        public void LoggersEndpointMiddleware_PathAndVerbMatching_ReturnsExpected()
        {
            var opts   = new LoggersOptions();
            var ep     = new LoggersEndpoint(opts, null);
            var middle = new LoggersEndpointOwinMiddleware(null, ep);

            Assert.True(middle.RequestVerbAndPathMatch("GET", "/loggers"));
            Assert.False(middle.RequestVerbAndPathMatch("PUT", "/loggers"));
            Assert.False(middle.RequestVerbAndPathMatch("GET", "/badpath"));
            Assert.True(middle.RequestVerbAndPathMatch("POST", "/loggers"));
            Assert.False(middle.RequestVerbAndPathMatch("POST", "/badpath"));
            Assert.True(middle.RequestVerbAndPathMatch("POST", "/loggers/Foo.Bar.Class"));
            Assert.False(middle.RequestVerbAndPathMatch("POST", "/badpath/Foo.Bar.Class"));
        }
Example #5
0
        public async void HandleLoggersRequestAsync_ReturnsExpected()
        {
            var opts = new LoggersOptions();

            var ep      = new TestLoggersEndpoint(opts);
            var middle  = new LoggersEndpointMiddleware(null, ep);
            var context = CreateRequest("GET", "/loggers");
            await middle.HandleLoggersRequestAsync(context);

            context.Response.Body.Seek(0, SeekOrigin.Begin);
            StreamReader rdr  = new StreamReader(context.Response.Body);
            string       json = await rdr.ReadToEndAsync();

            Assert.Equal("{}", json);
        }
        public void Contstructor_BindsConfigurationCorrectly()
        {
            var    appsettings = @"
{
    'management': {
        'endpoints': {
            'enabled': false,
            'sensitive': false,
            'path': '/cloudfoundryapplication',
            'loggers' : {
                'enabled': false,
                'sensitive' : true
            },
            'cloudfoundry': {
                'validatecertificates' : true,
                'enabled': true
            }
        }
    }
}";
            var    path        = TestHelpers.CreateTempFile(appsettings);
            string directory   = Path.GetDirectoryName(path);
            string fileName    = Path.GetFileName(path);
            ConfigurationBuilder configurationBuilder = new ConfigurationBuilder();

            configurationBuilder.SetBasePath(directory);

            configurationBuilder.AddJsonFile(fileName);
            var config = configurationBuilder.Build();

            var opts = new LoggersOptions(config);
            CloudFoundryOptions cloudOpts = new CloudFoundryOptions(config);

            Assert.True(cloudOpts.Enabled);
            Assert.False(cloudOpts.Sensitive);
            Assert.Equal(string.Empty, cloudOpts.Id);
            Assert.Equal("/cloudfoundryapplication", cloudOpts.Path);
            Assert.True(cloudOpts.ValidateCertificates);

            Assert.False(opts.Enabled);
            Assert.True(opts.Sensitive);
            Assert.Equal("loggers", opts.Id);
            Assert.Equal("/cloudfoundryapplication/loggers", opts.Path);
        }