Package org.constretto.spring

Source Code of org.constretto.spring.ConstrettoJavaConfigTest$TestContextWithNoConstrettoBeanPostProcessors

package org.constretto.spring;


import org.constretto.ConstrettoBuilder;
import org.constretto.ConstrettoConfiguration;
import org.constretto.exception.ConstrettoException;
import org.constretto.model.Resource;
import org.constretto.spring.annotation.Constretto;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

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

/**
* @author zapodot at gmail dot com
*/
public class ConstrettoJavaConfigTest {

    public static final String BEAN_KEY_LIST = "keyList";
    public static final String BEAN_KEY_SET = "key_set";
    public static final String KEY_VALUE = "value7";

    @Test(expected = ConstrettoException.class)
    public void testTestContextWithoutConstretto() throws Exception {
        new AnnotationConfigApplicationContext(TestContextWithoutConstretto.class);

    }

    @Test
    public void testContextProvidingConstrettoConfiguration() throws Exception {
        final ApplicationContext applicationContext = new AnnotationConfigApplicationContext(TestContextWithConstretto.class);
        assertNotNull(applicationContext);
        final List<String> keyList = applicationContext.getBean(BEAN_KEY_LIST, List.class);
        assertEquals(1, keyList.size());
        assertEquals(KEY_VALUE, keyList.get(0));
        final Set<String> keySet = applicationContext.getBean(BEAN_KEY_SET, Set.class);
        assertEquals(KEY_VALUE, keySet.iterator().next());


    }

    @Test
    public void testContextWithNotBeanPostProcessorsEnabled() throws Exception {
        final AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(TestContextWithNoConstrettoBeanPostProcessors.class);
        final List<String> keys = applicationContext.getBean(BEAN_KEY_LIST, List.class);
        // The substitution key should not be substituted for a value
        assertEquals("${key7}", keys.get(0));

    }

    @Constretto
    @Configuration
    public static class TestContextWithoutConstretto {

    }

    @Constretto
    @Configuration
    public static class TestContextWithConstretto {

        @org.constretto.annotation.Configuration("key7")
        private String key;

        @Bean
        public static ConstrettoConfiguration constrettoConfiguration() {
            return new ConstrettoBuilder(true)
                    .createIniFileConfigurationStore()
                    .addResource(Resource.create("classpath:properties/test1.ini"))
                    .done()
                    .getConfiguration();
        }

        @Bean(name = BEAN_KEY_LIST)
        public List<String> keyList(@Value("${key7}") final String key) {
            return Arrays.asList(key);
        }

        @Bean(name = BEAN_KEY_SET)
        public Set<String> keySet() {
            final Set<String> set = new HashSet<String>();
            set.add(key);
            return set;
        }
    }

    @Configuration
    @Constretto(enableAnnotationSupport = false, enablePropertyPlaceholder = false)
    public static class TestContextWithNoConstrettoBeanPostProcessors {

        public static ConstrettoConfiguration constrettoConfiguration() {
            return new ConstrettoBuilder(false).getConfiguration();
        }

        @Bean(name = BEAN_KEY_LIST)
        public List<String> keyList(@Value("${key7}") final String key) {
            return Arrays.asList(key);
        }

    }
}
TOP

Related Classes of org.constretto.spring.ConstrettoJavaConfigTest$TestContextWithNoConstrettoBeanPostProcessors

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.