• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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