test method
Test Source for syntactic and semantic correctness.
Issues present, if any, will be returned to the caller with a description,
severity, and source location. The test method may be executed with
Source or a Ruleset name. Passing Source is useful for unit testing
new rules. Passing a Ruleset name is useful for regression testing an
existing rule. The following is an example of Source that permits users
to upload images to a bucket bearing their user id and matching the
correct metadata: Example // Users are allowed to subscribe and
unsubscribe to the blog. service firebase.storage { match
/users/{userId}/images/{imageName} { allow write: if userId ==
request.auth.uid && (imageName.matches('.png$') ||
imageName.matches('.jpg$')) && resource.mimeType.matches('^image/') } }
request - The metadata request object.
Request parameters:
name - Required. Tests may either provide source or a Ruleset
resource name. For tests against source, the resource name must refer to
the project: Format: projects/{project_id} For tests against a
Ruleset, this must be the Ruleset resource name: Format:
projects/{project_id}/rulesets/{ruleset_id}
Value must have pattern ^projects/.*$.
$fields - Selector specifying which fields to include in a partial
response.
Completes with a TestRulesetResponse.
Completes with a commons.ApiRequestError if the API endpoint returned an error.
If the used http.Client completes with an error when making a REST call,
this method will complete with the same error.
Implementation
async.Future<TestRulesetResponse> test(
TestRulesetRequest request,
core.String name, {
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
if ($fields != null) 'fields': [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$name') + ':test';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return TestRulesetResponse.fromJson(
response_ as core.Map<core.String, core.dynamic>,
);
}