@openapi-generator-plus/java-cxf-cdi-server-generator
Version:
An OpenAPI Generator Plus template for a Java API server using CXF and CDI
77 lines (67 loc) • 3.43 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.apiTest = apiTest;
const template_utils_1 = require("@openapi-generator-plus/template-utils");
const java_jaxrs_generator_common_1 = require("@openapi-generator-plus/java-jaxrs-generator-common");
const java_jaxrs_server_generator_1 = require("@openapi-generator-plus/java-jaxrs-server-generator");
/** One operation's placeholder test method, its request commented out until the caller fills in real values. */
function operationTest(operation, ctx) {
const { arguments: args } = (0, java_jaxrs_generator_common_1.operationVars)(operation, { jaxrs: false, service: false }, java_jaxrs_server_generator_1.bodyParam, ctx);
const name = (0, template_utils_1.identifier)(ctx.generatorContext.generator(), operation.name);
const returnNativeType = operation.returnNativeType;
const returnAssertion = returnNativeType
? (0, template_utils_1.ts) `
// ${returnNativeType} result = response.readEntity(${returnNativeType.literalType}.class);
// Assertions.assertNotNull(result);`
: template_utils_1.SKIP;
return (0, template_utils_1.ts) `
@Test
public void ${name}Test() {
// Response response = this.api.${name}(${args});
// Assertions.assertNotNull(response);
${returnAssertion}
}
`;
}
/** This generator's empty-bodied API test class for `group`, wired up to run over CXF's local transport under Weld. */
function apiTest(group, ctx) {
var _a, _b, _c;
const generator = ctx.generatorContext.generator();
const name = (0, template_utils_1.className)(generator, group.name);
const root = ctx.root;
const jx = (0, java_jaxrs_generator_common_1.javax)(root.useJakarta);
const operationsText = (0, template_utils_1.each)(group.operations, operation => operationTest(operation, ctx), '');
return (0, template_utils_1.ts) `
package ${root.apiPackage};
import java.util.ArrayList;
import ${jx}.ws.rs.core.Response;
import org.apache.cxf.jaxrs.client.JAXRSClientFactory;
import org.apache.cxf.jaxrs.client.WebClient;
import org.apache.cxf.transport.local.LocalConduit;
import org.jboss.weld.junit5.EnableWeld;
import org.jboss.weld.junit5.WeldInitiator;
import org.jboss.weld.junit5.WeldSetup;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestInstance;
import org.junit.jupiter.api.TestInstance.Lifecycle;
@TestInstance(Lifecycle.PER_CLASS)
@EnableWeld
public class ${name}ApiTest {
@WeldSetup
private WeldInitiator weld = WeldInitiator.from(WeldInitiator.createWeld()
.addPackages(${root.apiImplPackage}.${name}ApiImpl.class, ${(_a = root.apiServiceImplPackage) !== null && _a !== void 0 ? _a : ''}.${name}ApiServiceImpl.class)
.addBeanClasses(${(_b = root.invokerPackage) !== null && _b !== void 0 ? _b : ''}.${(_c = root.invokerName) !== null && _c !== void 0 ? _c : ''}.class)
.addBeanClasses(TestConfiguration.class)
.addExtension(new org.apache.cxf.cdi.JAXRSCdiResourceExtension()))
.build();
private ${root.apiPackage}.${name}Api api;
@BeforeAll
public void setup() throws Exception {
api = JAXRSClientFactory.create(TestConfiguration.ENDPOINT_ADDRESS, ${root.apiPackage}.${name}Api.class, TestConfiguration.defaultProviders());
WebClient.getConfig(api).getRequestContext().put(LocalConduit.DIRECT_DISPATCH, Boolean.TRUE);
}
${operationsText}}
`;
}