@Verifier public Messages verifyUnit(Unit unit, WhenVerifier when) { Messages ret = new Messages(); if (unit.getName().equals("verify3")) { ret.add("unit.name", new Message("errors.duplicate", "3")); } return ret; }
@Verifier(when = {WhenVerifier.INSERT}) public Messages verifyUnit(Unit unit, CallbackEventType eventType, WhenVerifier when) { Messages ret = new Messages(); if (unit.getName().equals("verify4")) { ret.add("unit.name", new Message("errors.duplicate", "4")); } return ret; }
@Verifier public Messages verifyUnit(Unit unit, CallbackEventType eventType) { Messages ret = new Messages(); if (unit.getName().equals("verify2")) { ret.add("unit.name", new Message("errors.duplicate", "2")); } return ret; }
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); } }