Package org.jboss.weld.tests.unit.metadata

Source Code of org.jboss.weld.tests.unit.metadata.BeansXmlMergeTest$FilterStub

/*
* JBoss, Home of Professional Open Source
* Copyright 2014, 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.weld.tests.unit.metadata;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;

import org.jboss.weld.bootstrap.spi.BeanDiscoveryMode;
import org.jboss.weld.bootstrap.spi.BeansXml;
import org.jboss.weld.bootstrap.spi.ClassAvailableActivation;
import org.jboss.weld.bootstrap.spi.Filter;
import org.jboss.weld.bootstrap.spi.Metadata;
import org.jboss.weld.bootstrap.spi.SystemPropertyActivation;
import org.jboss.weld.metadata.BeansXmlImpl;
import org.jboss.weld.metadata.MetadataImpl;
import org.jboss.weld.metadata.ScanningImpl;
import org.jboss.weld.xml.BeansXmlParser;
import org.junit.Test;

/**
*
* @author Stefan Großmann
*
*/
public class BeansXmlMergeTest {

    private final BeansXmlParser parser = new BeansXmlParser();

    private class FilterStub implements Filter {
        @Override
        public String getName() {
            return null;
        }

        @Override
        public Collection<Metadata<SystemPropertyActivation>> getSystemPropertyActivations() {
            return null;
        }

        @Override
        public Collection<Metadata<ClassAvailableActivation>> getClassAvailableActivations() {
            return null;
        }
    }

    @Test
    public void testMergeEmptyBeansXML() {
        final List<BeansXml> beansXMLFiles = Arrays.asList(BeansXml.EMPTY_BEANS_XML, BeansXml.EMPTY_BEANS_XML);
        final BeansXml mergedBeansXml = parser.mergeExistingDescriptors(beansXMLFiles, false);
        assertNotNull(mergedBeansXml);
        assertNotNull(mergedBeansXml.getEnabledAlternativeClasses());
        assertNotNull(mergedBeansXml.getEnabledAlternativeStereotypes());
        assertNotNull(mergedBeansXml.getEnabledDecorators());
        assertNotNull(mergedBeansXml.getEnabledInterceptors());
        assertNotNull(mergedBeansXml.getScanning());
        assertNotNull(mergedBeansXml.getScanning().getExcludes());
        assertNotNull(mergedBeansXml.getScanning().getIncludes());
    }

    @Test
    public void testMergeAll() {
        final BeansXml beansXml1 = createBeansXmlTestInstance();
        final BeansXml beansXml2 = createBeansXmlTestInstance();

        final List<BeansXml> beansXMLFiles = Arrays.asList(beansXml1, beansXml2, BeansXml.EMPTY_BEANS_XML);
        final BeansXml mergedBeansXml = parser.mergeExistingDescriptors(beansXMLFiles, false);

        assertNotNull(mergedBeansXml);
        assertNotNull(mergedBeansXml.getEnabledAlternativeClasses());
        assertNotNull(mergedBeansXml.getEnabledAlternativeStereotypes());
        assertNotNull(mergedBeansXml.getEnabledDecorators());
        assertNotNull(mergedBeansXml.getEnabledInterceptors());
        assertNotNull(mergedBeansXml.getScanning());
        assertNotNull(mergedBeansXml.getScanning().getExcludes());
        assertNotNull(mergedBeansXml.getScanning().getIncludes());

        assertEquals(2, mergedBeansXml.getEnabledAlternativeClasses().size());
        assertEquals(2, mergedBeansXml.getEnabledAlternativeStereotypes().size());
        assertEquals(2, mergedBeansXml.getEnabledDecorators().size());
        assertEquals(2, mergedBeansXml.getEnabledInterceptors().size());
        assertEquals(2, mergedBeansXml.getScanning().getExcludes().size());
        assertEquals(2, mergedBeansXml.getScanning().getIncludes().size());
    }

    @Test
    public void testMergeWithoutDuplicates() {
        final BeansXml beansXml1 = createBeansXmlTestInstance();
        final BeansXml beansXml2 = createBeansXmlTestInstance();

        final List<BeansXml> beansXMLFiles = Arrays.asList(beansXml1, beansXml2, BeansXml.EMPTY_BEANS_XML);
        final BeansXml mergedBeansXml = parser.mergeExistingDescriptors(beansXMLFiles, true);

        assertNotNull(mergedBeansXml);
        assertNotNull(mergedBeansXml.getEnabledAlternativeClasses());
        assertNotNull(mergedBeansXml.getEnabledAlternativeStereotypes());
        assertNotNull(mergedBeansXml.getEnabledDecorators());
        assertNotNull(mergedBeansXml.getEnabledInterceptors());
        assertNotNull(mergedBeansXml.getScanning());
        assertNotNull(mergedBeansXml.getScanning().getExcludes());
        assertNotNull(mergedBeansXml.getScanning().getIncludes());

        assertEquals(1, mergedBeansXml.getEnabledAlternativeClasses().size());
        assertEquals(1, mergedBeansXml.getEnabledAlternativeStereotypes().size());
        assertEquals(1, mergedBeansXml.getEnabledDecorators().size());
        assertEquals(1, mergedBeansXml.getEnabledInterceptors().size());
    }

    public BeansXml createBeansXmlTestInstance() {
        final MetadataImpl<String> alternative = new MetadataImpl<String>("some.package.SomeAlternative", "C:\temp");
        final MetadataImpl<String> stereoType = new MetadataImpl<String>("some.package.SomeStereotype", "C:\temp");
        final MetadataImpl<String> decorator = new MetadataImpl<String>("some.package.SomeDecorator", "C:\temp");
        final MetadataImpl<String> interceptor = new MetadataImpl<String>("some.package.SomeInterceptor", "C:\temp");
        final Metadata<Filter> include = new MetadataImpl<Filter>(new FilterStub(), "C:\temp");
        final Metadata<Filter> exclude = new MetadataImpl<Filter>(new FilterStub(), "C:\temp");

        final List<Metadata<String>> alternativesClasses = new ArrayList<Metadata<String>>();
        final List<Metadata<String>> alternativeStereotypes = new ArrayList<Metadata<String>>();
        final List<Metadata<String>> decorators = new ArrayList<Metadata<String>>();
        final List<Metadata<String>> interceptors = new ArrayList<Metadata<String>>();
        final List<Metadata<Filter>> includes = new ArrayList<Metadata<Filter>>();
        final List<Metadata<Filter>> excludes = new ArrayList<Metadata<Filter>>();

        alternativesClasses.add(alternative);
        alternativeStereotypes.add(stereoType);
        decorators.add(decorator);
        interceptors.add(interceptor);
        includes.add(include);
        excludes.add(exclude);

        return new BeansXmlImpl(alternativesClasses, alternativeStereotypes, decorators, interceptors, new ScanningImpl(includes, excludes), null,
                BeanDiscoveryMode.ALL, "1.1");
    }
}
TOP

Related Classes of org.jboss.weld.tests.unit.metadata.BeansXmlMergeTest$FilterStub

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.