예제 #1
0
        public async void EnvInvoke_ReturnsExpected()
        {
            // arrange
            ConfigurationBuilder configurationBuilder = new ConfigurationBuilder();

            configurationBuilder.AddInMemoryCollection(OwinTestHelpers.Appsettings);
            var config = configurationBuilder.Build();
            var ep     = new EnvEndpoint(new EnvEndpointOptions(), config, new GenericHostingEnvironment()
            {
                EnvironmentName = "EnvironmentName"
            });
            var mgmt = new CloudFoundryManagementOptions()
            {
                Path = "/"
            };
            var middle = new EndpointOwinMiddleware <EnvironmentDescriptor>(null, ep, new List <IManagementOptions> {
                mgmt
            });
            var context = OwinTestHelpers.CreateRequest("GET", "/env");

            // act
            var json = await middle.InvokeAndReadResponse(context);

            // assert
            var expected = "{\"activeProfiles\":[\"EnvironmentName\"],\"propertySources\":[{\"properties\":{\"Logging:IncludeScopes\":{\"value\":\"false\"},\"Logging:LogLevel:Default\":{\"value\":\"Warning\"},\"Logging:LogLevel:Pivotal\":{\"value\":\"Information\"},\"Logging:LogLevel:Steeltoe\":{\"value\":\"Information\"},\"management:endpoints:enabled\":{\"value\":\"true\"},\"management:endpoints:path\":{\"value\":\"/cloudfoundryapplication\"}},\"name\":\"MemoryConfigurationProvider\"}]}";

            Assert.Equal(expected, json);
        }
        public void TraceEndpointMiddleware_PathAndVerbMatching_ReturnsExpected()
        {
            var opts   = new TraceOptions();
            var obs    = new TraceDiagnosticObserver(opts);
            var ep     = new TraceEndpoint(opts, obs);
            var middle = new EndpointOwinMiddleware <List <TraceResult> >(null, ep);

            Assert.True(middle.RequestVerbAndPathMatch("GET", "/trace"));
            Assert.False(middle.RequestVerbAndPathMatch("PUT", "/trace"));
            Assert.False(middle.RequestVerbAndPathMatch("GET", "/badpath"));
        }
        public void ThreadDumpEndpointMiddleware_PathAndVerbMatching_ReturnsExpected()
        {
            var          opts   = new ThreadDumpOptions();
            ThreadDumper obs    = new ThreadDumper(opts);
            var          ep     = new ThreadDumpEndpoint(opts, obs);
            var          middle = new EndpointOwinMiddleware <List <ThreadInfo> >(null, ep);

            Assert.True(middle.RequestVerbAndPathMatch("GET", "/dump"));
            Assert.False(middle.RequestVerbAndPathMatch("PUT", "/dump"));
            Assert.False(middle.RequestVerbAndPathMatch("GET", "/badpath"));
        }
예제 #4
0
        public void ThreadDumpEndpointMiddleware_PathAndVerbMatching_ReturnsExpected()
        {
            var          opts        = new ThreadDumpEndpointOptions();
            var          mgmtOptions = TestHelpers.GetManagementOptions(opts);
            ThreadDumper obs         = new ThreadDumper(opts);
            var          ep          = new ThreadDumpEndpoint(opts, obs);
            var          middle      = new EndpointOwinMiddleware <List <ThreadInfo> >(null, ep, mgmtOptions);

            Assert.True(middle.RequestVerbAndPathMatch("GET", "/cloudfoundryapplication/dump"));
            Assert.False(middle.RequestVerbAndPathMatch("PUT", "/cloudfoundryapplication/dump"));
            Assert.False(middle.RequestVerbAndPathMatch("GET", "/cloudfoundryapplication/badpath"));
        }
예제 #5
0
        public void TraceEndpointMiddleware_PathAndVerbMatching_ReturnsExpected()
        {
            var opts   = new TraceEndpointOptions();
            var mopts  = TestHelpers.GetManagementOptions(opts);
            var obs    = new TraceDiagnosticObserver(opts);
            var ep     = new TraceEndpoint(opts, obs);
            var middle = new EndpointOwinMiddleware <List <TraceResult> >(null, ep, mopts);

            Assert.True(middle.RequestVerbAndPathMatch("GET", "/cloudfoundryapplication/trace"));
            Assert.False(middle.RequestVerbAndPathMatch("PUT", "/cloudfoundryapplication/trace"));
            Assert.False(middle.RequestVerbAndPathMatch("GET", "/cloudfoundryapplication/badpath"));
        }
