1 /* 2 * Copyright (C) 2006 The Guava Authors 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.google.common.base; 18 19 import static com.google.common.base.CaseFormat.LOWER_CAMEL; 20 import static com.google.common.base.CaseFormat.LOWER_HYPHEN; 21 import static com.google.common.base.CaseFormat.LOWER_UNDERSCORE; 22 import static com.google.common.base.CaseFormat.UPPER_CAMEL; 23 import static com.google.common.base.CaseFormat.UPPER_UNDERSCORE; 24 25 import com.google.common.annotations.GwtCompatible; 26 import com.google.common.annotations.GwtIncompatible; 27 import com.google.common.annotations.J2ktIncompatible; 28 import com.google.common.testing.NullPointerTester; 29 import com.google.common.testing.SerializableTester; 30 import junit.framework.TestCase; 31 32 /** 33 * Unit test for {@link CaseFormat}. 34 * 35 * @author Mike Bostock 36 */ 37 @GwtCompatible(emulated = true) 38 public class CaseFormatTest extends TestCase { 39 testIdentity()40 public void testIdentity() { 41 for (CaseFormat from : CaseFormat.values()) { 42 assertSame(from + " to " + from, "foo", from.to(from, "foo")); 43 for (CaseFormat to : CaseFormat.values()) { 44 assertEquals(from + " to " + to, "", from.to(to, "")); 45 assertEquals(from + " to " + to, " ", from.to(to, " ")); 46 } 47 } 48 } 49 50 @J2ktIncompatible 51 @GwtIncompatible // NullPointerTester testNullArguments()52 public void testNullArguments() { 53 NullPointerTester tester = new NullPointerTester(); 54 tester.testAllPublicStaticMethods(CaseFormat.class); 55 for (CaseFormat format : CaseFormat.values()) { 56 tester.testAllPublicInstanceMethods(format); 57 } 58 } 59 testLowerHyphenToLowerHyphen()60 public void testLowerHyphenToLowerHyphen() { 61 assertEquals("foo", LOWER_HYPHEN.to(LOWER_HYPHEN, "foo")); 62 assertEquals("foo-bar", LOWER_HYPHEN.to(LOWER_HYPHEN, "foo-bar")); 63 } 64 testLowerHyphenToLowerUnderscore()65 public void testLowerHyphenToLowerUnderscore() { 66 assertEquals("foo", LOWER_HYPHEN.to(LOWER_UNDERSCORE, "foo")); 67 assertEquals("foo_bar", LOWER_HYPHEN.to(LOWER_UNDERSCORE, "foo-bar")); 68 } 69 testLowerHyphenToLowerCamel()70 public void testLowerHyphenToLowerCamel() { 71 assertEquals("foo", LOWER_HYPHEN.to(LOWER_CAMEL, "foo")); 72 assertEquals("fooBar", LOWER_HYPHEN.to(LOWER_CAMEL, "foo-bar")); 73 } 74 testLowerHyphenToUpperCamel()75 public void testLowerHyphenToUpperCamel() { 76 assertEquals("Foo", LOWER_HYPHEN.to(UPPER_CAMEL, "foo")); 77 assertEquals("FooBar", LOWER_HYPHEN.to(UPPER_CAMEL, "foo-bar")); 78 } 79 testLowerHyphenToUpperUnderscore()80 public void testLowerHyphenToUpperUnderscore() { 81 assertEquals("FOO", LOWER_HYPHEN.to(UPPER_UNDERSCORE, "foo")); 82 assertEquals("FOO_BAR", LOWER_HYPHEN.to(UPPER_UNDERSCORE, "foo-bar")); 83 } 84 testLowerUnderscoreToLowerHyphen()85 public void testLowerUnderscoreToLowerHyphen() { 86 assertEquals("foo", LOWER_UNDERSCORE.to(LOWER_HYPHEN, "foo")); 87 assertEquals("foo-bar", LOWER_UNDERSCORE.to(LOWER_HYPHEN, "foo_bar")); 88 } 89 testLowerUnderscoreToLowerUnderscore()90 public void testLowerUnderscoreToLowerUnderscore() { 91 assertEquals("foo", LOWER_UNDERSCORE.to(LOWER_UNDERSCORE, "foo")); 92 assertEquals("foo_bar", LOWER_UNDERSCORE.to(LOWER_UNDERSCORE, "foo_bar")); 93 } 94 testLowerUnderscoreToLowerCamel()95 public void testLowerUnderscoreToLowerCamel() { 96 assertEquals("foo", LOWER_UNDERSCORE.to(LOWER_CAMEL, "foo")); 97 assertEquals("fooBar", LOWER_UNDERSCORE.to(LOWER_CAMEL, "foo_bar")); 98 } 99 testLowerUnderscoreToUpperCamel()100 public void testLowerUnderscoreToUpperCamel() { 101 assertEquals("Foo", LOWER_UNDERSCORE.to(UPPER_CAMEL, "foo")); 102 assertEquals("FooBar", LOWER_UNDERSCORE.to(UPPER_CAMEL, "foo_bar")); 103 } 104 testLowerUnderscoreToUpperUnderscore()105 public void testLowerUnderscoreToUpperUnderscore() { 106 assertEquals("FOO", LOWER_UNDERSCORE.to(UPPER_UNDERSCORE, "foo")); 107 assertEquals("FOO_BAR", LOWER_UNDERSCORE.to(UPPER_UNDERSCORE, "foo_bar")); 108 } 109 testLowerCamelToLowerHyphen()110 public void testLowerCamelToLowerHyphen() { 111 assertEquals("foo", LOWER_CAMEL.to(LOWER_HYPHEN, "foo")); 112 assertEquals("foo-bar", LOWER_CAMEL.to(LOWER_HYPHEN, "fooBar")); 113 assertEquals("h-t-t-p", LOWER_CAMEL.to(LOWER_HYPHEN, "HTTP")); 114 } 115 testLowerCamelToLowerUnderscore()116 public void testLowerCamelToLowerUnderscore() { 117 assertEquals("foo", LOWER_CAMEL.to(LOWER_UNDERSCORE, "foo")); 118 assertEquals("foo_bar", LOWER_CAMEL.to(LOWER_UNDERSCORE, "fooBar")); 119 assertEquals("h_t_t_p", LOWER_CAMEL.to(LOWER_UNDERSCORE, "hTTP")); 120 } 121 testLowerCamelToLowerCamel()122 public void testLowerCamelToLowerCamel() { 123 assertEquals("foo", LOWER_CAMEL.to(LOWER_CAMEL, "foo")); 124 assertEquals("fooBar", LOWER_CAMEL.to(LOWER_CAMEL, "fooBar")); 125 } 126 testLowerCamelToUpperCamel()127 public void testLowerCamelToUpperCamel() { 128 assertEquals("Foo", LOWER_CAMEL.to(UPPER_CAMEL, "foo")); 129 assertEquals("FooBar", LOWER_CAMEL.to(UPPER_CAMEL, "fooBar")); 130 assertEquals("HTTP", LOWER_CAMEL.to(UPPER_CAMEL, "hTTP")); 131 } 132 testLowerCamelToUpperUnderscore()133 public void testLowerCamelToUpperUnderscore() { 134 assertEquals("FOO", LOWER_CAMEL.to(UPPER_UNDERSCORE, "foo")); 135 assertEquals("FOO_BAR", LOWER_CAMEL.to(UPPER_UNDERSCORE, "fooBar")); 136 } 137 testUpperCamelToLowerHyphen()138 public void testUpperCamelToLowerHyphen() { 139 assertEquals("foo", UPPER_CAMEL.to(LOWER_HYPHEN, "Foo")); 140 assertEquals("foo-bar", UPPER_CAMEL.to(LOWER_HYPHEN, "FooBar")); 141 } 142 testUpperCamelToLowerUnderscore()143 public void testUpperCamelToLowerUnderscore() { 144 assertEquals("foo", UPPER_CAMEL.to(LOWER_UNDERSCORE, "Foo")); 145 assertEquals("foo_bar", UPPER_CAMEL.to(LOWER_UNDERSCORE, "FooBar")); 146 } 147 testUpperCamelToLowerCamel()148 public void testUpperCamelToLowerCamel() { 149 assertEquals("foo", UPPER_CAMEL.to(LOWER_CAMEL, "Foo")); 150 assertEquals("fooBar", UPPER_CAMEL.to(LOWER_CAMEL, "FooBar")); 151 assertEquals("hTTP", UPPER_CAMEL.to(LOWER_CAMEL, "HTTP")); 152 } 153 testUpperCamelToUpperCamel()154 public void testUpperCamelToUpperCamel() { 155 assertEquals("Foo", UPPER_CAMEL.to(UPPER_CAMEL, "Foo")); 156 assertEquals("FooBar", UPPER_CAMEL.to(UPPER_CAMEL, "FooBar")); 157 } 158 testUpperCamelToUpperUnderscore()159 public void testUpperCamelToUpperUnderscore() { 160 assertEquals("FOO", UPPER_CAMEL.to(UPPER_UNDERSCORE, "Foo")); 161 assertEquals("FOO_BAR", UPPER_CAMEL.to(UPPER_UNDERSCORE, "FooBar")); 162 assertEquals("H_T_T_P", UPPER_CAMEL.to(UPPER_UNDERSCORE, "HTTP")); 163 assertEquals("H__T__T__P", UPPER_CAMEL.to(UPPER_UNDERSCORE, "H_T_T_P")); 164 } 165 testUpperUnderscoreToLowerHyphen()166 public void testUpperUnderscoreToLowerHyphen() { 167 assertEquals("foo", UPPER_UNDERSCORE.to(LOWER_HYPHEN, "FOO")); 168 assertEquals("foo-bar", UPPER_UNDERSCORE.to(LOWER_HYPHEN, "FOO_BAR")); 169 } 170 testUpperUnderscoreToLowerUnderscore()171 public void testUpperUnderscoreToLowerUnderscore() { 172 assertEquals("foo", UPPER_UNDERSCORE.to(LOWER_UNDERSCORE, "FOO")); 173 assertEquals("foo_bar", UPPER_UNDERSCORE.to(LOWER_UNDERSCORE, "FOO_BAR")); 174 } 175 testUpperUnderscoreToLowerCamel()176 public void testUpperUnderscoreToLowerCamel() { 177 assertEquals("foo", UPPER_UNDERSCORE.to(LOWER_CAMEL, "FOO")); 178 assertEquals("fooBar", UPPER_UNDERSCORE.to(LOWER_CAMEL, "FOO_BAR")); 179 } 180 testUpperUnderscoreToUpperCamel()181 public void testUpperUnderscoreToUpperCamel() { 182 assertEquals("Foo", UPPER_UNDERSCORE.to(UPPER_CAMEL, "FOO")); 183 assertEquals("FooBar", UPPER_UNDERSCORE.to(UPPER_CAMEL, "FOO_BAR")); 184 assertEquals("HTTP", UPPER_UNDERSCORE.to(UPPER_CAMEL, "H_T_T_P")); 185 } 186 testUpperUnderscoreToUpperUnderscore()187 public void testUpperUnderscoreToUpperUnderscore() { 188 assertEquals("FOO", UPPER_UNDERSCORE.to(UPPER_UNDERSCORE, "FOO")); 189 assertEquals("FOO_BAR", UPPER_UNDERSCORE.to(UPPER_UNDERSCORE, "FOO_BAR")); 190 } 191 testConverterToForward()192 public void testConverterToForward() { 193 assertEquals("FooBar", UPPER_UNDERSCORE.converterTo(UPPER_CAMEL).convert("FOO_BAR")); 194 assertEquals("fooBar", UPPER_UNDERSCORE.converterTo(LOWER_CAMEL).convert("FOO_BAR")); 195 assertEquals("FOO_BAR", UPPER_CAMEL.converterTo(UPPER_UNDERSCORE).convert("FooBar")); 196 assertEquals("FOO_BAR", LOWER_CAMEL.converterTo(UPPER_UNDERSCORE).convert("fooBar")); 197 } 198 testConverterToBackward()199 public void testConverterToBackward() { 200 assertEquals("FOO_BAR", UPPER_UNDERSCORE.converterTo(UPPER_CAMEL).reverse().convert("FooBar")); 201 assertEquals("FOO_BAR", UPPER_UNDERSCORE.converterTo(LOWER_CAMEL).reverse().convert("fooBar")); 202 assertEquals("FooBar", UPPER_CAMEL.converterTo(UPPER_UNDERSCORE).reverse().convert("FOO_BAR")); 203 assertEquals("fooBar", LOWER_CAMEL.converterTo(UPPER_UNDERSCORE).reverse().convert("FOO_BAR")); 204 } 205 testConverter_nullConversions()206 public void testConverter_nullConversions() { 207 for (CaseFormat outer : CaseFormat.values()) { 208 for (CaseFormat inner : CaseFormat.values()) { 209 assertNull(outer.converterTo(inner).convert(null)); 210 assertNull(outer.converterTo(inner).reverse().convert(null)); 211 } 212 } 213 } 214 testConverter_toString()215 public void testConverter_toString() { 216 assertEquals( 217 "LOWER_HYPHEN.converterTo(UPPER_CAMEL)", LOWER_HYPHEN.converterTo(UPPER_CAMEL).toString()); 218 } 219 testConverter_serialization()220 public void testConverter_serialization() { 221 for (CaseFormat outer : CaseFormat.values()) { 222 for (CaseFormat inner : CaseFormat.values()) { 223 SerializableTester.reserializeAndAssert(outer.converterTo(inner)); 224 } 225 } 226 } 227 } 228