| /* |
| * 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. |
| */ |
| |
| // |
| // Log4j uses the JUnit framework for internal unit testing. JUnit |
| // available from |
| // |
| // http://www.junit.org |
| |
| |
| package org.apache.log4j.or; |
| |
| |
| |
| import junit.framework.TestCase; |
| import junit.framework.TestSuite; |
| import junit.framework.Test; |
| |
| import java.io.Serializable; |
| |
| |
| /** |
| Unit test the {@link ObjectRenderer}. |
| @author Ceki Gülcü |
| @since 1.0 */ |
| public class ORTestCase extends TestCase { |
| |
| static UTObjectRenderer aor; |
| static UTObjectRenderer bor; |
| static UTObjectRenderer xor; |
| static UTObjectRenderer yor; |
| |
| static UTObjectRenderer oor; |
| static UTObjectRenderer nor; |
| static UTObjectRenderer ior; |
| static UTObjectRenderer cor; |
| static UTObjectRenderer sor; |
| |
| |
| |
| public ORTestCase(String name) { |
| super(name); |
| } |
| |
| |
| public |
| void setUp() { |
| aor = new UTObjectRenderer("A"); |
| bor = new UTObjectRenderer("B"); |
| xor = new UTObjectRenderer("X"); |
| yor = new UTObjectRenderer("Y"); |
| |
| oor = new UTObjectRenderer("Object"); |
| nor = new UTObjectRenderer("Number"); |
| ior = new UTObjectRenderer("Integer"); |
| cor = new UTObjectRenderer("Comparable"); |
| sor = new UTObjectRenderer("Serializable"); |
| } |
| |
| // Add: no renderer |
| // Expect: defaultRenderer |
| public |
| void test1() { |
| RendererMap map = new RendererMap(); |
| ObjectRenderer dr = map.getDefaultRenderer(); |
| ObjectRenderer r = map.get(Integer.class); |
| assertEquals(r, dr); |
| } |
| |
| // Add: Integer renderer |
| // Expect: Integer renderer |
| public |
| void test2() { |
| RendererMap map = new RendererMap(); |
| map.put(Integer.class, ior); |
| ObjectRenderer r = map.get(Integer.class); |
| assertEquals(r, ior); |
| |
| } |
| |
| // Add: Number renderer |
| // Expect: Number |
| public |
| void test3() { |
| RendererMap map = new RendererMap(); |
| map.put(Number.class, ior); |
| ObjectRenderer r = map.get(Integer.class); |
| assertEquals(r, ior); |
| } |
| |
| // Add: Object renderer |
| // Result: Object |
| public |
| void test4() { |
| RendererMap map = new RendererMap(); |
| map.put(Object.class, oor); |
| ObjectRenderer r = map.get(Integer.class); |
| assertEquals(r, oor); |
| } |
| |
| // Add: Object, Number, Integer |
| // Expect: Integer |
| public |
| void test5() { |
| RendererMap map = new RendererMap(); |
| |
| map.put(Object.class, oor); |
| map.put(Number.class, nor); |
| map.put(Integer.class, ior); |
| |
| ObjectRenderer r = map.get(Integer.class); |
| assertEquals(r, ior); |
| } |
| |
| // Add: Object, Number |
| // Expect: Number |
| public |
| void test6() { |
| RendererMap map = new RendererMap(); |
| |
| map.put(Object.class, oor); |
| map.put(Number.class, nor); |
| |
| ObjectRenderer r = map.get(Integer.class); |
| assertEquals(r, nor); |
| } |
| |
| // Add: Comparable |
| // Expect: Comparable |
| public |
| void test7() throws Exception { |
| RendererMap map = new RendererMap(); |
| Class comparable = null; |
| try { |
| comparable = Class.forName("java.lang.Comparable"); |
| } catch(Exception ex) { |
| // likely JDK 1.1 |
| return; |
| } |
| map.put(comparable, cor); |
| ObjectRenderer r = map.get(Integer.class); |
| assertEquals(r, cor); |
| } |
| |
| |
| // Add: Serializable |
| // Expect: Serializablee |
| public |
| void test8() { |
| RendererMap map = new RendererMap(); |
| map.put(Serializable.class, sor); |
| ObjectRenderer r = map.get(Integer.class); |
| assertEquals(r, sor); |
| } |
| |
| // Add: Y |
| // Expect: Y |
| public |
| void test9() { |
| RendererMap map = new RendererMap(); |
| map.put(Y.class, yor); |
| ObjectRenderer r = map.get(B.class); |
| assertEquals(r, yor); |
| } |
| |
| // Add: X |
| // Expect: X |
| public |
| void test10() { |
| RendererMap map = new RendererMap(); |
| map.put(X.class, xor); |
| ObjectRenderer r = map.get(B.class); |
| assertEquals(r, xor); |
| } |
| |
| |
| |
| |
| public |
| static |
| Test suite() { |
| TestSuite suite = new TestSuite(); |
| suite.addTest(new ORTestCase("test1")); |
| suite.addTest(new ORTestCase("test2")); |
| suite.addTest(new ORTestCase("test3")); |
| suite.addTest(new ORTestCase("test4")); |
| suite.addTest(new ORTestCase("test5")); |
| suite.addTest(new ORTestCase("test6")); |
| suite.addTest(new ORTestCase("test7")); |
| suite.addTest(new ORTestCase("test8")); |
| suite.addTest(new ORTestCase("test9")); |
| suite.addTest(new ORTestCase("test10")); |
| return suite; |
| } |
| |
| |
| |
| } |
| |
| class UTObjectRenderer implements ObjectRenderer { |
| |
| String name; |
| |
| UTObjectRenderer(String name) { |
| this.name = name; |
| } |
| |
| public |
| String doRender(Object o) { |
| return name; |
| } |
| |
| public |
| String toString() { |
| return("UTObjectRenderer: "+name); |
| } |
| } |
| |
| |
| interface X { |
| } |
| |
| interface Y extends X { |
| } |
| |
| |
| class A implements Y { |
| } |
| |
| class B extends A { |
| } |