コード例 #1
0
        public void Equals_Negative()
        {
            var a = new RouteQueryParameter()
            {
                Name            = "foo",
                Mode            = QueryParameterMatchMode.Exists,
                Values          = new[] { "v1", "v2" },
                IsCaseSensitive = true,
            };
            var b = a with {
                Name = "bar"
            };
            var c = a with {
                Mode = QueryParameterMatchMode.Exact
            };
            var d = a with {
                Values = new[] { "v1", "v3" }
            };
            var e = a with {
                IsCaseSensitive = false
            };

            Assert.False(a.Equals(b));
            Assert.False(a.Equals(c));
            Assert.False(a.Equals(d));
            Assert.False(a.Equals(e));
        }
コード例 #2
0
        public async Task Rejects_InvalidRouteQueryParameter(string name, string value, QueryParameterMatchMode mode, string error)
        {
            var routeQueryParameter = new RouteQueryParameter()
            {
                Name   = name,
                Mode   = mode,
                Values = value == null ? null : new[] { value },
            };

            var route = new RouteConfig
            {
                RouteId = "route1",
                Match   = new RouteMatch
                {
                    Path            = "/",
                    QueryParameters = new[] { routeQueryParameter },
                },
                ClusterId = "cluster1",
            };

            var services  = CreateServices();
            var validator = services.GetRequiredService <IConfigValidator>();

            var result = await validator.ValidateRouteAsync(route);

            var ex = Assert.Single(result);

            Assert.Contains(error, ex.Message);
        }
コード例 #3
0
        public void Equals_Positive(bool isCaseSensitive)
        {
            var a = new RouteQueryParameter()
            {
                Name            = "foo",
                Mode            = QueryParameterMatchMode.Exists,
                Values          = new[] { "v1", "v2" },
                IsCaseSensitive = isCaseSensitive,
            };
            var b = new RouteQueryParameter()
            {
                Name            = "Foo",
                Mode            = QueryParameterMatchMode.Exists,
                Values          = new[] { "v1", "v2" },
                IsCaseSensitive = isCaseSensitive,
            };
            var c = a with {
            };                  // Clone

            Assert.True(a.Equals(b));
            Assert.True(a.Equals(c));
            Assert.Equal(a.GetHashCode(), b.GetHashCode());
            Assert.Equal(a.GetHashCode(), c.GetHashCode());
        }