/** * 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 * <p> * http://www.apache.org/licenses/LICENSE-2.0 * <p> * 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.fabric8.kubernetes.api; import org.junit.Test; import static org.junit.Assert.assertEquals; /** */ public class SafeKubernetesNameTest { @Test public void testSafeNamesWithDots() throws Exception { assertSafeKubernetesName("Foo.Bar", "foo.bar", true); assertSafeKubernetesName("Foo-Bar", "foo-bar", true); assertSafeKubernetesName("-Foo-Bar", "foo-bar", true); assertSafeKubernetesName(".-Foo-Bar", "foo-bar", true); assertSafeKubernetesName("foo-bar/whatnot", "foo-bar.whatnot", true); assertSafeKubernetesName("foo-bar123/whatnot1234", "foo-bar123.whatnot1234", true); assertSafeKubernetesName("foo-bar//whatnot", "foo-bar.whatnot", true); assertSafeKubernetesName("foo-bar/whatnot_", "foo-bar.whatnot", true); assertSafeKubernetesName("_*foo-bar/*wh!atnot)", "foo-bar.wh-atnot", true); } @Test public void testSafeNamesWithoutDots() throws Exception { assertSafeKubernetesName("Foo.Bar", "foo-bar", false); assertSafeKubernetesName("Foo-Bar", "foo-bar", false); assertSafeKubernetesName("-Foo-Bar", "foo-bar", false); assertSafeKubernetesName(".-Foo-Bar", "foo-bar", false); assertSafeKubernetesName("foo-bar/whatnot", "foo-bar-whatnot", false); assertSafeKubernetesName("foo-bar123/whatnot1234", "foo-bar123-whatnot1234", false); assertSafeKubernetesName("foo-bar//whatnot", "foo-bar-whatnot", false); assertSafeKubernetesName("foo-bar/whatnot_", "foo-bar-whatnot", false); assertSafeKubernetesName("_*foo-bar/*wh!atnot)", "foo-bar-wh-atnot", false); } public static void assertSafeKubernetesName(String text, String expected, boolean allowDots) { String actual = KubernetesNames.convertToKubernetesName(text, allowDots); //System.out.println("Converted `" + text + "` => `" + actual + "`"); assertEquals("Safe name for `" + text + "`", expected, actual); } }