/** * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.camel.generator.swagger; import io.swagger.models.Info; import io.swagger.models.Swagger; import org.junit.Test; import static org.assertj.core.api.Assertions.assertThat; public class RestDslSourceCodeGeneratorTest { @Test public void shouldCreatePackageNamesFromHostnames() { final Swagger swagger = new Swagger(); swagger.setHost("api.example.org"); assertThat(RestDslSourceCodeGenerator.generatePackageName(swagger)).isEqualTo("org.example.api"); } @Test public void shouldCreatePackageNamesFromHostnamesWithPorts() { final Swagger swagger = new Swagger(); swagger.setHost("api.example.org:8080"); assertThat(RestDslSourceCodeGenerator.generatePackageName(swagger)).isEqualTo("org.example.api"); } @Test public void shouldGenerateClassNameFromTitle() { final Swagger swagger = new Swagger(); swagger.info(new Info().title("Example API")); assertThat(RestDslSourceCodeGenerator.generateClassName(swagger)).isEqualTo("ExampleAPI"); } @Test public void shouldGenerateClassNameFromTitleWithNonValidJavaIdentifiers() { final Swagger swagger = new Swagger(); swagger.info(new Info().title("Example-API 2.0")); assertThat(RestDslSourceCodeGenerator.generateClassName(swagger)).isEqualTo("ExampleAPI20"); } @Test public void shouldUseDefaultClassNameIfInfoOrTitleIsNotPresent() { final Swagger swagger = new Swagger(); assertThat(RestDslSourceCodeGenerator.generateClassName(swagger)) .isEqualTo(RestDslSourceCodeGenerator.DEFAULT_CLASS_NAME); assertThat(RestDslSourceCodeGenerator.generateClassName(swagger.info(new Info()))) .isEqualTo(RestDslSourceCodeGenerator.DEFAULT_CLASS_NAME); } @Test public void shouldUseDefaultClassNameIfTitleContainsOnlyNonValidJavaIdentifiers() { final Swagger swagger = new Swagger(); swagger.info(new Info().title("\\%/4")); assertThat(RestDslSourceCodeGenerator.generateClassName(swagger)) .isEqualTo(RestDslSourceCodeGenerator.DEFAULT_CLASS_NAME); } @Test public void shouldUseDefaultPackageNameForLocalhost() { final Swagger swagger = new Swagger(); swagger.setHost("localhost"); assertThat(RestDslSourceCodeGenerator.generatePackageName(swagger)) .isEqualTo(RestDslSourceCodeGenerator.DEFAULT_PACKAGE_NAME); } @Test public void shouldUseDefaultPackageNameForLocalhostWithPort() { final Swagger swagger = new Swagger(); swagger.setHost("localhost:8080"); assertThat(RestDslSourceCodeGenerator.generatePackageName(swagger)) .isEqualTo(RestDslSourceCodeGenerator.DEFAULT_PACKAGE_NAME); } @Test public void shouldUseDefaultPackageNameIfNoHostIsSpecified() { final Swagger swagger = new Swagger(); assertThat(RestDslSourceCodeGenerator.generatePackageName(swagger)) .isEqualTo(RestDslSourceCodeGenerator.DEFAULT_PACKAGE_NAME); } }