package org.mypsycho.test.beans; import java.util.List; import java.util.Locale; import java.util.Map; import org.junit.Assert; import org.junit.Test; import org.mypsycho.beans.Injector; /** * Class for ... * <p>Details</p> * * @author nperansi * */ public class InjectorTest { public static class Bean { String prop1; String prop2; List<String> list; int[] array; int[][] array2; Map<String, Object> map; public String getProp1() { return prop1; } public void setProp1(String prop1) { this.prop1 = prop1; } public String getProp2() { return prop2; } public void setProp2(String prop2) { this.prop2 = prop2; } public int[] getArray() { return array; } public void setArray(int[] array) { this.array = array; } public int[][] getArray2() { return array2; } public void setArray2(int[][] array2) { this.array2 = array2; } public Map<String, Object> getMap() { return map; } public void setMap(Map<String, Object> map) { this.map = map; } public List<String> getList() { return list; } public void setList(List<String> list) { this.list = list; } } public static class BeanB extends Bean {} @SuppressWarnings("unchecked") @Test public void testBase() throws Exception { Injector injector = new Injector() { @Override protected void notify(Object event, String detail, Throwable t) { throw new RuntimeException(event + ":" + detail, t); } }; injector.setLocale(Locale.ENGLISH); Bean bean = injector.inject(new Bean()); Assert.assertEquals("val1", bean.getProp1()); Assert.assertEquals("val2", bean.getProp2()); Assert.assertArrayEquals(new int[] { 100, 0, 102 }, bean.getArray()); Assert.assertEquals(1, bean.getArray2().length); Assert.assertArrayEquals(new int[] { 10 }, bean.getArray2()[0]); Assert.assertEquals("m1", bean.getMap().get("key1")); Assert.assertEquals("b", ((Map<String, ?>) bean.getMap().get("key4")).get("b")); Assert.assertEquals("value", bean.getList().get(1)); } @SuppressWarnings("unchecked") @Test public void testInheritance() throws Exception { Injector injector = new Injector() { @Override protected void notify(Object event, String detail, Throwable t) { throw new RuntimeException(event + ":" + detail, t); } }; injector.setLocale(Locale.ENGLISH); Bean bean = injector.inject(new BeanB()); Assert.assertEquals("new1", bean.getProp1()); Assert.assertEquals("val2", bean.getProp2()); Assert.assertArrayEquals(new int[] { 100, 0, 102 }, bean.getArray()); Assert.assertEquals(1, bean.getArray2().length); Assert.assertArrayEquals(new int[] { 10 }, bean.getArray2()[0]); Assert.assertEquals("m1", bean.getMap().get("key1")); Assert.assertEquals("b", ((Map<String, ?>) bean.getMap().get("key4")).get("b")); Assert.assertEquals("new1", bean.getList().get(1)); } }