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());
}
Aggregations