/*
* Copyright 2012-2015 the original author or authors.
*
* Licensed 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 io.spring.initializr.metadata;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
/**
* @author Stephane Nicoll
*/
public class InitializrConfigurationTests {
private final InitializrConfiguration properties = new InitializrConfiguration();
@Test
public void generateApplicationNameSimple() {
assertEquals("DemoApplication", this.properties.generateApplicationName("demo"));
}
@Test
public void generateApplicationNameSimpleApplication() {
assertEquals("DemoApplication", this.properties.generateApplicationName("demoApplication"));
}
@Test
public void generateApplicationNameSimpleCamelCase() {
assertEquals("MyDemoApplication", this.properties.generateApplicationName("myDemo"));
}
@Test
public void generateApplicationNameSimpleUnderscore() {
assertEquals("MyDemoApplication", this.properties.generateApplicationName("my_demo"));
}
@Test
public void generateApplicationNameSimpleColon() {
assertEquals("MyDemoApplication", this.properties.generateApplicationName("my:demo"));
}
@Test
public void generateApplicationNameSimpleSpace() {
assertEquals("MyDemoApplication", this.properties.generateApplicationName("my demo"));
}
@Test
public void generateApplicationNameSimpleDash() {
assertEquals("MyDemoApplication", this.properties.generateApplicationName("my-demo"));
}
@Test
public void generateApplicationNameUpperCaseUnderscore() {
assertEquals("MyDemoApplication", this.properties.generateApplicationName("MY_DEMO"));
}
@Test
public void generateApplicationNameUpperCaseDash() {
assertEquals("MyDemoApplication", this.properties.generateApplicationName("MY-DEMO"));
}
@Test
public void generateApplicationNameMultiSpaces() {
assertEquals("MyDemoApplication", this.properties.generateApplicationName(" my demo "));
}
@Test
public void generateApplicationNameMultiSpacesUpperCase() {
assertEquals("MyDemoApplication", this.properties.generateApplicationName(" MY DEMO "));
}
@Test
public void generateApplicationNameNull() {
assertEquals(this.properties.getEnv().getFallbackApplicationName(), this.properties.generateApplicationName(null));
}
@Test
public void generateApplicationNameInvalidStartCharacter() {
assertEquals(this.properties.getEnv().getFallbackApplicationName(), this.properties.generateApplicationName("1MyDemo"));
}
@Test
public void generateApplicationNameInvalidPartCharacter() {
assertEquals(this.properties.getEnv().getFallbackApplicationName(), this.properties.generateApplicationName("MyDe|mo"));
}
@Test
public void generateApplicationNameInvalidApplicationName() {
assertEquals(this.properties.getEnv().getFallbackApplicationName(), this.properties.generateApplicationName("SpringBoot"));
}
@Test
public void generateApplicationNameAnotherInvalidApplicationName() {
assertEquals(this.properties.getEnv().getFallbackApplicationName(), this.properties.generateApplicationName("Spring"));
}
@Test
public void generatePackageNameSimple() {
assertEquals("com.foo", this.properties.cleanPackageName("com.foo", "com.example"));
}
@Test
public void generatePackageNameSimpleUnderscore() {
assertEquals("com.my_foo", this.properties.cleanPackageName("com.my_foo", "com.example"));
}
@Test
public void generatePackageNameSimpleColon() {
assertEquals("com.foo", this.properties.cleanPackageName("com:foo", "com.example"));
}
@Test
public void generatePackageNameMultipleDashers() {
assertEquals("com.foobar", this.properties.cleanPackageName("com.foo--bar", "com.example"));
}
@Test
public void generatePackageNameMultipleSpaces() {
assertEquals("com.foo", this.properties.cleanPackageName(" com foo ", "com.example"));
}
@Test
public void generatePackageNameNull() {
assertEquals("com.example", this.properties.cleanPackageName(null, "com.example"));
}
@Test
public void generatePackageNameInvalidStartCharacter() {
assertEquals("com.example", this.properties.cleanPackageName("0om.foo", "com.example"));
}
@Test
public void generatePackageNameInvalidPackageName() {
assertEquals("com.example", this.properties.cleanPackageName("org.springframework", "com.example"));
}
@Test
public void validateArtifactRepository() {
this.properties.getEnv().setArtifactRepository("http://foo/bar");
assertEquals("http://foo/bar/", this.properties.getEnv().getArtifactRepository());
}
}