Search in sources :

Example 1 with Phase

use of com.sun.faces.lifecycle.Phase in project newrelic-java-agent by newrelic.

the class JSFTest method testPhase.

@Test
public void testPhase() {
    final List<Tracer> tracers = new ArrayList<>();
    final MockFacesContext mockFacesContext = new MockFacesContext();
    final Phase phase = new Phase() {

        @Override
        public void execute(FacesContext arg0) throws FacesException {
            Tracer lastTracer = Transaction.getTransaction().getTransactionActivity().getLastTracer();
            tracers.add(lastTracer);
        }

        @Override
        protected void handleAfterPhase(FacesContext arg0, ListIterator<PhaseListener> arg1, PhaseEvent arg2) {
        }

        @Override
        protected void handleBeforePhase(FacesContext arg0, ListIterator<PhaseListener> arg1, PhaseEvent arg2) {
        }

        @Override
        protected void queueException(FacesContext ctx, Throwable t, String booleanKey) {
            super.queueException(ctx, t, booleanKey);
        }

        @Override
        protected void queueException(FacesContext ctx, Throwable t) {
            super.queueException(ctx, t);
        }

        @Override
        public PhaseId getId() {
            return PhaseId.ANY_PHASE;
        }
    };
    new Runnable() {

        @Override
        @Trace(dispatcher = true)
        public void run() {
            phase.doPhase(mockFacesContext, new MockLifecycle(), new ArrayList<PhaseListener>().listIterator());
        }
    }.run();
    Assert.assertEquals(1, tracers.size());
    Tracer tracer = tracers.get(0);
    ClassMethodSignature sig = new ClassMethodSignature(phase.getClass().getName(), "doPhase", "(Ljavax/faces/context/FacesContext;Ljavax/faces/lifecycle/Lifecycle;Ljava/util/ListIterator;)V");
    Assert.assertEquals(ClassMethodMetricNameFormat.getMetricName(sig, phase, MetricNames.CUSTOM), tracer.getMetricName());
}
Also used : MockFacesContext(com.sun.faces.mock.MockFacesContext) MockLifecycle(com.sun.faces.mock.MockLifecycle) MockFacesContext(com.sun.faces.mock.MockFacesContext) FacesContext(javax.faces.context.FacesContext) Phase(com.sun.faces.lifecycle.Phase) PhaseEvent(javax.faces.event.PhaseEvent) Tracer(com.newrelic.agent.tracers.Tracer) ArrayList(java.util.ArrayList) ListIterator(java.util.ListIterator) Trace(com.newrelic.api.agent.Trace) ClassMethodSignature(com.newrelic.agent.tracers.ClassMethodSignature) PhaseListener(javax.faces.event.PhaseListener) Test(org.junit.Test)

Aggregations

ClassMethodSignature (com.newrelic.agent.tracers.ClassMethodSignature)1 Tracer (com.newrelic.agent.tracers.Tracer)1 Trace (com.newrelic.api.agent.Trace)1 Phase (com.sun.faces.lifecycle.Phase)1 MockFacesContext (com.sun.faces.mock.MockFacesContext)1 MockLifecycle (com.sun.faces.mock.MockLifecycle)1 ArrayList (java.util.ArrayList)1 ListIterator (java.util.ListIterator)1 FacesContext (javax.faces.context.FacesContext)1 PhaseEvent (javax.faces.event.PhaseEvent)1 PhaseListener (javax.faces.event.PhaseListener)1 Test (org.junit.Test)1