001 /*
002 * Copyright 2002-2006 the original author or authors.
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
005 * use this file except in compliance with the License. You may obtain a copy of
006 * the License at
007 *
008 * http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
012 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
013 * License for the specific language governing permissions and limitations under
014 * the License.
015 */
016 package org.springframework.binding.form.support;
017
018 import java.util.Arrays;
019
020 import junit.framework.TestCase;
021
022 import org.springframework.util.ObjectUtils;
023
024 /**
025 * @author Mathias Broekelmann
026 *
027 */
028 public class DefaultMessageCodeStrategyTests extends TestCase {
029
030 private DefaultMessageCodeStrategy strategy;
031
032 protected void setUp() throws Exception {
033 strategy = new DefaultMessageCodeStrategy();
034 }
035
036 protected void tearDown() throws Exception {
037 strategy = null;
038 }
039
040 public final void testGetMessageCodesEmptyArgs() {
041 String[] emptyValues = new String[0];
042 assertEquals(emptyValues, strategy.getMessageCodes(null, null, null));
043 assertEquals(emptyValues, strategy.getMessageCodes(null, "", null));
044 assertEquals(emptyValues, strategy.getMessageCodes("", "", null));
045 assertEquals(emptyValues, strategy.getMessageCodes("", "", emptyValues));
046 assertEquals(emptyValues, strategy.getMessageCodes("", "", new String[] { "" }));
047 assertEquals(emptyValues, strategy.getMessageCodes("", "", new String[] { "", "" }));
048 }
049
050 public final void testGetMessageCodesNullContextNullSuffixes() {
051 assertEquals(new String[] { "simpleField" }, strategy.getMessageCodes(null, "simpleField", null));
052 assertEquals(new String[] { "fieldbase.simpleField", "simpleField" }, strategy.getMessageCodes(null,
053 "fieldbase.simpleField", null));
054 }
055
056 public final void testGetMessageCodesWithContext() {
057 assertEquals(new String[] { "context.fieldbase.simpleField", "context.simpleField", "fieldbase.simpleField",
058 "simpleField" }, strategy.getMessageCodes("context", "fieldbase.simpleField", null));
059 }
060
061 public final void testGetMessageCodesWithSuffix() {
062 assertEquals(new String[] { "simpleField.suffix" }, strategy.getMessageCodes(null, "simpleField",
063 new String[] { "suffix" }));
064 assertEquals(new String[] { "simpleField.suffix1", "simpleField" }, strategy.getMessageCodes(null,
065 "simpleField", new String[] { "suffix1", "" }));
066 assertEquals(new String[] { "simpleField.suffix1", "simpleField.suffix2" }, strategy.getMessageCodes(null,
067 "simpleField", new String[] { "suffix1", "suffix2" }));
068 }
069
070 public final void testGetMessageCodesWithContextAndSuffix() {
071 assertEquals(new String[] { "context.fieldbase.simpleField.suffix", "context.simpleField.suffix",
072 "fieldbase.simpleField.suffix", "simpleField.suffix" }, strategy.getMessageCodes("context",
073 "fieldbase.simpleField", new String[] { "suffix" }));
074 }
075
076 protected void assertEquals(Object[] expected, Object[] actual) {
077 if (!Arrays.equals(expected, actual)) {
078 fail(buildMessage(expected, actual));
079 }
080 }
081
082 private String buildMessage(Object[] expected, Object[] actual) {
083 return "expected " + ObjectUtils.nullSafeToString(expected) + ", got " + ObjectUtils.nullSafeToString(actual);
084 }
085
086 protected void assertEquals(String message, Object[] expected, Object[] actual) {
087 if (!Arrays.equals(expected, actual)) {
088 fail(message);
089 }
090 }
091 }