15
15
package com .google .api .generator .gapic .composer ;
16
16
17
17
import static org .junit .Assert .assertEquals ;
18
+ import static org .junit .Assert .assertFalse ;
18
19
19
20
import com .google .api .generator .engine .ast .ClassDefinition ;
20
21
import com .google .api .generator .engine .ast .ScopeNode ;
25
26
import com .google .api .generator .gapic .model .GapicClass ;
26
27
import com .google .api .generator .gapic .model .GapicClass .Kind ;
27
28
import com .google .api .generator .gapic .model .GapicContext ;
29
+ import com .google .api .generator .gapic .model .RegionTag ;
28
30
import com .google .api .generator .gapic .model .Sample ;
29
31
import com .google .api .generator .gapic .model .Service ;
30
32
import com .google .api .generator .test .framework .Assert ;
31
33
import com .google .api .generator .test .framework .Utils ;
32
- import com .google .common .collect .ImmutableList ;
33
34
import java .nio .file .Path ;
34
35
import java .nio .file .Paths ;
35
36
import java .util .Arrays ;
@@ -42,8 +43,13 @@ public class ComposerTest {
42
43
private final List <GapicClass > clazzes =
43
44
Arrays .asList (
44
45
GrpcServiceCallableFactoryClassComposer .instance ().generate (context , echoProtoService ));
45
- private final String protoPackage = context .gapicMetadata ().getProtoPackage ();
46
- private final List <Sample > samples = clazzes .get (0 ).samples ();
46
+ private final Sample sample =
47
+ Sample .builder ()
48
+ .setRegionTag (
49
+ RegionTag .builder ().setServiceName ("serviceName" ).setRpcName ("rpcName" ).build ())
50
+ .build ();
51
+ private List <Sample > ListofSamples = Arrays .asList (new Sample [] {sample });
52
+ private final String protoPackage = echoProtoService .protoPakkage ();
47
53
48
54
@ Test
49
55
public void gapicClass_addApacheLicense () {
@@ -65,58 +71,102 @@ public void gapicClass_addApacheLicense() {
65
71
66
72
@ Test
67
73
public void composeSamples_showcase () {
68
- for (Sample sample : samples ) {
69
- assertEquals (
70
- "File header will be empty before composing samples" ,
71
- sample .fileHeader (),
72
- ImmutableList .of ());
73
- assertEquals (
74
- "ApiShortName will be empty before composing samples" ,
75
- sample .regionTag ().apiShortName (),
76
- "" );
77
- assertEquals (
78
- "ApiVersion will be empty before composing samples" , sample .regionTag ().apiVersion (), "" );
79
- }
74
+ GapicClass testClass = clazzes .get (0 ).withSamples (ListofSamples );
75
+ List <GapicClass > testClassList = Arrays .asList (new GapicClass [] {testClass });
80
76
81
77
List <Sample > composedSamples =
82
- Composer .prepareExecutableSamples (clazzes , protoPackage ).get (0 ).samples ();
78
+ Composer .prepareExecutableSamples (testClassList , protoPackage ).get (0 ).samples ();
83
79
80
+ assertFalse (composedSamples .isEmpty ());
84
81
for (Sample sample : composedSamples ) {
85
82
assertEquals (
86
- "File header should be apache" ,
87
- sample .fileHeader (),
88
- Arrays .asList (CommentComposer .APACHE_LICENSE_COMMENT ));
89
- assertEquals (
90
- "ApiShortName should be showcase" , sample .regionTag ().apiShortName (), "showcase" );
91
- assertEquals ("ApiVersion should be v1beta1" , sample .regionTag ().apiVersion (), "v1beta1" );
83
+ "File header should be APACHE" ,
84
+ Arrays .asList (CommentComposer .APACHE_LICENSE_COMMENT ),
85
+ sample .fileHeader ());
86
+ assertEquals ("ApiShortName should be empty" , "" , sample .regionTag ().apiShortName ());
87
+ assertEquals ("ApiVersion should be V1beta1" , "V1Beta1" , sample .regionTag ().apiVersion ());
92
88
}
93
89
}
94
90
91
+ @ Test
92
+ public void parseDefaultHost_shouldReturnApiShortNameIfHostContainsRegionalEndpoint () {
93
+ String defaultHost = "us-east1-pubsub.googleapis.com" ;
94
+ String apiShortName = Composer .parseDefaultHost (defaultHost );
95
+ assertEquals ("pubsub" , apiShortName );
96
+ }
97
+
98
+ @ Test
99
+ public void parseDefaultHost_shouldReturnApiShortName () {
100
+ String defaultHost = "logging.googleapis.com" ;
101
+ String apiShortName = Composer .parseDefaultHost (defaultHost );
102
+ assertEquals ("logging" , apiShortName );
103
+ }
104
+
105
+ @ Test
106
+ public void parseDefaultHost_shouldReturnApiShortNameForIam () {
107
+ String defaultHost = "iam-meta-api.googleapis.com" ;
108
+ String apiShortName = Composer .parseDefaultHost (defaultHost );
109
+ assertEquals ("iam" , apiShortName );
110
+ }
111
+
112
+ @ Test
113
+ public void parseDefaultHost_shouldReturnHostIfNoPeriods () {
114
+ String defaultHost = "logging:7469" ;
115
+ String apiShortName = Composer .parseDefaultHost (defaultHost );
116
+ assertEquals ("logging:7469" , apiShortName );
117
+ }
118
+
119
+ @ Test
120
+ public void gapicClass_addRegionTagAndHeaderToSample () {
121
+ Sample testSample ;
122
+ testSample = Composer .addRegionTagAndHeaderToSample (sample , "showcase" , "v1" );
123
+ assertEquals ("Showcase" , testSample .regionTag ().apiShortName ());
124
+ assertEquals ("V1" , testSample .regionTag ().apiVersion ());
125
+ assertEquals (Arrays .asList (CommentComposer .APACHE_LICENSE_COMMENT ), testSample .fileHeader ());
126
+ }
127
+
95
128
@ Test
96
129
public void composeSamples_parseProtoPackage () {
130
+
131
+ String defaultHost = "accessapproval.googleapis.com:443" ;
132
+ GapicClass testClass = clazzes .get (0 ).withSamples (ListofSamples ).withDefaultHost (defaultHost );
133
+ List <GapicClass > testClassList = Arrays .asList (new GapicClass [] {testClass });
97
134
String protoPack = "google.cloud.accessapproval.v1" ;
135
+
98
136
List <Sample > composedSamples =
99
- Composer .prepareExecutableSamples (clazzes , protoPack ).get (0 ).samples ();
137
+ Composer .prepareExecutableSamples (testClassList , protoPack ).get (0 ).samples ();
138
+
139
+ // If samples is empty, the test automatically passes without checking.
140
+ assertFalse (composedSamples .isEmpty ());
100
141
101
142
for (Sample sample : composedSamples ) {
102
143
assertEquals (
103
- "ApiShortName should be accessapproval " ,
144
+ "ApiShortName should be Accessapproval " ,
104
145
sample .regionTag ().apiShortName (),
105
- "accessapproval " );
106
- assertEquals ("ApiVersion should be v1 " , sample .regionTag ().apiVersion (), "v1 " );
146
+ "Accessapproval " );
147
+ assertEquals ("ApiVersion should be V1 " , sample .regionTag ().apiVersion (), "V1 " );
107
148
}
108
149
109
150
protoPack = "google.cloud.vision.v1p1beta1" ;
110
- composedSamples = Composer .prepareExecutableSamples (clazzes , protoPack ).get (0 ).samples ();
151
+ defaultHost = "vision.googleapis.com" ;
152
+ testClass = clazzes .get (0 ).withSamples (ListofSamples ).withDefaultHost (defaultHost );
153
+ testClassList = Arrays .asList (new GapicClass [] {testClass });
154
+ composedSamples = Composer .prepareExecutableSamples (testClassList , protoPack ).get (0 ).samples ();
155
+ // If samples is empty, the test automatically passes without checking.
156
+ assertFalse (composedSamples .isEmpty ());
157
+
111
158
for (Sample sample : composedSamples ) {
112
- assertEquals ("ApiShortName should be vision " , sample .regionTag ().apiShortName (), "vision " );
113
- assertEquals ("ApiVersion should be v1p1beta1 " , sample .regionTag ().apiVersion (), "v1p1beta1 " );
159
+ assertEquals ("ApiShortName should be Vision " , sample .regionTag ().apiShortName (), "Vision " );
160
+ assertEquals ("ApiVersion should be V1P1Beta1 " , sample .regionTag ().apiVersion (), "V1P1Beta1 " );
114
161
}
115
162
116
163
protoPack = "google.cloud.vision" ;
117
- composedSamples = Composer .prepareExecutableSamples (clazzes , protoPack ).get (0 ).samples ();
164
+ composedSamples = Composer .prepareExecutableSamples (testClassList , protoPack ).get (0 ).samples ();
165
+ // If samples is empty, the test automatically passes without checking.
166
+ assertFalse (composedSamples .isEmpty ());
167
+
118
168
for (Sample sample : composedSamples ) {
119
- assertEquals ("ApiShortName should be vision " , sample .regionTag ().apiShortName (), "vision " );
169
+ assertEquals ("ApiShortName should be Vision " , sample .regionTag ().apiShortName (), "Vision " );
120
170
assertEquals ("ApiVersion should be empty" , sample .regionTag ().apiVersion (), "" );
121
171
}
122
172
}
0 commit comments