/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you 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.ops4j.pax.exam.regression.deltaspike; import org.apache.deltaspike.core.api.projectstage.ProjectStage; import org.apache.deltaspike.core.api.provider.BeanProvider; import org.apache.deltaspike.core.util.ProjectStageProducer; import org.apache.deltaspike.test.core.api.exclude.AlwaysActiveBean; import org.apache.deltaspike.test.core.api.exclude.CustomExpressionBasedBean; import org.apache.deltaspike.test.core.api.exclude.CustomExpressionBasedNoBean; import org.apache.deltaspike.test.core.api.exclude.IntegrationTestBean; import org.apache.deltaspike.test.core.api.exclude.IntegrationTestDbBean; import org.apache.deltaspike.test.core.api.exclude.NoBean; import org.apache.deltaspike.test.core.api.exclude.ProdDbBean; import org.apache.deltaspike.test.core.api.exclude.StdBean; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.ops4j.pax.exam.junit.PaxExam; /** * Integration tests for {@link org.apache.deltaspike.core.api.exclude.annotation.Exclude}. * <p> * The original DeltaSpike test was based on JBoss Arquillian. Here we use Pax Exam, which does not * require any {@code @Configuration} or {@code @Deployment}. * <p> * All we need is an exam.properties resource on the classpath setting {@code pax.exam.system = cdi}. */ @RunWith(PaxExam.class) public class ExcludeIntegrationTest { /** * check project-stage to ensure the correct config for the other tests in this class */ @Test public void checkProjectStage() { Assert.assertEquals(ProjectStage.IntegrationTest, ProjectStageProducer.getInstance() .getProjectStage()); } /** * check if this package is included at all */ @Test public void simpleCheckOfBeansInPackage() { AlwaysActiveBean testBean = BeanProvider.getContextualReference(AlwaysActiveBean.class, true); Assert.assertNotNull(testBean); } /** * bean is excluded in any case */ @Test public void excludeWithoutCondition() { NoBean noBean = BeanProvider.getContextualReference(NoBean.class, true); Assert.assertNull(noBean); } /** * bean excluded in case of project-stage integration-test */ @Test public void excludeInCaseOfProjectStageIntegrationTest() { StdBean stdBean = BeanProvider.getContextualReference(StdBean.class, true); Assert.assertNull(stdBean); } /** * bean included in case of project-stage integration-test */ @Test public void includedInCaseOfProjectStageIntegrationTest() { IntegrationTestBean integrationTestBean = BeanProvider.getContextualReference( IntegrationTestBean.class, true); Assert.assertNotNull(integrationTestBean); } /** * beans de-/activated via expressions */ @Test public void excludedIfExpressionMatch() { ProdDbBean prodDbBean = BeanProvider.getContextualReference(ProdDbBean.class, true); Assert.assertNull(prodDbBean); IntegrationTestDbBean integrationTestDbBean = BeanProvider.getContextualReference( IntegrationTestDbBean.class, true); Assert.assertNotNull(integrationTestDbBean); } /** * bean excluded based on a custom expression syntax */ @Test public void excludedBasedOnCustomExpressionSyntax() { CustomExpressionBasedNoBean noBean = BeanProvider.getContextualReference( CustomExpressionBasedNoBean.class, true); Assert.assertNull(noBean); } /** * bean included based on a custom expression syntax */ @Test public void includedBasedOnCustomExpressionSyntax() { CustomExpressionBasedBean bean = BeanProvider.getContextualReference( CustomExpressionBasedBean.class, true); Assert.assertNotNull(bean); } }