Package org.beangle.spring.bind

Source Code of org.beangle.spring.bind.AutoConfigProcessorTest

/* Copyright c 2005-2012.
* Licensed under GNU  LESSER General Public License, Version 3.
* http://www.gnu.org/licenses
*/
package org.beangle.spring.bind;

import static org.testng.Assert.assertNotNull;
import static org.testng.Assert.assertTrue;

import org.apache.commons.lang.time.StopWatch;
import org.beangle.spring.testbean.SomeAction;
import org.beangle.spring.testbean.TestService;
import org.beangle.spring.testbean.UserDaoProvider;
import org.beangle.spring.testbean.UserLdapProvider;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.testng.annotations.Test;

@Test
public class AutoConfigProcessorTest {

  public void testGet() {
    StopWatch watch = new StopWatch();
    watch.start();
    ApplicationContext factory = new ClassPathXmlApplicationContext("/context-auto.xml");
    testBean(factory);
    testFactoryBean(factory);
    System.out.println("config  context-auto completed using " + watch.getTime());
  }

  public void testNoAutowire() {
    StopWatch watch = new StopWatch();
    watch.start();
    ApplicationContext factory = new ClassPathXmlApplicationContext("/context-auto.xml");
    String name = SomeAction.class.getName();
    for (int i = 0; i < 100; i++) {
      factory.getBean(name);
    }
    System.out.println("no autowire using " + watch.getTime());
  }

  private void testFactoryBean(ApplicationContext factory) {
    TestService testService = factory.getBean("testService", TestService.class);
    assertNotNull(testService);
    assertNotNull(testService.getTestDao());
  }

  private void testBean(ApplicationContext factory) {
    // two user provider
    UserDaoProvider daoProvider = (UserDaoProvider) factory.getBean("userDaoProvider");
    assertNotNull(daoProvider);

    UserDaoProvider daoProvider2 = (UserDaoProvider) factory.getBean("userDaoProvider");
    assertNotNull(daoProvider2);

    assertTrue(daoProvider2 == daoProvider);

    UserLdapProvider ldapProvider = (UserLdapProvider) factory.getBean("userLdapProvider");
    assertNotNull(ldapProvider);

    // userService
    SomeAction action = (SomeAction) factory.getBean(SomeAction.class.getName());

    assertNotNull(action);

    assertTrue(action.hasDaoProvider());
    assertTrue(action.hasLdapProvider());

    assertTrue(action.getUserDaoProvider() == daoProvider);
    assertTrue(action.getLdapProvider() == ldapProvider);

    SomeAction action2 = (SomeAction) factory.getBean(SomeAction.class.getName());

    assertTrue(action2 != action);
  }
}
TOP

Related Classes of org.beangle.spring.bind.AutoConfigProcessorTest

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.