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 17package com.google.common.base; 18 19import static com.google.common.base.CaseFormat.LOWER_CAMEL; 20import static com.google.common.base.CaseFormat.LOWER_HYPHEN; 21import static com.google.common.base.CaseFormat.LOWER_UNDERSCORE; 22import static com.google.common.base.CaseFormat.UPPER_CAMEL; 23import static com.google.common.base.CaseFormat.UPPER_UNDERSCORE; 24 25import com.google.common.annotations.GwtCompatible; 26 27import junit.framework.TestCase; 28 29/** 30 * Unit test for {@link CaseFormat}. 31 * 32 * @author Mike Bostock 33 */ 34@GwtCompatible 35public class CaseFormatTest extends TestCase { 36 37 public void testIdentity() { 38 for (CaseFormat from : CaseFormat.values()) { 39 assertSame(from + " to " + from, "foo", from.to(from, "foo")); 40 for (CaseFormat to : CaseFormat.values()) { 41 assertEquals(from + " to " + to, "", from.to(to, "")); 42 assertEquals(from + " to " + to, " ", from.to(to, " ")); 43 } 44 } 45 } 46 47 public void testNullPointer() { 48 try { 49 LOWER_CAMEL.to(null, ""); 50 fail(); 51 } catch (NullPointerException expected) {} 52 try { 53 LOWER_CAMEL.to(LOWER_HYPHEN, null); 54 fail(); 55 } catch (NullPointerException expected) {} 56 } 57 58 public void testLowerHyphenToLowerHyphen() { 59 assertEquals("foo", LOWER_HYPHEN.to(LOWER_HYPHEN, "foo")); 60 assertEquals("foo-bar", LOWER_HYPHEN.to(LOWER_HYPHEN, "foo-bar")); 61 } 62 63 public void testLowerHyphenToLowerUnderscore() { 64 assertEquals("foo", LOWER_HYPHEN.to(LOWER_UNDERSCORE, "foo")); 65 assertEquals("foo_bar", LOWER_HYPHEN.to(LOWER_UNDERSCORE, "foo-bar")); 66 } 67 68 public void testLowerHyphenToLowerCamel() { 69 assertEquals("foo", LOWER_HYPHEN.to(LOWER_CAMEL, "foo")); 70 assertEquals("fooBar", LOWER_HYPHEN.to(LOWER_CAMEL, "foo-bar")); 71 } 72 73 public void testLowerHyphenToUpperCamel() { 74 assertEquals("Foo", LOWER_HYPHEN.to(UPPER_CAMEL, "foo")); 75 assertEquals("FooBar", LOWER_HYPHEN.to(UPPER_CAMEL, "foo-bar")); 76 } 77 78 public void testLowerHyphenToUpperUnderscore() { 79 assertEquals("FOO", LOWER_HYPHEN.to(UPPER_UNDERSCORE, "foo")); 80 assertEquals("FOO_BAR", LOWER_HYPHEN.to(UPPER_UNDERSCORE, "foo-bar")); 81 } 82 83 public void testLowerUnderscoreToLowerHyphen() { 84 assertEquals("foo", LOWER_UNDERSCORE.to(LOWER_HYPHEN, "foo")); 85 assertEquals("foo-bar", LOWER_UNDERSCORE.to(LOWER_HYPHEN, "foo_bar")); 86 } 87 88 public void testLowerUnderscoreToLowerUnderscore() { 89 assertEquals("foo", LOWER_UNDERSCORE.to(LOWER_UNDERSCORE, "foo")); 90 assertEquals("foo_bar", LOWER_UNDERSCORE.to(LOWER_UNDERSCORE, "foo_bar")); 91 } 92 93 public void testLowerUnderscoreToLowerCamel() { 94 assertEquals("foo", LOWER_UNDERSCORE.to(LOWER_CAMEL, "foo")); 95 assertEquals("fooBar", LOWER_UNDERSCORE.to(LOWER_CAMEL, "foo_bar")); 96 } 97 98 public void testLowerUnderscoreToUpperCamel() { 99 assertEquals("Foo", LOWER_UNDERSCORE.to(UPPER_CAMEL, "foo")); 100 assertEquals("FooBar", LOWER_UNDERSCORE.to(UPPER_CAMEL, "foo_bar")); 101 } 102 103 public void testLowerUnderscoreToUpperUnderscore() { 104 assertEquals("FOO", LOWER_UNDERSCORE.to(UPPER_UNDERSCORE, "foo")); 105 assertEquals("FOO_BAR", LOWER_UNDERSCORE.to(UPPER_UNDERSCORE, "foo_bar")); 106 } 107 108 public void testLowerCamelToLowerHyphen() { 109 assertEquals("foo", LOWER_CAMEL.to(LOWER_HYPHEN, "foo")); 110 assertEquals("foo-bar", LOWER_CAMEL.to(LOWER_HYPHEN, "fooBar")); 111 assertEquals("h-t-t-p", LOWER_CAMEL.to(LOWER_HYPHEN, "HTTP")); 112 } 113 114 public void testLowerCamelToLowerUnderscore() { 115 assertEquals("foo", LOWER_CAMEL.to(LOWER_UNDERSCORE, "foo")); 116 assertEquals("foo_bar", LOWER_CAMEL.to(LOWER_UNDERSCORE, "fooBar")); 117 assertEquals("h_t_t_p", LOWER_CAMEL.to(LOWER_UNDERSCORE, "hTTP")); 118 } 119 120 public void testLowerCamelToLowerCamel() { 121 assertEquals("foo", LOWER_CAMEL.to(LOWER_CAMEL, "foo")); 122 assertEquals("fooBar", LOWER_CAMEL.to(LOWER_CAMEL, "fooBar")); 123 } 124 125 public void testLowerCamelToUpperCamel() { 126 assertEquals("Foo", LOWER_CAMEL.to(UPPER_CAMEL, "foo")); 127 assertEquals("FooBar", LOWER_CAMEL.to(UPPER_CAMEL, "fooBar")); 128 assertEquals("HTTP", LOWER_CAMEL.to(UPPER_CAMEL, "hTTP")); 129 } 130 131 public void testLowerCamelToUpperUnderscore() { 132 assertEquals("FOO", LOWER_CAMEL.to(UPPER_UNDERSCORE, "foo")); 133 assertEquals("FOO_BAR", LOWER_CAMEL.to(UPPER_UNDERSCORE, "fooBar")); 134 } 135 136 public void testUpperCamelToLowerHyphen() { 137 assertEquals("foo", UPPER_CAMEL.to(LOWER_HYPHEN, "Foo")); 138 assertEquals("foo-bar", UPPER_CAMEL.to(LOWER_HYPHEN, "FooBar")); 139 } 140 141 public void testUpperCamelToLowerUnderscore() { 142 assertEquals("foo", UPPER_CAMEL.to(LOWER_UNDERSCORE, "Foo")); 143 assertEquals("foo_bar", UPPER_CAMEL.to(LOWER_UNDERSCORE, "FooBar")); 144 } 145 146 public void testUpperCamelToLowerCamel() { 147 assertEquals("foo", UPPER_CAMEL.to(LOWER_CAMEL, "Foo")); 148 assertEquals("fooBar", UPPER_CAMEL.to(LOWER_CAMEL, "FooBar")); 149 assertEquals("hTTP", UPPER_CAMEL.to(LOWER_CAMEL, "HTTP")); 150 } 151 152 public void testUpperCamelToUpperCamel() { 153 assertEquals("Foo", UPPER_CAMEL.to(UPPER_CAMEL, "Foo")); 154 assertEquals("FooBar", UPPER_CAMEL.to(UPPER_CAMEL, "FooBar")); 155 } 156 157 public void testUpperCamelToUpperUnderscore() { 158 assertEquals("FOO", UPPER_CAMEL.to(UPPER_UNDERSCORE, "Foo")); 159 assertEquals("FOO_BAR", UPPER_CAMEL.to(UPPER_UNDERSCORE, "FooBar")); 160 assertEquals("H_T_T_P", UPPER_CAMEL.to(UPPER_UNDERSCORE, "HTTP")); 161 assertEquals("H__T__T__P", UPPER_CAMEL.to(UPPER_UNDERSCORE, "H_T_T_P")); 162 } 163 164 public void testUpperUnderscoreToLowerHyphen() { 165 assertEquals("foo", UPPER_UNDERSCORE.to(LOWER_HYPHEN, "FOO")); 166 assertEquals("foo-bar", UPPER_UNDERSCORE.to(LOWER_HYPHEN, "FOO_BAR")); 167 } 168 169 public void testUpperUnderscoreToLowerUnderscore() { 170 assertEquals("foo", UPPER_UNDERSCORE.to(LOWER_UNDERSCORE, "FOO")); 171 assertEquals("foo_bar", UPPER_UNDERSCORE.to(LOWER_UNDERSCORE, "FOO_BAR")); 172 } 173 174 public void testUpperUnderscoreToLowerCamel() { 175 assertEquals("foo", UPPER_UNDERSCORE.to(LOWER_CAMEL, "FOO")); 176 assertEquals("fooBar", UPPER_UNDERSCORE.to(LOWER_CAMEL, "FOO_BAR")); 177 } 178 179 public void testUpperUnderscoreToUpperCamel() { 180 assertEquals("Foo", UPPER_UNDERSCORE.to(UPPER_CAMEL, "FOO")); 181 assertEquals("FooBar", UPPER_UNDERSCORE.to(UPPER_CAMEL, "FOO_BAR")); 182 assertEquals("HTTP", UPPER_UNDERSCORE.to(UPPER_CAMEL, "H_T_T_P")); 183 } 184 185 public void testUpperUnderscoreToUpperUnderscore() { 186 assertEquals("FOO", UPPER_UNDERSCORE.to(UPPER_UNDERSCORE, "FOO")); 187 assertEquals("FOO_BAR", UPPER_UNDERSCORE.to(UPPER_UNDERSCORE, "FOO_BAR")); 188 } 189} 190