@@ -1551,203 +1551,6 @@ public void generateQuarkusConcreteClassDoesNotAddResponseStatusAnnotation() thr
15511551 * including 200, for explicit documentation purposes.
15521552 * ping.yaml has a 201 response.
15531553 */
1554- @ Test
1555- public void generateQuarkusInterfaceAddsResponseStatusAnnotationForSuccessCode () throws Exception {
1556- final File output = Files .createTempDirectory ("test" ).toFile ().getCanonicalFile ();
1557- output .deleteOnExit ();
1558-
1559- final OpenAPI openAPI = new OpenAPIParser ()
1560- .readLocation ("src/test/resources/3_0/ping.yaml" , null , new ParseOptions ()).getOpenAPI ();
1561-
1562- codegen .setOutputDir (output .getAbsolutePath ());
1563- codegen .setLibrary (QUARKUS_LIBRARY ); //Given the quarkus library is used
1564- codegen .additionalProperties ().put (INTERFACE_ONLY , true ); //And only interfaces are generated
1565- codegen .additionalProperties ().put (USE_JAKARTA_EE , true ); //Required: @ResponseStatus is only emitted for Jakarta EE (Quarkus 3+)
1566- // returnResponse and returnJBossResponse are both false (defaults)
1567-
1568- final ClientOptInput input = new ClientOptInput ()
1569- .openAPI (openAPI )
1570- .config (codegen );
1571-
1572- final DefaultGenerator generator = new DefaultGenerator ();
1573- final List <File > files = generator .opts (input ).generate ();
1574-
1575- validateJavaSourceFiles (files );
1576-
1577- //Then the generated interface contains the ResponseStatus import and annotation with code 201
1578- TestUtils .ensureContainsFile (files , output , "src/gen/java/org/openapitools/api/PingApi.java" );
1579- assertFileContains (output .toPath ().resolve ("src/gen/java/org/openapitools/api/PingApi.java" ),
1580- "import org.jboss.resteasy.reactive.ResponseStatus;" ,
1581- "@ResponseStatus(201)" );
1582- }
1583-
1584- /**
1585- * Verify that {@code @ResponseStatus(200)} IS emitted even for the default 200 status code,
1586- * for explicit documentation purposes.
1587- */
1588- @ Test
1589- public void generateQuarkusInterfaceAddsResponseStatusAnnotationFor200Response () throws Exception {
1590- final File output = Files .createTempDirectory ("test" ).toFile ().getCanonicalFile ();
1591- output .deleteOnExit ();
1592-
1593- final OpenAPI openAPI = new OpenAPIParser ()
1594- .readLocation ("src/test/resources/3_0/petstore.yaml" , null , new ParseOptions ()).getOpenAPI ();
1595-
1596- codegen .setOutputDir (output .getAbsolutePath ());
1597- codegen .setLibrary (QUARKUS_LIBRARY );
1598- codegen .additionalProperties ().put (INTERFACE_ONLY , true );
1599- codegen .additionalProperties ().put (USE_JAKARTA_EE , true ); //Required: @ResponseStatus is only emitted for Jakarta EE (Quarkus 3+)
1600-
1601- final ClientOptInput input = new ClientOptInput ()
1602- .openAPI (openAPI )
1603- .config (codegen );
1604-
1605- final DefaultGenerator generator = new DefaultGenerator ();
1606- final List <File > files = generator .opts (input ).generate ();
1607-
1608- validateJavaSourceFiles (files );
1609-
1610- //Then @ResponseStatus(200) IS present for explicit documentation
1611- TestUtils .ensureContainsFile (files , output , "src/gen/java/org/openapitools/api/PetApi.java" );
1612- assertFileContains (output .toPath ().resolve ("src/gen/java/org/openapitools/api/PetApi.java" ),
1613- "import org.jboss.resteasy.reactive.ResponseStatus;" ,
1614- "@ResponseStatus(200)" );
1615- }
1616-
1617-
1618- /**
1619- * Verify that the {@code @ResponseStatus} annotation is NOT emitted when returnResponse=true,
1620- * because the user controls the status code via the {@code Response} builder in that mode.
1621- */
1622- @ Test
1623- public void generateQuarkusInterfaceDoesNotAddResponseStatusAnnotationWhenReturnResponse () throws Exception {
1624- final File output = Files .createTempDirectory ("test" ).toFile ().getCanonicalFile ();
1625- output .deleteOnExit ();
1626-
1627- final OpenAPI openAPI = new OpenAPIParser ()
1628- .readLocation ("src/test/resources/3_0/ping.yaml" , null , new ParseOptions ()).getOpenAPI ();
1629-
1630- codegen .setOutputDir (output .getAbsolutePath ());
1631- codegen .setLibrary (QUARKUS_LIBRARY );
1632- codegen .additionalProperties ().put (INTERFACE_ONLY , true );
1633- codegen .additionalProperties ().put (USE_JAKARTA_EE , true ); //Enabled so returnResponse is the only disabling factor
1634- codegen .additionalProperties ().put (RETURN_RESPONSE , true ); //Given returnResponse is true
1635-
1636- final ClientOptInput input = new ClientOptInput ()
1637- .openAPI (openAPI )
1638- .config (codegen );
1639-
1640- final DefaultGenerator generator = new DefaultGenerator ();
1641- final List <File > files = generator .opts (input ).generate ();
1642-
1643- validateJavaSourceFiles (files );
1644-
1645- //Then the annotation must NOT appear
1646- TestUtils .ensureContainsFile (files , output , "src/gen/java/org/openapitools/api/PingApi.java" );
1647- assertFileNotContains (output .toPath ().resolve ("src/gen/java/org/openapitools/api/PingApi.java" ),
1648- "@ResponseStatus" ,
1649- "import org.jboss.resteasy.reactive.ResponseStatus" );
1650- }
1651-
1652- /**
1653- * Verify that the {@code @ResponseStatus} annotation is NOT emitted when returnJBossResponse=true,
1654- * because the caller controls the status code via the {@code RestResponse} wrapper in that mode.
1655- */
1656- @ Test
1657- public void generateQuarkusInterfaceDoesNotAddResponseStatusAnnotationWhenReturnJBossResponse () throws Exception {
1658- final File output = Files .createTempDirectory ("test" ).toFile ().getCanonicalFile ();
1659- output .deleteOnExit ();
1660-
1661- final OpenAPI openAPI = new OpenAPIParser ()
1662- .readLocation ("src/test/resources/3_0/ping.yaml" , null , new ParseOptions ()).getOpenAPI ();
1663-
1664- codegen .setOutputDir (output .getAbsolutePath ());
1665- codegen .setLibrary (QUARKUS_LIBRARY );
1666- codegen .additionalProperties ().put (INTERFACE_ONLY , true );
1667- codegen .additionalProperties ().put (USE_JAKARTA_EE , true ); //Required by returnJBossResponse
1668- codegen .additionalProperties ().put (RETURN_JBOSS_RESPONSE , true ); //Given returnJBossResponse is true
1669-
1670- final ClientOptInput input = new ClientOptInput ()
1671- .openAPI (openAPI )
1672- .config (codegen );
1673-
1674- final DefaultGenerator generator = new DefaultGenerator ();
1675- final List <File > files = generator .opts (input ).generate ();
1676-
1677- validateJavaSourceFiles (files );
1678-
1679- //Then the annotation must NOT appear
1680- TestUtils .ensureContainsFile (files , output , "src/gen/java/org/openapitools/api/PingApi.java" );
1681- assertFileNotContains (output .toPath ().resolve ("src/gen/java/org/openapitools/api/PingApi.java" ),
1682- "@ResponseStatus" ,
1683- "import org.jboss.resteasy.reactive.ResponseStatus" );
1684- }
1685-
1686- /**
1687- * Verify that {@code @ResponseStatus} is NOT emitted when using a non-Quarkus jaxrs-spec library,
1688- * since {@code org.jboss.resteasy.reactive.ResponseStatus} is a RESTEasy Reactive / Quarkus-specific annotation.
1689- */
1690- @ Test
1691- public void generateNonQuarkusInterfaceDoesNotAddResponseStatusAnnotation () throws Exception {
1692- final File output = Files .createTempDirectory ("test" ).toFile ().getCanonicalFile ();
1693- output .deleteOnExit ();
1694-
1695- final OpenAPI openAPI = new OpenAPIParser ()
1696- .readLocation ("src/test/resources/3_0/ping.yaml" , null , new ParseOptions ()).getOpenAPI ();
1697-
1698- codegen .setOutputDir (output .getAbsolutePath ());
1699- // No setLibrary call — uses the default jaxrs-spec library
1700- codegen .additionalProperties ().put (INTERFACE_ONLY , true );
1701-
1702- final ClientOptInput input = new ClientOptInput ()
1703- .openAPI (openAPI )
1704- .config (codegen );
1705-
1706- final DefaultGenerator generator = new DefaultGenerator ();
1707- final List <File > files = generator .opts (input ).generate ();
1708-
1709- validateJavaSourceFiles (files );
1710-
1711- //Then the annotation must NOT appear
1712- TestUtils .ensureContainsFile (files , output , "src/gen/java/org/openapitools/api/PingApi.java" );
1713- assertFileNotContains (output .toPath ().resolve ("src/gen/java/org/openapitools/api/PingApi.java" ),
1714- "@ResponseStatus" ,
1715- "import org.jboss.resteasy.reactive.ResponseStatus" );
1716- }
1717-
1718- /**
1719- * Verify that the concrete stub class does NOT contain {@code @ResponseStatus} because the
1720- * stub always returns {@code Response}, and RESTEasy Reactive ignores {@code @ResponseStatus}
1721- * when the method returns {@code Response}. The annotation lives on the interface instead.
1722- */
1723- @ Test
1724- public void generateQuarkusConcreteClassDoesNotAddResponseStatusAnnotation () throws Exception {
1725- final File output = Files .createTempDirectory ("test" ).toFile ().getCanonicalFile ();
1726- output .deleteOnExit ();
1727-
1728- final OpenAPI openAPI = new OpenAPIParser ()
1729- .readLocation ("src/test/resources/3_0/ping.yaml" , null , new ParseOptions ()).getOpenAPI ();
1730-
1731- codegen .setOutputDir (output .getAbsolutePath ());
1732- codegen .setLibrary (QUARKUS_LIBRARY );
1733- codegen .additionalProperties ().put (USE_JAKARTA_EE , true );
1734- codegen .additionalProperties ().put (INTERFACE_ONLY , false ); //Given the concrete class is generated
1735-
1736- final ClientOptInput input = new ClientOptInput ()
1737- .openAPI (openAPI )
1738- .config (codegen );
1739-
1740- final DefaultGenerator generator = new DefaultGenerator ();
1741- final List <File > files = generator .opts (input ).generate ();
1742-
1743- validateJavaSourceFiles (files );
1744-
1745- //Then the concrete class must NOT contain @ResponseStatus (it returns Response, so it would be ignored)
1746- TestUtils .ensureContainsFile (files , output , "src/gen/java/org/openapitools/api/PingApi.java" );
1747- assertFileNotContains (output .toPath ().resolve ("src/gen/java/org/openapitools/api/PingApi.java" ),
1748- "@ResponseStatus" ,
1749- "import org.jboss.resteasy.reactive.ResponseStatus" );
1750- }
17511554
17521555 @ Test
17531556 public void generateQuarkusInterfaceWithAuthenticatedForOAuth2EmptyScopes () throws Exception {
0 commit comments