Package org.mule.test.integration.domain.properties

Source Code of org.mule.test.integration.domain.properties.DomainPropertiesPlaceHolderPropagationTestCase

/*
* Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
* The software in this package is published under the terms of the CPAL v1.0
* license, a copy of which has been included with this distribution in the
* LICENSE.txt file.
*/
package org.mule.test.integration.domain.properties;

import static org.hamcrest.core.Is.is;
import static org.junit.Assert.assertThat;

import org.mule.api.MuleContext;
import org.mule.tck.junit4.AbstractMuleTestCase;
import org.mule.tck.junit4.ApplicationContextBuilder;
import org.mule.tck.junit4.DomainContextBuilder;

import org.junit.Test;

public class DomainPropertiesPlaceHolderPropagationTestCase  extends AbstractMuleTestCase
{

    private MuleContext domainContext;
    private MuleContext applicationContext;

    @Test
    public void propertiesPropagatesToAppUsingContext() throws Exception
    {
        configureContexts("domain/properties/shared-context-properties.xml", "domain/properties/app-with-no-properties.xml");
        propertiesPropagatesScenario();
    }

    @Test
    public void appPropertiesPrecedeDomainPropertiesUsingContext() throws Exception
    {
        configureContexts("domain/properties/shared-context-properties.xml", "domain/properties/app-with-context-properties.xml");
        appPropertiesPrecedeDomainPropertiesScenario();
    }

    @Test
    public void propertiesPropagatesToAppUsingBeans() throws Exception
    {
        configureContexts("domain/properties/shared-beans-properties.xml", "domain/properties/app-with-no-properties.xml");
        propertiesPropagatesScenario();
    }

    @Test
    public void appPropertiesPrecedeDomainPropertiesUsingBeans() throws Exception
    {
        configureContexts("domain/properties/shared-beans-properties.xml", "domain/properties/app-with-beans-properties.xml");
        appPropertiesPrecedeDomainPropertiesScenario();
    }

    @Test
    public void propertiesPropagatesToAppUsingContextAndBeans() throws Exception
    {
        configureContexts("domain/properties/shared-context-properties.xml", "domain/properties/app-with-no-properties.xml");
        propertiesPropagatesScenario();
    }

    @Test
    public void appPropertiesPrecedeDomainPropertiesUsingContextAndBeans() throws Exception
    {
        configureContexts("domain/properties/shared-beans-properties.xml", "domain/properties/app-with-context-properties.xml");
        appPropertiesPrecedeDomainPropertiesScenario();
    }

    private void appPropertiesPrecedeDomainPropertiesScenario()
    {
        String domainPropertyObject = domainContext.getRegistry().lookupObject("domainPropertyObject");
        assertThat(domainPropertyObject, is("9999"));
        String appPropertyObject = applicationContext.getRegistry().lookupObject("appPropertyObject");
        assertThat(appPropertyObject, is("10000"));
        String app2PropertyObject = applicationContext.getRegistry().lookupObject("app2PropertyObject");
        assertThat(app2PropertyObject, is("service"));
    }

    private void propertiesPropagatesScenario()
    {
        String domainPropertyObject = domainContext.getRegistry().lookupObject("domainPropertyObject");
        assertThat(domainPropertyObject, is("9999"));
        String appPropertyObject = applicationContext.getRegistry().lookupObject("appPropertyObject");
        assertThat(appPropertyObject, is("9999"));
    }

    private void configureContexts(String domainConfig, String appConfig) throws Exception
    {
        domainContext = new DomainContextBuilder().setDomainConfig(domainConfig).build();
        applicationContext = new ApplicationContextBuilder().setApplicationResources(new String[] {appConfig}).setDomainContext(domainContext).build();
    }

}
TOP

Related Classes of org.mule.test.integration.domain.properties.DomainPropertiesPlaceHolderPropagationTestCase

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.