Ejemplo n.º 1
0
        public void WithExtractedGoogleRequestParam_KitchenSink(string tableNameValue, string appProfileIdValue, string expectedHeader)
        {
            // call corresponding to the following routing parameters:
            // { field: "table_name", path_template: "projects/*/{table_location=instances/*}/tables/*" }
            // { field: "table_name", path_template: "{table_location=regions/*/zones/*}/tables/*" }
            // { field: "table_name", path_template: "{routing_id=projects/*}/**" }
            // { field: "app_profile_id", path_template: "{routing_id=**}" }
            // { field: "app_profile_id", path_template: "profiles/{routing_id=*}" }
            var extractor = new RoutingHeaderExtractor <ExtractedRequestParamRequest>()
                            .WithExtractedParameter("table_location",
                                                    "^projects/[^/]+/(instances/[^/]+)/tables/[^/]+/?$", request => request.TableName)
                            .WithExtractedParameter("table_location",
                                                    "^(regions/[^/]+/zones/[^/]+)/tables/[^/]+/?$", request => request.TableName)
                            .WithExtractedParameter("routing_id",
                                                    "^(projects/[^/]+)(?:/.*)?$", request => request.TableName)
                            .WithExtractedParameter("routing_id",
                                                    "^(.*)$", request => request.AppProfileId)
                            .WithExtractedParameter("routing_id",
                                                    "^profiles/([^/]+)/?$", request => request.AppProfileId);
            var header = extractor.ExtractHeader(new ExtractedRequestParamRequest {
                TableName = tableNameValue, AppProfileId = appProfileIdValue
            });

            Assert.Equal(expectedHeader, header);
        }
Ejemplo n.º 2
0
        public void WithExtractedGoogleRequestParam_SimpleExtract(string fieldValue, string expectedHeader)
        {
            // call corresponding to the following routing parameters:
            // { field: "table_name", path_template: "{routing_id=projects/*}/**" }
            var extractor = new RoutingHeaderExtractor <ExtractedRequestParamRequest>().WithExtractedParameter("routing_id",
                                                                                                               "^(projects/[^/]+)(?:/.*)?$", request => request.TableName);
            var header = extractor.ExtractHeader(new ExtractedRequestParamRequest {
                TableName = fieldValue
            });

            Assert.Equal(expectedHeader, header);
        }
Ejemplo n.º 3
0
        public void WithExtractedGoogleRequestParam_FieldMatch(string fieldValue, string expectedHeader)
        {
            // call corresponding to the following routing parameters:
            // { field: "table_name", path_template: "{table_name=projects/*/instances/*/**}" }
            // { field: "table_name", path_template: "{table_name=regions/*/zones/*/**}" }
            var extractor = new RoutingHeaderExtractor <ExtractedRequestParamRequest>()
                            .WithExtractedParameter("table_name",
                                                    "^(projects/[^/]+/instances/[^/]+(?:/.*)?)$", request => request.TableName)
                            .WithExtractedParameter("table_name",
                                                    "^(regions/[^/]+/zones/[^/]+(?:/.*)?)$", request => request.TableName);

            var header = extractor.ExtractHeader(new ExtractedRequestParamRequest {
                TableName = fieldValue
            });

            Assert.Equal(expectedHeader, header);
        }
Ejemplo n.º 4
0
        public void WithExtractedGoogleRequestParam_MultipleConflictsFields(string tableNameValue, string appProfileIdValue, string expectedHeader)
        {
            // call corresponding to the following routing parameters:
            // { field: "table_name", path_template: "{routing_id=projects/*}/**" }
            // { field: "table_name", path_template: "{routing_id=regions/*}/**" }
            // { field: "app_profile_id", path_template: "{routing_id=**}" }
            var extractor = new RoutingHeaderExtractor <ExtractedRequestParamRequest>()
                            .WithExtractedParameter("routing_id",
                                                    "^(projects/[^/]+)(?:/.*)?$", request => request.TableName)
                            .WithExtractedParameter("routing_id",
                                                    "^(regions/[^/]+)(?:/.*)?$", request => request.TableName)
                            .WithExtractedParameter("routing_id",
                                                    "^(.*)$", request => request.AppProfileId);
            var header = extractor.ExtractHeader(new ExtractedRequestParamRequest {
                TableName = tableNameValue, AppProfileId = appProfileIdValue
            });

            Assert.Equal(expectedHeader, header);
        }