// @Test public void testSingleInterceptorFail() throws Exception { CountingPhaseInterceptor p = new CountingPhaseInterceptor("phase1", "p1"); setUpPhaseInterceptorInvocations(p, true, true); control.replay(); chain.add(p); chain.doIntercept(message); }
@Test public void testAddOne() throws Exception { CountingPhaseInterceptor interceptor = new CountingPhaseInterceptor("phase1", "id1"); control.replay(); System.out.println(interceptor.getId()); chain.add(interceptor); Iterator<Interceptor<? extends Message>> it = chain.iterator(); Interceptor<? extends Message> next = it.next(); assertSame(interceptor, next); assertTrue(!it.hasNext()); }
/** 测试在同一个阶段的先后顺序 */ @Test public void testAddTwoAtSamePhase() throws Exception { CountingPhaseInterceptor p1 = new CountingPhaseInterceptor("phase1", "p1"); Set<String> after = new HashSet<String>(); after.add("p1"); CountingPhaseInterceptor p2 = new CountingPhaseInterceptor("phase1", "p2", null, after); chain.add(p2); chain.add(p1); Iterator<Interceptor<? extends Message>> it = chain.iterator(); assertSame(p1, it.next()); assertSame(p2, it.next()); assertTrue(!it.hasNext()); }
/** 测试拦截器执行 */ @Test public void testDoInterceptor() throws Exception { CountingPhaseInterceptor p1 = new CountingPhaseInterceptor("phase1", "p1"); CountingPhaseInterceptor p2 = new CountingPhaseInterceptor("phase2", "p2"); CountingPhaseInterceptor p3 = new CountingPhaseInterceptor("phase3", "p3"); message.getInterceptorChain(); EasyMock.expectLastCall().andReturn(chain).anyTimes(); control.replay(); chain.add(p1); chain.add(p2); chain.add(p3); chain.doIntercept(message); assertEquals(1, p1.invoked); assertEquals(1, p2.invoked); assertEquals(1, p3.invoked); }
@Override public void handleMessage(Message m) { insertionChain.add(insertionInterceptor); invoked++; }