예제 #6
0
        public void RefreshEndpointMiddleware_PathAndVerbMatching_ReturnsExpected()
        {
            var opts = new RefreshOptions();
            ConfigurationBuilder configurationBuilder = new ConfigurationBuilder();

            configurationBuilder.AddInMemoryCollection(OwinTestHelpers.Appsettings);
            var config = configurationBuilder.Build();
            var ep     = new RefreshEndpoint(opts, config);
            var middle = new EndpointOwinMiddleware <IList <string> >(null, ep);

            Assert.True(middle.RequestVerbAndPathMatch("GET", "/refresh"));
            Assert.False(middle.RequestVerbAndPathMatch("PUT", "/refresh"));
            Assert.False(middle.RequestVerbAndPathMatch("GET", "/badpath"));
        }
        public void InfoEndpointMiddleware_PathAndVerbMatching_ReturnsExpected()
        {
            var opts     = new InfoOptions();
            var contribs = new List <IInfoContributor>()
            {
                new GitInfoContributor()
            };
            var ep     = new InfoEndpoint(opts, contribs);
            var middle = new EndpointOwinMiddleware <Dictionary <string, object> >(null, ep);

            Assert.True(middle.RequestVerbAndPathMatch("GET", "/info"));
            Assert.False(middle.RequestVerbAndPathMatch("PUT", "/info"));
            Assert.False(middle.RequestVerbAndPathMatch("GET", "/badpath"));
        }
        public async void TraceInvoke_ReturnsExpected()
        {
            // arrange
            var opts    = new TraceOptions();
            var ep      = new TestTraceEndpoint(opts, new TraceDiagnosticObserver(opts));
            var middle  = new EndpointOwinMiddleware <List <TraceResult> >(null, ep);
            var context = OwinTestHelpers.CreateRequest("GET", "/trace");

            // act
            var json = await middle.InvokeAndReadResponse(context);

            // assert
            Assert.Equal("[]", json);
        }
        public async void InfoInvoke_ReturnsExpected()
        {
            // arrange
            var ep = new TestInfoEndpoint(new InfoOptions(), new List <IInfoContributor>()
            {
                new GitInfoContributor()
            });
            var middle  = new EndpointOwinMiddleware <Dictionary <string, object> >(null, ep);
            var context = OwinTestHelpers.CreateRequest("GET", "/info");

            // act
            var json = await middle.InvokeAndReadResponse(context);

            // assert
            Assert.Equal("{}", json);
        }
예제 #10
0
        public void InfoEndpointMiddleware_PathAndVerbMatching_ReturnsExpected()
        {
            var opts     = new InfoEndpointOptions();
            var mgmtOpts = TestHelpers.GetManagementOptions(opts);

            var contribs = new List <IInfoContributor>()
            {
                new GitInfoContributor()
            };
            var ep     = new InfoEndpoint(opts, contribs);
            var middle = new EndpointOwinMiddleware <Dictionary <string, object> >(null, ep, mgmtOpts);

            Assert.True(middle.RequestVerbAndPathMatch("GET", "/cloudfoundryapplication/info"));
            Assert.False(middle.RequestVerbAndPathMatch("PUT", "/cloudfoundryapplication/info"));
            Assert.False(middle.RequestVerbAndPathMatch("GET", "/cloudfoundryapplication/badpath"));
        }
예제 #11
0
        public void EnvEndpointMiddleware_PathAndVerbMatching_ReturnsExpected()
        {
            var opts = new EnvOptions();
            ConfigurationBuilder configurationBuilder = new ConfigurationBuilder();
            var config = configurationBuilder.Build();
            var host   = new GenericHostingEnvironment()
            {
                EnvironmentName = "EnvironmentName"
            };
            var ep     = new EnvEndpoint(opts, config, host);
            var middle = new EndpointOwinMiddleware <EnvironmentDescriptor>(null, ep);

            Assert.True(middle.RequestVerbAndPathMatch("GET", "/env"));
            Assert.False(middle.RequestVerbAndPathMatch("PUT", "/env"));
            Assert.False(middle.RequestVerbAndPathMatch("GET", "/badpath"));
        }
예제 #12
0
        public async void RefreshInvoke_ReturnsExpected()
        {
            // arrange
            ConfigurationBuilder configurationBuilder = new ConfigurationBuilder();

            configurationBuilder.AddInMemoryCollection(OwinTestHelpers.Appsettings);
            var middle  = new EndpointOwinMiddleware <IList <string> >(null, new RefreshEndpoint(new RefreshOptions(), configurationBuilder.Build()));
            var context = OwinTestHelpers.CreateRequest("GET", "/refresh");

            // act
            var json = await middle.InvokeAndReadResponse(context);

            // assert
            var expected = "[\"management\",\"management:endpoints\",\"management:endpoints:sensitive\",\"management:endpoints:path\",\"management:endpoints:enabled\",\"Logging\",\"Logging:LogLevel\",\"Logging:LogLevel:Steeltoe\",\"Logging:LogLevel:Pivotal\",\"Logging:LogLevel:Default\",\"Logging:IncludeScopes\"]";

            Assert.Equal(expected, json);
        }
        public async void ThreadDumpInvoke_ReturnsExpected()
        {
            // arrange
            var opts    = new ThreadDumpOptions();
            var middle  = new EndpointOwinMiddleware <List <ThreadInfo> >(null, new ThreadDumpEndpoint(opts, new ThreadDumper(opts)));
            var context = OwinTestHelpers.CreateRequest("GET", "/dump");

            // act
            var json = await middle.InvokeAndReadResponse(context);

            // assert (that it looks kinda like what we expect... ?)
            Assert.StartsWith("[", json);
            Assert.Contains("blockedCount", json);
            Assert.Contains("blockedTime", json);
            Assert.Contains("lockedMonitors", json);
            Assert.Contains("lockedSynchronizers", json);
            Assert.Contains("lockInfo", json);
            Assert.Contains("stackTrace", json);
            Assert.EndsWith("]", json);
        }