01: // Copyright 2007 The Apache Software Foundation
02: //
03: // Licensed under the Apache License, Version 2.0 (the "License");
04: // you may not use this file except in compliance with the License.
05: // You may obtain a copy of the License at
06: //
07: // http://www.apache.org/licenses/LICENSE-2.0
08: //
09: // Unless required by applicable law or agreed to in writing, software
10: // distributed under the License is distributed on an "AS IS" BASIS,
11: // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12: // See the License for the specific language governing permissions and
13: // limitations under the License.
14:
15: package org.apache.tapestry.util;
16:
17: import junit.framework.AssertionFailedError;
18:
19: import org.apache.tapestry.Stooge;
20: import org.apache.tapestry.util.StringToEnumCoercion;
21: import org.testng.Assert;
22: import org.testng.annotations.Test;
23:
24: public class StringToEnumCoercionTest extends Assert {
25: @Test
26: public void value_found() {
27: StringToEnumCoercion<Stooge> coercion = new StringToEnumCoercion<Stooge>(
28: Stooge.class);
29:
30: assertSame(coercion.coerce("moe"), Stooge.MOE);
31: assertSame(coercion.coerce("curly_joe"), Stooge.CURLY_JOE);
32: }
33:
34: @Test
35: public void blank_is_null() {
36: StringToEnumCoercion<Stooge> coercion = new StringToEnumCoercion<Stooge>(
37: Stooge.class);
38:
39: assertNull(coercion.coerce(""));
40: }
41:
42: @Test
43: public void value_not_found() {
44: StringToEnumCoercion<Stooge> coercion = new StringToEnumCoercion<Stooge>(
45: Stooge.class);
46:
47: try {
48: coercion.coerce("shemp");
49: throw new AssertionFailedError("unreachable");
50: } catch (RuntimeException ex) {
51: assertEquals(
52: ex.getMessage(),
53: "Input \'shemp\' does not identify a value from enumerated type org.apache.tapestry.Stooge. Available values: CURLY_JOE, LARRY, MOE.");
54: }
55: }
56: }
|