/*
* JBoss, Home of Professional Open Source
* Copyright 2011, Red Hat, Inc., and individual contributors
* by the @authors tag. See the copyright.txt in the distribution for a
* full listing of individual contributors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* http://www.apache.org/licenses/LICENSE-2.0
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jboss.seam.faces.test.weld.event;
import javax.faces.event.PhaseId;
import javax.inject.Inject;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.seam.faces.event.PhaseEventBridge;
import org.jboss.seam.faces.test.weld.MockLogger;
import org.jboss.seam.faces.test.weld.MockLoggerProducer;
import org.jboss.seam.faces.test.weld.PhaseTestBase;
import org.jboss.solder.beanManager.BeanManagerAware;
import org.jboss.shrinkwrap.api.ArchivePaths;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.asset.ByteArrayAsset;
import org.jboss.shrinkwrap.api.spec.JavaArchive;
import org.junit.Test;
import org.junit.runner.RunWith;
/**
* @author Nicklas Karlsson
*/
@RunWith(Arquillian.class)
public class PhaseEventBridgeTest extends PhaseTestBase {
@Deployment
public static JavaArchive createTestArchive() {
return ShrinkWrap.create(JavaArchive.class)
.addClasses(MockPhaseEventObserver.class, PhaseEventBridge.class, BeanManagerAware.class, MockLogger.class, MockLoggerProducer.class)
.addAsManifestResource(new ByteArrayAsset(new byte[0]), ArchivePaths.create("beans.xml"));
}
@Inject
MockPhaseEventObserver observer;
@Test
public void testBeforeRenderResponseObserver() {
observer.reset();
fireAllPhases();
observer.assertObservations("1", PhaseId.RENDER_RESPONSE);
}
@Test
public void testAfterRenderResponseObserver() {
observer.reset();
fireAllPhases();
observer.assertObservations("2", PhaseId.RENDER_RESPONSE);
}
@Test
public void testBeforeApplyRequestValuesObserver() {
observer.reset();
fireAllPhases();
observer.assertObservations("3", PhaseId.APPLY_REQUEST_VALUES);
}
@Test
public void testAfterApplyRequestValuesObserver() {
observer.reset();
fireAllPhases();
observer.assertObservations("4", PhaseId.APPLY_REQUEST_VALUES);
}
@Test
public void testBeforeInvokeApplicationObserver() {
observer.reset();
fireAllPhases();
observer.assertObservations("5", PhaseId.INVOKE_APPLICATION);
}
@Test
public void testAfterInvokeApplicationObserver() {
observer.reset();
fireAllPhases();
observer.assertObservations("6", PhaseId.INVOKE_APPLICATION);
}
@Test
public void testBeforeProcessValidationsObserver() {
observer.reset();
fireAllPhases();
observer.assertObservations("7", PhaseId.PROCESS_VALIDATIONS);
}
@Test
public void testAfterProcessValidationsObserver() {
observer.reset();
fireAllPhases();
observer.assertObservations("8", PhaseId.PROCESS_VALIDATIONS);
}
@Test
public void testBeforeRestoreViewObserver() {
observer.reset();
fireAllPhases();
observer.assertObservations("9", PhaseId.RESTORE_VIEW);
}
@Test
public void testAfterRestoreViewObserver() {
observer.reset();
fireAllPhases();
observer.assertObservations("10", PhaseId.RESTORE_VIEW);
}
@Test
public void testBeforeUpdateModelValuesObserver() {
observer.reset();
fireAllPhases();
observer.assertObservations("11", PhaseId.UPDATE_MODEL_VALUES);
}
@Test
public void testAfterUpdateModelValuesObserver() {
observer.reset();
fireAllPhases();
observer.assertObservations("11", PhaseId.UPDATE_MODEL_VALUES);
}
@Test
public void testAllRenderResponseObserver() {
observer.reset();
fireAllPhases();
observer.assertObservations("13", PhaseId.RENDER_RESPONSE, PhaseId.RENDER_RESPONSE);
}
@Test
public void testAllApplyRequestValuesObserver() {
observer.reset();
fireAllPhases();
observer.assertObservations("14", PhaseId.APPLY_REQUEST_VALUES, PhaseId.APPLY_REQUEST_VALUES);
}
@Test
public void testAllInvokeApplicationObserver() {
observer.reset();
fireAllPhases();
observer.assertObservations("15", PhaseId.INVOKE_APPLICATION, PhaseId.INVOKE_APPLICATION);
}
@Test
public void testAllProcessValidationsObserver() {
observer.reset();
fireAllPhases();
observer.assertObservations("16", PhaseId.PROCESS_VALIDATIONS, PhaseId.PROCESS_VALIDATIONS);
}
@Test
public void testAllRestoreViewObserver() {
observer.reset();
fireAllPhases();
observer.assertObservations("17", PhaseId.RESTORE_VIEW, PhaseId.RESTORE_VIEW);
}
@Test
public void testAllUpdateModelValuesObserver() {
observer.reset();
fireAllPhases();
observer.assertObservations("18", PhaseId.UPDATE_MODEL_VALUES, PhaseId.UPDATE_MODEL_VALUES);
}
@Test
public void testAllBeforeEventsObserver() {
observer.reset();
fireAllPhases();
observer.assertObservations("19", PhaseId.APPLY_REQUEST_VALUES, PhaseId.INVOKE_APPLICATION,
PhaseId.PROCESS_VALIDATIONS, PhaseId.RENDER_RESPONSE, PhaseId.RESTORE_VIEW, PhaseId.UPDATE_MODEL_VALUES);
}
@Test
public void testAllAfterEventsObserver() {
observer.reset();
fireAllPhases();
observer.assertObservations("20", PhaseId.APPLY_REQUEST_VALUES, PhaseId.INVOKE_APPLICATION,
PhaseId.PROCESS_VALIDATIONS, PhaseId.RENDER_RESPONSE, PhaseId.RESTORE_VIEW, PhaseId.UPDATE_MODEL_VALUES);
}
@Test
public void testAllEventsObserver() {
observer.reset();
fireAllPhases();
observer.assertObservations("21", PhaseId.APPLY_REQUEST_VALUES, PhaseId.INVOKE_APPLICATION,
PhaseId.PROCESS_VALIDATIONS, PhaseId.RENDER_RESPONSE, PhaseId.RESTORE_VIEW, PhaseId.UPDATE_MODEL_VALUES,
PhaseId.APPLY_REQUEST_VALUES, PhaseId.INVOKE_APPLICATION, PhaseId.PROCESS_VALIDATIONS, PhaseId.RENDER_RESPONSE,
PhaseId.RESTORE_VIEW, PhaseId.UPDATE_MODEL_VALUES);
}
}