blob: 6e4b059161592e9fd041c86cfdc272a51472248b [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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.apache.logging.log4j.plugins.convert;
import org.junit.Test;
import static org.hamcrest.Matchers.instanceOf;
import static org.junit.Assert.*;
public class TypeConverterRegistryTest {
@Test(expected = NullPointerException.class)
public void testFindNullConverter() throws Exception {
TypeConverterRegistry.getInstance().findCompatibleConverter(null);
}
@Test
public void testFindBooleanConverter() throws Exception {
final TypeConverter<?> converter = TypeConverterRegistry.getInstance().findCompatibleConverter(Boolean.class);
assertNotNull(converter);
assertTrue((Boolean) converter.convert("TRUE"));
}
@Test
public void testFindPrimitiveBooleanConverter() throws Exception {
final TypeConverter<?> converter = TypeConverterRegistry.getInstance().findCompatibleConverter(Boolean.TYPE);
assertNotNull(converter);
assertTrue((Boolean) converter.convert("tRUe"));
}
@SuppressWarnings("unchecked")
@Test
public void testFindCharSequenceConverterUsingStringConverter() throws Exception {
final TypeConverter<CharSequence> converter = (TypeConverter<CharSequence>)
TypeConverterRegistry.getInstance().findCompatibleConverter(CharSequence.class);
assertNotNull(converter);
assertThat(converter, instanceOf(TypeConverters.StringConverter.class));
final CharSequence expected = "This is a test sequence of characters";
final CharSequence actual = converter.convert(expected.toString());
assertEquals(expected, actual);
}
@SuppressWarnings("unchecked")
@Test
public void testFindNumberConverter() throws Exception {
final TypeConverter<Number> numberTypeConverter = (TypeConverter<Number>)
TypeConverterRegistry.getInstance().findCompatibleConverter(Number.class);
assertNotNull(numberTypeConverter);
// TODO: is there a specific converter this should return?
}
public enum Foo {
I, PITY, THE
}
@SuppressWarnings("unchecked")
@Test
public void testFindEnumConverter() throws Exception {
final TypeConverter<Foo> fooTypeConverter = (TypeConverter<Foo>)
TypeConverterRegistry.getInstance().findCompatibleConverter(Foo.class);
assertNotNull(fooTypeConverter);
assertEquals(Foo.I, fooTypeConverter.convert("i"));
assertEquals(Foo.PITY, fooTypeConverter.convert("pity"));
assertEquals(Foo.THE, fooTypeConverter.convert("THE"));
}
}