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); }
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); }
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); }
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); }