@@ -1684,7 +1684,7 @@ public void invalidComposePagedCallableMethodHeaderSampleCode_noRepeatedResponse
16841684 method , clientType , resourceNames , messageTypes ));
16851685 }
16861686
1687- // ==============================Server Stream Callable Method Sample Code ====================//
1687+ // ==============================Stream Callable Method Sample Code ====================//
16881688 @ Test
16891689 public void validComposeStreamCallableMethodHeaderSampleCode_serverStream () {
16901690 FileDescriptor echoFileDescriptor = EchoOuterClass .getDescriptor ();
@@ -2008,6 +2008,167 @@ public void validComposeRegularCallableMethodHeaderSampleCode_unaryRpc() {
20082008 assertEquals (results , expected );
20092009 }
20102010
2011+ @ Test
2012+ public void validComposeRegularCallableMethodHeaderSampleCode_lroRpc () {
2013+ FileDescriptor echoFileDescriptor = EchoOuterClass .getDescriptor ();
2014+ Map <String , ResourceName > resourceNames = Parser .parseResourceNames (echoFileDescriptor );
2015+ Map <String , Message > messageTypes = Parser .parseMessages (echoFileDescriptor );
2016+ TypeNode clientType =
2017+ TypeNode .withReference (
2018+ VaporReference .builder ()
2019+ .setName ("EchoClient" )
2020+ .setPakkage (SHOWCASE_PACKAGE_NAME )
2021+ .build ());
2022+ TypeNode inputType =
2023+ TypeNode .withReference (
2024+ VaporReference .builder ()
2025+ .setName ("WaitRequest" )
2026+ .setPakkage (SHOWCASE_PACKAGE_NAME )
2027+ .build ());
2028+ TypeNode outputType =
2029+ TypeNode .withReference (
2030+ VaporReference .builder ().setName ("Operation" ).setPakkage (LRO_PACKAGE_NAME ).build ());
2031+ TypeNode responseType =
2032+ TypeNode .withReference (
2033+ VaporReference .builder ()
2034+ .setName ("WaitResponse" )
2035+ .setPakkage (SHOWCASE_PACKAGE_NAME )
2036+ .build ());
2037+ TypeNode metadataType =
2038+ TypeNode .withReference (
2039+ VaporReference .builder ()
2040+ .setName ("WaitMetadata" )
2041+ .setPakkage (SHOWCASE_PACKAGE_NAME )
2042+ .build ());
2043+ LongrunningOperation lro = LongrunningOperation .withTypes (responseType , metadataType );
2044+ Method method =
2045+ Method .builder ()
2046+ .setName ("Wait" )
2047+ .setInputType (inputType )
2048+ .setOutputType (outputType )
2049+ .setLro (lro )
2050+ .build ();
2051+ String results =
2052+ ServiceClientSampleCodeComposer .composeRegularCallableMethodHeaderSampleCode (
2053+ method , clientType , resourceNames , messageTypes );
2054+ String expected =
2055+ LineFormatter .lines (
2056+ "try (EchoClient echoClient = EchoClient.create()) {\n " ,
2057+ " WaitRequest request = WaitRequest.newBuilder().build();\n " ,
2058+ " ApiFuture<Operation> future = echoClient.waitCallable().futureCall(request);\n " ,
2059+ " // Do something.\n " ,
2060+ " Operation response = future.get();\n " ,
2061+ "}" );
2062+ assertEquals (results , expected );
2063+ }
2064+
2065+ @ Test
2066+ public void validComposeRegularCallableMethodHeaderSampleCode_lroRpcWithReturnVoid () {
2067+ FileDescriptor echoFileDescriptor = EchoOuterClass .getDescriptor ();
2068+ Map <String , ResourceName > resourceNames = Parser .parseResourceNames (echoFileDescriptor );
2069+ Map <String , Message > messageTypes = Parser .parseMessages (echoFileDescriptor );
2070+ TypeNode clientType =
2071+ TypeNode .withReference (
2072+ VaporReference .builder ()
2073+ .setName ("EchoClient" )
2074+ .setPakkage (SHOWCASE_PACKAGE_NAME )
2075+ .build ());
2076+ TypeNode inputType =
2077+ TypeNode .withReference (
2078+ VaporReference .builder ()
2079+ .setName ("WaitRequest" )
2080+ .setPakkage (SHOWCASE_PACKAGE_NAME )
2081+ .build ());
2082+ TypeNode outputType =
2083+ TypeNode .withReference (
2084+ VaporReference .builder ().setName ("Operation" ).setPakkage (LRO_PACKAGE_NAME ).build ());
2085+ TypeNode responseType =
2086+ TypeNode .withReference (
2087+ VaporReference .builder ()
2088+ .setName ("Empty" )
2089+ .setPakkage (PROTO_PACKAGE_NAME )
2090+ .build ());
2091+ TypeNode metadataType =
2092+ TypeNode .withReference (
2093+ VaporReference .builder ()
2094+ .setName ("WaitMetadata" )
2095+ .setPakkage (SHOWCASE_PACKAGE_NAME )
2096+ .build ());
2097+ LongrunningOperation lro = LongrunningOperation .withTypes (responseType , metadataType );
2098+ Method method =
2099+ Method .builder ()
2100+ .setName ("Wait" )
2101+ .setInputType (inputType )
2102+ .setOutputType (outputType )
2103+ .setLro (lro )
2104+ .build ();
2105+ String results =
2106+ ServiceClientSampleCodeComposer .composeRegularCallableMethodHeaderSampleCode (
2107+ method , clientType , resourceNames , messageTypes );
2108+ String expected =
2109+ LineFormatter .lines (
2110+ "try (EchoClient echoClient = EchoClient.create()) {\n " ,
2111+ " WaitRequest request = WaitRequest.newBuilder().build();\n " ,
2112+ " ApiFuture<Operation> future = echoClient.waitCallable().futureCall(request);\n " ,
2113+ " // Do something.\n " ,
2114+ " future.get();\n " ,
2115+ "}" );
2116+ assertEquals (results , expected );
2117+ }
2118+
2119+ @ Test
2120+ public void validComposeRegularCallableMethodHeaderSampleCode_pageRpc () {
2121+ FileDescriptor echoFileDescriptor = EchoOuterClass .getDescriptor ();
2122+ Map <String , ResourceName > resourceNames = Parser .parseResourceNames (echoFileDescriptor );
2123+ Map <String , Message > messageTypes = Parser .parseMessages (echoFileDescriptor );
2124+ TypeNode clientType =
2125+ TypeNode .withReference (
2126+ VaporReference .builder ()
2127+ .setName ("EchoClient" )
2128+ .setPakkage (SHOWCASE_PACKAGE_NAME )
2129+ .build ());
2130+ TypeNode inputType =
2131+ TypeNode .withReference (
2132+ VaporReference .builder ()
2133+ .setName ("PagedExpandRequest" )
2134+ .setPakkage (SHOWCASE_PACKAGE_NAME )
2135+ .build ());
2136+ TypeNode outputType =
2137+ TypeNode .withReference (
2138+ VaporReference .builder ()
2139+ .setName ("PagedExpandResponse" )
2140+ .setPakkage (SHOWCASE_PACKAGE_NAME )
2141+ .build ());
2142+ Method method =
2143+ Method .builder ()
2144+ .setName ("PagedExpand" )
2145+ .setInputType (inputType )
2146+ .setOutputType (outputType )
2147+ .setMethodSignatures (Collections .emptyList ())
2148+ .setIsPaged (true )
2149+ .build ();
2150+ String results =
2151+ ServiceClientSampleCodeComposer .composeRegularCallableMethodHeaderSampleCode (
2152+ method , clientType , resourceNames , messageTypes );
2153+ String expected =
2154+ LineFormatter .lines (
2155+ "try (EchoClient echoClient = EchoClient.create()) {\n " ,
2156+ " while (true) {\n " ,
2157+ " PagedExpandResponse response = echoClient.pagedExpandCallable().call(request);\n " ,
2158+ " for (EchoResponse element : response.getResponsesList()) {\n " ,
2159+ " // doThingsWith(element);\n " ,
2160+ " }\n " ,
2161+ " String nextPageToken = response.getNextPageToken();\n " ,
2162+ " if (!Strings.isNullOrEmpty(nextPageToken)) {\n " ,
2163+ " request = request.toBuilder().setPageToken(nextPageToken).build();\n " ,
2164+ " } else {\n " ,
2165+ " break;\n " ,
2166+ " }\n " ,
2167+ " }\n " ,
2168+ "}" );
2169+ assertEquals (results , expected );
2170+ }
2171+
20112172 @ Test
20122173 public void invalidComposeRegularCallableMethodHeaderSampleCode_noExistMethodRequest () {
20132174 FileDescriptor echoFileDescriptor = EchoOuterClass .getDescriptor ();
@@ -2043,4 +2204,91 @@ public void invalidComposeRegularCallableMethodHeaderSampleCode_noExistMethodReq
20432204 ServiceClientSampleCodeComposer .composeRegularCallableMethodHeaderSampleCode (
20442205 method , clientType , resourceNames , messageTypes ));
20452206 }
2207+
2208+ @ Test
2209+ public void invalidComposeRegularCallableMethodHeaderSampleCode_noExistMethodResponsePagedRpc () {
2210+ FileDescriptor echoFileDescriptor = EchoOuterClass .getDescriptor ();
2211+ Map <String , ResourceName > resourceNames = Parser .parseResourceNames (echoFileDescriptor );
2212+ Map <String , Message > messageTypes = Parser .parseMessages (echoFileDescriptor );
2213+ TypeNode clientType =
2214+ TypeNode .withReference (
2215+ VaporReference .builder ()
2216+ .setName ("EchoClient" )
2217+ .setPakkage (SHOWCASE_PACKAGE_NAME )
2218+ .build ());
2219+ TypeNode inputType =
2220+ TypeNode .withReference (
2221+ VaporReference .builder ()
2222+ .setName ("EchoRequest" )
2223+ .setPakkage (SHOWCASE_PACKAGE_NAME )
2224+ .build ());
2225+ TypeNode outputType =
2226+ TypeNode .withReference (
2227+ VaporReference .builder ()
2228+ .setName ("NoExistResponse" )
2229+ .setPakkage (SHOWCASE_PACKAGE_NAME )
2230+ .build ());
2231+ Method method =
2232+ Method .builder ()
2233+ .setName ("PagedExpand" )
2234+ .setInputType (inputType )
2235+ .setOutputType (outputType )
2236+ .setIsPaged (true )
2237+ .build ();
2238+ assertThrows (
2239+ NullPointerException .class ,
2240+ () ->
2241+ ServiceClientSampleCodeComposer .composeRegularCallableMethodHeaderSampleCode (
2242+ method , clientType , resourceNames , messageTypes ));
2243+ }
2244+
2245+ @ Test
2246+ public void invalidComposeRegularCallableMethodHeaderSampleCode_noRepeatedResponsePagedRpc () {
2247+ FileDescriptor echoFileDescriptor = EchoOuterClass .getDescriptor ();
2248+ Map <String , ResourceName > resourceNames = Parser .parseResourceNames (echoFileDescriptor );
2249+ Map <String , Message > messageTypes = Parser .parseMessages (echoFileDescriptor );
2250+ TypeNode clientType =
2251+ TypeNode .withReference (
2252+ VaporReference .builder ()
2253+ .setName ("EchoClient" )
2254+ .setPakkage (SHOWCASE_PACKAGE_NAME )
2255+ .build ());
2256+ TypeNode inputType =
2257+ TypeNode .withReference (
2258+ VaporReference .builder ()
2259+ .setName ("EchoRequest" )
2260+ .setPakkage (SHOWCASE_PACKAGE_NAME )
2261+ .build ());
2262+ TypeNode outputType =
2263+ TypeNode .withReference (
2264+ VaporReference .builder ()
2265+ .setName ("NoRepeatedResponse" )
2266+ .setPakkage (SHOWCASE_PACKAGE_NAME )
2267+ .build ());
2268+ Method method =
2269+ Method .builder ()
2270+ .setName ("PagedExpand" )
2271+ .setInputType (inputType )
2272+ .setOutputType (outputType )
2273+ .setIsPaged (true )
2274+ .build ();
2275+ Field responseField = Field .builder ().setName ("response" ).setType (TypeNode .STRING ).build ();
2276+ Message noRepeatedResponseMessage =
2277+ Message .builder ()
2278+ .setName ("NoRepeatedResponse" )
2279+ .setType (
2280+ TypeNode .withReference (
2281+ VaporReference .builder ()
2282+ .setName ("NoRepeatedResponse" )
2283+ .setPakkage (SHOWCASE_PACKAGE_NAME )
2284+ .build ()))
2285+ .setFields (Arrays .asList (responseField ))
2286+ .build ();
2287+ messageTypes .put ("NoRepeatedResponse" , noRepeatedResponseMessage );
2288+ assertThrows (
2289+ NullPointerException .class ,
2290+ () ->
2291+ ServiceClientSampleCodeComposer .composeRegularCallableMethodHeaderSampleCode (
2292+ method , clientType , resourceNames , messageTypes ));
2293+ }
20462294}
0 commit comments