simplified conversion service

mvc view postback
This commit is contained in:
Keith Donald
2008-03-20 05:55:43 +00:00
parent 636e0cf0ca
commit 0f333805d9
19 changed files with 426 additions and 795 deletions

View File

@@ -1,82 +0,0 @@
/*
* Copyright 2004-2007 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.springframework.binding.convert.support;
import java.util.Date;
import junit.framework.TestCase;
import org.springframework.binding.convert.ConversionException;
import org.springframework.binding.convert.ConversionExecutor;
import org.springframework.binding.convert.ConversionService;
/**
* Test case for the {@link CompositeConversionService}.
*
* @author Erwin Vervaet
*/
public class CompositeConversionServiceTests extends TestCase {
private CompositeConversionService service;
protected void setUp() throws Exception {
GenericConversionService first = new GenericConversionService();
first.addConverter(new TextToClass());
first.addConverter(new TextToBoolean("ja", "nee"));
first.addDefaultAlias(Boolean.class);
GenericConversionService second = new GenericConversionService();
second.addConverter(new TextToBoolean());
second.addDefaultAlias(Integer.class);
service = new CompositeConversionService(new ConversionService[] { first, second });
}
public void testGetConversionExecutor() {
assertNotNull(service.getConversionExecutor(String.class, Class.class));
assertNotNull(service.getConversionExecutor(String.class, Boolean.class));
assertEquals(Boolean.TRUE, service.getConversionExecutor(String.class, Boolean.class).execute("ja"));
try {
service.getConversionExecutor(String.class, Date.class);
fail();
} catch (ConversionException e) {
// expected
}
}
public void testGetConversionExecutorByTargetAlias() {
assertNotNull(service.getConversionExecutorByTargetAlias(String.class, "boolean"));
assertEquals(Boolean.TRUE, service.getConversionExecutorByTargetAlias(String.class, "boolean").execute("ja"));
assertNull(service.getConversionExecutorByTargetAlias(String.class, "class"));
}
public void testGetConversionExecutorsForSource() {
assertEquals(new TextToClass().getTargetClasses().length + new TextToBoolean().getTargetClasses().length,
service.getConversionExecutorsForSource(String.class).length);
assertEquals(0, service.getConversionExecutorsForSource(Date.class).length);
ConversionExecutor[] fromStringConversionExecutors = service.getConversionExecutorsForSource(String.class);
ConversionExecutorImpl booleanConversionExecutor = null;
for (int i = 0; i < fromStringConversionExecutors.length; i++) {
if (((ConversionExecutorImpl) fromStringConversionExecutors[i]).getConverter() instanceof TextToBoolean) {
booleanConversionExecutor = (ConversionExecutorImpl) fromStringConversionExecutors[i];
}
}
assertEquals(Boolean.TRUE, booleanConversionExecutor.execute("ja"));
}
public void testGetClassByAlias() {
assertEquals(Boolean.class, service.getClassByAlias("boolean"));
assertNull(service.getClassByAlias("class"));
}
}

View File

@@ -34,11 +34,9 @@ public class DefaultConversionServiceTests extends TestCase {
public void testConvertCompatibleTypes() {
DefaultConversionService service = new DefaultConversionService();
service.addAlias("list", List.class);
List lst = new ArrayList();
assertSame(lst, service.getConversionExecutor(ArrayList.class, List.class).execute(lst));
assertSame(lst, service.getConversionExecutorByTargetAlias(ArrayList.class, "list").execute(lst));
try {
service.getConversionExecutor(List.class, ArrayList.class);