예제 #1
0
        public void HttpRoutesConflict_ReturnsExpectedResult()
        {
            var first = new HttpTriggerAttribute
            {
                Route = "foo/bar/baz"
            };
            var second = new HttpTriggerAttribute
            {
                Route = "foo/bar"
            };

            Assert.False(ScriptHost.HttpRoutesConflict(first, second));
            Assert.False(ScriptHost.HttpRoutesConflict(second, first));

            first = new HttpTriggerAttribute
            {
                Route = "foo/bar/baz"
            };
            second = new HttpTriggerAttribute
            {
                Route = "foo/bar/baz"
            };
            Assert.True(ScriptHost.HttpRoutesConflict(first, second));
            Assert.True(ScriptHost.HttpRoutesConflict(second, first));

            // no conflict since methods do not intersect
            first = new HttpTriggerAttribute(AuthorizationLevel.Function, "get", "head")
            {
                Route = "foo/bar/baz"
            };
            second = new HttpTriggerAttribute(AuthorizationLevel.Function, "post", "put")
            {
                Route = "foo/bar/baz"
            };
            Assert.False(ScriptHost.HttpRoutesConflict(first, second));
            Assert.False(ScriptHost.HttpRoutesConflict(second, first));

            first = new HttpTriggerAttribute(AuthorizationLevel.Function, "get", "head")
            {
                Route = "foo/bar/baz"
            };
            second = new HttpTriggerAttribute
            {
                Route = "foo/bar/baz"
            };
            Assert.True(ScriptHost.HttpRoutesConflict(first, second));
            Assert.True(ScriptHost.HttpRoutesConflict(second, first));

            first = new HttpTriggerAttribute(AuthorizationLevel.Function, "get", "head", "put", "post")
            {
                Route = "foo/bar/baz"
            };
            second = new HttpTriggerAttribute(AuthorizationLevel.Function, "put")
            {
                Route = "foo/bar/baz"
            };
            Assert.True(ScriptHost.HttpRoutesConflict(first, second));
            Assert.True(ScriptHost.HttpRoutesConflict(second, first));
        }
예제 #2
0
        public void HttpRoutesConflict_ReturnsExpectedResult()
        {
            var first = new HttpTriggerBindingMetadata
            {
                Route = "foo/bar/baz"
            };
            var second = new HttpTriggerBindingMetadata
            {
                Route = "foo/bar"
            };

            Assert.False(ScriptHost.HttpRoutesConflict(first, second));
            Assert.False(ScriptHost.HttpRoutesConflict(second, first));

            first = new HttpTriggerBindingMetadata
            {
                Route = "foo/bar/baz"
            };
            second = new HttpTriggerBindingMetadata
            {
                Route = "foo/bar/baz"
            };
            Assert.True(ScriptHost.HttpRoutesConflict(first, second));
            Assert.True(ScriptHost.HttpRoutesConflict(second, first));

            // no conflict since methods do not intersect
            first = new HttpTriggerBindingMetadata
            {
                Methods = new Collection <HttpMethod>()
                {
                    HttpMethod.Get, HttpMethod.Head
                },
                Route = "foo/bar/baz"
            };
            second = new HttpTriggerBindingMetadata
            {
                Methods = new Collection <HttpMethod>()
                {
                    HttpMethod.Post, HttpMethod.Put
                },
                Route = "foo/bar/baz"
            };
            Assert.False(ScriptHost.HttpRoutesConflict(first, second));
            Assert.False(ScriptHost.HttpRoutesConflict(second, first));

            first = new HttpTriggerBindingMetadata
            {
                Methods = new Collection <HttpMethod>()
                {
                    HttpMethod.Get, HttpMethod.Head
                },
                Route = "foo/bar/baz"
            };
            second = new HttpTriggerBindingMetadata
            {
                Route = "foo/bar/baz"
            };
            Assert.True(ScriptHost.HttpRoutesConflict(first, second));
            Assert.True(ScriptHost.HttpRoutesConflict(second, first));

            first = new HttpTriggerBindingMetadata
            {
                Methods = new Collection <HttpMethod>()
                {
                    HttpMethod.Get, HttpMethod.Head, HttpMethod.Put, HttpMethod.Post
                },
                Route = "foo/bar/baz"
            };
            second = new HttpTriggerBindingMetadata
            {
                Methods = new Collection <HttpMethod>()
                {
                    HttpMethod.Put
                },
                Route = "foo/bar/baz"
            };
            Assert.True(ScriptHost.HttpRoutesConflict(first, second));
            Assert.True(ScriptHost.HttpRoutesConflict(second, first));
        }