public void testEventCallback() throws Exception { List<Object> list2 = new ArrayList<Object>(); list2.add(new CallbackListener()); DIContainer real = DIContainerFactory.getDIContainer(); Map<Object, Object> map = new HashMap<Object, Object>(); map.put(BasicService.PERSISTENCE_EVENT_LISTENERS, list2); MapDIContainer wrapper = new MapDIContainer(map); DIContainerFactory.setDIContainer( new CompositeDIContainer(Arrays.asList(new DIContainer[] {wrapper, real}))); System.out.println(DIContainerFactory.getDIContainer().getClass().getName()); try { Extractor e = new Extractor(Unit.class); e.addExtractValue(new ExtractValue("id", new Property(Unit.ID))); e.add(Condition.eq(new Property(Unit.ID), 1)); e.setReturnType(CallbackTestType.class); System.out.println(DIContainerFactory.getDIContainer().getClass().getName()); List<CallbackTestType> list = BasicService.getService().findByExtractor(e); System.out.println(DIContainerFactory.getDIContainer().getClass().getName()); assertEquals("返却値が数が誤っています。", 1, list.size()); assertEquals("コールバックメソッド呼び出し回数が誤っています。", 6, list.get(0).list.size()); int index = 0; assertEquals( "コールバックメソッド呼び出し順序が誤っています.", "CallbackListener#postLoad5", list.get(0).list.get(index++)); assertEquals("コールバックメソッド呼び出し順序が誤っています.", "postLoad3", list.get(0).list.get(index++)); assertEquals( "コールバックメソッド呼び出し順序が誤っています.", "CallbackListener#apostLoad3", list.get(0).list.get(index++)); assertEquals( "コールバックメソッド呼び出し順序が誤っています.", "CallbackListener#postLoad3", list.get(0).list.get(index++)); assertEquals("コールバックメソッド呼び出し順序が誤っています.", "postLoad1", list.get(0).list.get(index++)); assertEquals( "コールバックメソッド呼び出し順序が誤っています.", "CallbackListener#postLoad1", list.get(0).list.get(index++)); } finally { DIContainerFactory.setDIContainer(real); } }
public void testVerifierCallback() throws Exception { List<Object> list2 = new ArrayList<Object>(); list2.add(new VerifierCallbackListener()); DIContainer real = DIContainerFactory.getDIContainer(); Map<Object, Object> map = new HashMap<Object, Object>(); map.put(BasicService.PERSISTENCE_EVENT_LISTENERS, list2); MapDIContainer wrapper = new MapDIContainer(map); DIContainerFactory.setDIContainer( new CompositeDIContainer(Arrays.asList(new DIContainer[] {wrapper, real}))); System.out.println(DIContainerFactory.getDIContainer().getClass().getName()); try { SortedSet<CallbackEventListener> listeners = BasicService.getService().getEventListener(Unit.class, CallbackEventType.VERIFIER); assertEquals("返却数が誤っています。", 5, listeners.size()); Unit u = BasicService.getService().findByPK(Unit.class, 1L); Messages msgs = u.validateObject(); assertFalse("エラーが発生しています。", msgs.hasError()); u.setName("verify"); msgs = u.validateObject(); System.out.println(msgs); assertFalse("エラーが発生しています。", msgs.hasError()); u.setName("verify1"); msgs = u.validateObject(); System.out.println(msgs); assertTrue("エラーが発生していません。", msgs.hasError()); u.setName("verify2"); msgs = u.validateObject(); System.out.println(msgs); assertTrue("エラーが発生していません。", msgs.hasError()); u.setName("verify3"); msgs = u.validateObject(); System.out.println(msgs); assertTrue("エラーが発生していません。", msgs.hasError()); u.setName("verify4"); msgs = u.validateObject(); System.out.println(msgs); assertFalse("エラーが発生しています。", msgs.hasError()); msgs = BasicService.getService().validate(u, WhenVerifier.INSERT); System.out.println(msgs); assertTrue("エラーが発生していません。", msgs.hasError()); u.setName("verify5"); msgs = u.validateObject(); System.out.println(msgs); assertFalse("エラーが発生していませす。", msgs.hasError()); } finally { DIContainerFactory.setDIContainer(real); } }