Skip to content

Commit

Permalink
[ggj] test: add logging integration target and goldens, consolidate r…
Browse files Browse the repository at this point in the history
…ules (#433)

* fix: support non-name fields with res-refs in resname def parsing

* fix: add workaround for missing default_host and oauth_scopes annotation

* fix: clarify LRO parsing error messages

* feat: support deeply-nested types in AST and proto message parsing

* fix: prevent resname tokens from matching subcomponents

* fix: use TypeParser for proto message parsing

* fix: use generic types in field instantiation in ServiceClientTest

* fix: prevent descension into map types in nested message parsing

* fix: merge master

* fix: use both map generics in ServiceClientTest codegen

* fix: dir structure of generated files

* test: add asset API gradle pkg rules

* fix: remove unused dep

* test: add logging integration target and goldens, consolidate rules
  • Loading branch information
miraleung authored Oct 31, 2020
1 parent d321552 commit 8515463
Show file tree
Hide file tree
Showing 35 changed files with 11,509 additions and 24 deletions.
44 changes: 20 additions & 24 deletions test/integration/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -16,34 +16,30 @@ package(default_visibility = ["//visibility:public"])
# Integration Test Rules
####################################################

integration_test(
name = "redis",
data = ["//test/integration/goldens/redis:goldens_files"],
target = ":redis_java_gapic",
)
INTEGRATION_TEST_LIBRARIES = [
"asset",
"logging",
"redis",
]

integration_test(
name = "asset",
data = ["//test/integration/goldens/asset:goldens_files"],
target = ":asset_java_gapic",
)
[integration_test(
name = lib_name,
data = ["//test/integration/goldens/%s:goldens_files" % lib_name],
target = ":%s_java_gapic" % lib_name,
) for lib_name in INTEGRATION_TEST_LIBRARIES]

golden_update(
name = "redis_update",
data = ["//test/integration/goldens/redis:goldens_files"],
target = ":redis_java_gapic",
)
[golden_update(
name = "%s_update" % lib_name,
data = ["//test/integration/goldens/%s:goldens_files" % lib_name],
target = ":%s_java_gapic" % lib_name,
) for lib_name in INTEGRATION_TEST_LIBRARIES]

golden_update(
name = "asset_update",
data = ["//test/integration/goldens/asset:goldens_files"],
target = ":asset_java_gapic",
)

####################################################
# API Library Rules
####################################################
# These will eventually go away once more APIs in googleapis have been migrated to the microgenerator.
# These will eventually go away once more APIs in googleapis have been migrated to the
# microgenerator.

# Asset API.
java_gapic_library(
Expand All @@ -66,12 +62,12 @@ java_gapic_assembly_gradle_pkg(
name = "google-cloud-asset-v1-java",
deps = [
":asset_java_gapic",
"@com_google_googleapis//google/cloud/orgpolicy/v1:orgpolicy_java_proto",
"@com_google_googleapis//google/cloud/asset/v1:asset_java_grpc",
"@com_google_googleapis//google/identity/accesscontextmanager/type:type_java_proto",
"@com_google_googleapis//google/identity/accesscontextmanager/v1:accesscontextmanager_java_proto",
"@com_google_googleapis//google/cloud/asset/v1:asset_java_proto",
"@com_google_googleapis//google/cloud/asset/v1:asset_proto",
"@com_google_googleapis//google/cloud/orgpolicy/v1:orgpolicy_java_proto",
"@com_google_googleapis//google/identity/accesscontextmanager/type:type_java_proto",
"@com_google_googleapis//google/identity/accesscontextmanager/v1:accesscontextmanager_java_proto",
],
)

Expand Down
6 changes: 6 additions & 0 deletions test/integration/goldens/logging/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package(default_visibility = ["//visibility:public"])

filegroup(
name = "goldens_files",
srcs = glob(["*.java"]),
)
188 changes: 188 additions & 0 deletions test/integration/goldens/logging/BillingAccountLocationName.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,188 @@
/*
* Copyright 2020 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package com.google.logging.v2;

import com.google.api.pathtemplate.PathTemplate;
import com.google.api.resourcenames.ResourceName;
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableMap;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import javax.annotation.Generated;

// AUTO-GENERATED DOCUMENTATION AND CLASS.
@Generated("by gapic-generator-java")
public class BillingAccountLocationName implements ResourceName {
private static final PathTemplate BILLING_ACCOUNT_LOCATION =
PathTemplate.createWithoutUrlEncoding(
"billingAccounts/{billing_account}/locations/{location}");
private volatile Map<String, String> fieldValuesMap;
private final String billingAccount;
private final String location;

private BillingAccountLocationName(Builder builder) {
billingAccount = Preconditions.checkNotNull(builder.getBillingAccount());
location = Preconditions.checkNotNull(builder.getLocation());
}

public String getBillingAccount() {
return billingAccount;
}

public String getLocation() {
return location;
}

public static Builder newBuilder() {
return new Builder();
}

public Builder toBuilder() {
return new Builder(this);
}

public static BillingAccountLocationName of(String billingAccount, String location) {
return newBuilder().setBillingAccount(billingAccount).setLocation(location).build();
}

public static String format(String billingAccount, String location) {
return newBuilder().setBillingAccount(billingAccount).setLocation(location).build().toString();
}

public static BillingAccountLocationName parse(String formattedString) {
if (formattedString.isEmpty()) {
return null;
}
Map<String, String> matchMap =
BILLING_ACCOUNT_LOCATION.validatedMatch(
formattedString,
"BillingAccountLocationName.parse: formattedString not in valid format");
return of(matchMap.get("billing_account"), matchMap.get("location"));
}

public static List<BillingAccountLocationName> parseList(List<String> formattedStrings) {
List<BillingAccountLocationName> list = new ArrayList<>(formattedStrings.size());
for (String formattedString : formattedStrings) {
list.add(parse(formattedString));
}
return list;
}

public static List<String> toStringList(List<BillingAccountLocationName> values) {
List<String> list = new ArrayList<>(values.size());
for (BillingAccountLocationName value : values) {
if (Objects.isNull(value)) {
list.add("");
} else {
list.add(value.toString());
}
}
return list;
}

public static boolean isParsableFrom(String formattedString) {
return BILLING_ACCOUNT_LOCATION.matches(formattedString);
}

@Override
public Map<String, String> getFieldValuesMap() {
if (Objects.isNull(fieldValuesMap)) {
synchronized (this) {
if (Objects.isNull(fieldValuesMap)) {
ImmutableMap.Builder<String, String> fieldMapBuilder = ImmutableMap.builder();
if (!Objects.isNull(billingAccount)) {
fieldMapBuilder.put("billing_account", billingAccount);
}
if (!Objects.isNull(location)) {
fieldMapBuilder.put("location", location);
}
fieldValuesMap = fieldMapBuilder.build();
}
}
}
return fieldValuesMap;
}

public String getFieldValue(String fieldName) {
return getFieldValuesMap().get(fieldName);
}

@Override
public String toString() {
return BILLING_ACCOUNT_LOCATION.instantiate("billing_account", billingAccount);
}

@Override
public boolean equals(Object o) {
if (o == this) {
return true;
}
if (o != null || getClass() == o.getClass()) {
BillingAccountLocationName that = ((BillingAccountLocationName) o);
return Objects.equals(this.billingAccount, that.billingAccount)
&& Objects.equals(this.location, that.location);
}
return false;
}

@Override
public int hashCode() {
int h = 1;
h *= 1000003;
h ^= Objects.hashCode(billingAccount);
h *= 1000003;
h ^= Objects.hashCode(location);
return h;
}

/** Builder for billingAccounts/{billing_account}/locations/{location}. */
public static class Builder {
private String billingAccount;
private String location;

private Builder() {}

public String getBillingAccount() {
return billingAccount;
}

public String getLocation() {
return location;
}

public Builder setBillingAccount(String billingAccount) {
this.billingAccount = billingAccount;
return this;
}

public Builder setLocation(String location) {
this.location = location;
return this;
}

private Builder(BillingAccountLocationName billingAccountLocationName) {
billingAccount = billingAccountLocationName.billingAccount;
location = billingAccountLocationName.location;
}

public BillingAccountLocationName build() {
return new BillingAccountLocationName(this);
}
}
}
Loading

0 comments on commit 8515463

Please sign in to comment.