@@ -1505,4 +1505,180 @@ public void validComposeLroCallableMethodHeaderSampleCode_withReturnVoid() {
15051505 "}" );
15061506 assertEquals (results , expected );
15071507 }
1508+
1509+ // ================================Paged Callable Method Sample Code ====================//
1510+ @ Test
1511+ public void validComposePagedCallableMethodHeaderSampleCode () {
1512+ FileDescriptor echoFileDescriptor = EchoOuterClass .getDescriptor ();
1513+ Map <String , ResourceName > resourceNames = Parser .parseResourceNames (echoFileDescriptor );
1514+ Map <String , Message > messageTypes = Parser .parseMessages (echoFileDescriptor );
1515+ TypeNode clientType =
1516+ TypeNode .withReference (
1517+ VaporReference .builder ()
1518+ .setName ("EchoClient" )
1519+ .setPakkage (SHOWCASE_PACKAGE_NAME )
1520+ .build ());
1521+ TypeNode inputType =
1522+ TypeNode .withReference (
1523+ VaporReference .builder ()
1524+ .setName ("PagedExpandRequest" )
1525+ .setPakkage (SHOWCASE_PACKAGE_NAME )
1526+ .build ());
1527+ TypeNode outputType =
1528+ TypeNode .withReference (
1529+ VaporReference .builder ()
1530+ .setName ("PagedExpandResponse" )
1531+ .setPakkage (SHOWCASE_PACKAGE_NAME )
1532+ .build ());
1533+ Method method =
1534+ Method .builder ()
1535+ .setName ("PagedExpand" )
1536+ .setInputType (inputType )
1537+ .setOutputType (outputType )
1538+ .setIsPaged (true )
1539+ .build ();
1540+ String results =
1541+ ServiceClientSampleCodeComposer .composePagedCallableMethodHeaderSampleCode (
1542+ method , clientType , resourceNames , messageTypes );
1543+ String expected =
1544+ LineFormatter .lines (
1545+ "try (EchoClient echoClient = EchoClient.create()) {\n " ,
1546+ " PagedExpandRequest request =\n " ,
1547+ " PagedExpandRequest.newBuilder()\n " ,
1548+ " .setContent(\" content951530617\" )\n " ,
1549+ " .setPageSize(883849137)\n " ,
1550+ " .setPageToken(\" pageToken873572522\" )\n " ,
1551+ " .build();\n " ,
1552+ " ApiFuture<EchoResponse> future = echoClient.pagedExpandPagedCallable().futureCall(request);\n " ,
1553+ " // Do something.\n " ,
1554+ " for (EchoResponse element : future.get().iterateAll()) {\n " ,
1555+ " // doThingsWith(element);\n " ,
1556+ " }\n " ,
1557+ "}" );
1558+ assertEquals (results , expected );
1559+ }
1560+
1561+ @ Test
1562+ public void invalidComposePagedCallableMethodHeaderSampleCode_inputTypeNotExistInMessage () {
1563+ FileDescriptor echoFileDescriptor = EchoOuterClass .getDescriptor ();
1564+ Map <String , ResourceName > resourceNames = Parser .parseResourceNames (echoFileDescriptor );
1565+ Map <String , Message > messageTypes = Parser .parseMessages (echoFileDescriptor );
1566+ TypeNode clientType =
1567+ TypeNode .withReference (
1568+ VaporReference .builder ()
1569+ .setName ("EchoClient" )
1570+ .setPakkage (SHOWCASE_PACKAGE_NAME )
1571+ .build ());
1572+ TypeNode inputType =
1573+ TypeNode .withReference (
1574+ VaporReference .builder ()
1575+ .setName ("NotExistRequest" )
1576+ .setPakkage (SHOWCASE_PACKAGE_NAME )
1577+ .build ());
1578+ TypeNode outputType =
1579+ TypeNode .withReference (
1580+ VaporReference .builder ()
1581+ .setName ("PagedExpandResponse" )
1582+ .setPakkage (SHOWCASE_PACKAGE_NAME )
1583+ .build ());
1584+ Method method =
1585+ Method .builder ()
1586+ .setName ("PagedExpand" )
1587+ .setInputType (inputType )
1588+ .setOutputType (outputType )
1589+ .setIsPaged (true )
1590+ .build ();
1591+ assertThrows (
1592+ NullPointerException .class ,
1593+ () ->
1594+ ServiceClientSampleCodeComposer .composePagedCallableMethodHeaderSampleCode (
1595+ method , clientType , resourceNames , messageTypes ));
1596+ }
1597+
1598+ @ Test
1599+ public void invalidComposePagedCallableMethodHeaderSampleCode_noExistMethodResponse () {
1600+ FileDescriptor echoFileDescriptor = EchoOuterClass .getDescriptor ();
1601+ Map <String , ResourceName > resourceNames = Parser .parseResourceNames (echoFileDescriptor );
1602+ Map <String , Message > messageTypes = Parser .parseMessages (echoFileDescriptor );
1603+ TypeNode clientType =
1604+ TypeNode .withReference (
1605+ VaporReference .builder ()
1606+ .setName ("EchoClient" )
1607+ .setPakkage (SHOWCASE_PACKAGE_NAME )
1608+ .build ());
1609+ TypeNode inputType =
1610+ TypeNode .withReference (
1611+ VaporReference .builder ()
1612+ .setName ("EchoRequest" )
1613+ .setPakkage (SHOWCASE_PACKAGE_NAME )
1614+ .build ());
1615+ TypeNode outputType =
1616+ TypeNode .withReference (
1617+ VaporReference .builder ()
1618+ .setName ("NoExistResponse" )
1619+ .setPakkage (SHOWCASE_PACKAGE_NAME )
1620+ .build ());
1621+ Method method =
1622+ Method .builder ()
1623+ .setName ("PagedExpand" )
1624+ .setInputType (inputType )
1625+ .setOutputType (outputType )
1626+ .setIsPaged (true )
1627+ .build ();
1628+ assertThrows (
1629+ NullPointerException .class ,
1630+ () ->
1631+ ServiceClientSampleCodeComposer .composePagedCallableMethodHeaderSampleCode (
1632+ method , clientType , resourceNames , messageTypes ));
1633+ }
1634+
1635+ @ Test
1636+ public void invalidComposePagedCallableMethodHeaderSampleCode_noRepeatedResponse () {
1637+ FileDescriptor echoFileDescriptor = EchoOuterClass .getDescriptor ();
1638+ Map <String , ResourceName > resourceNames = Parser .parseResourceNames (echoFileDescriptor );
1639+ Map <String , Message > messageTypes = Parser .parseMessages (echoFileDescriptor );
1640+ TypeNode clientType =
1641+ TypeNode .withReference (
1642+ VaporReference .builder ()
1643+ .setName ("EchoClient" )
1644+ .setPakkage (SHOWCASE_PACKAGE_NAME )
1645+ .build ());
1646+ TypeNode inputType =
1647+ TypeNode .withReference (
1648+ VaporReference .builder ()
1649+ .setName ("EchoRequest" )
1650+ .setPakkage (SHOWCASE_PACKAGE_NAME )
1651+ .build ());
1652+ TypeNode outputType =
1653+ TypeNode .withReference (
1654+ VaporReference .builder ()
1655+ .setName ("NoRepeatedResponse" )
1656+ .setPakkage (SHOWCASE_PACKAGE_NAME )
1657+ .build ());
1658+ Method method =
1659+ Method .builder ()
1660+ .setName ("PagedExpand" )
1661+ .setInputType (inputType )
1662+ .setOutputType (outputType )
1663+ .setIsPaged (true )
1664+ .build ();
1665+ Field responseField = Field .builder ().setName ("response" ).setType (TypeNode .STRING ).build ();
1666+ Message noRepeatedResponseMessage =
1667+ Message .builder ()
1668+ .setName ("NoRepeatedResponse" )
1669+ .setType (
1670+ TypeNode .withReference (
1671+ VaporReference .builder ()
1672+ .setName ("NoRepeatedResponse" )
1673+ .setPakkage (SHOWCASE_PACKAGE_NAME )
1674+ .build ()))
1675+ .setFields (Arrays .asList (responseField ))
1676+ .build ();
1677+ messageTypes .put ("NoRepeatedResponse" , noRepeatedResponseMessage );
1678+ assertThrows (
1679+ NullPointerException .class ,
1680+ () ->
1681+ ServiceClientSampleCodeComposer .composePagedCallableMethodHeaderSampleCode (
1682+ method , clientType , resourceNames , messageTypes ));
1683+ }
15081684}
0 commit comments