Package org.nutz.ioc.val

Source Code of org.nutz.ioc.val.IocCustomizedValueTypeTest

package org.nutz.ioc.val;

import static org.junit.Assert.assertEquals;

import org.junit.Test;
import org.nutz.dao.test.meta.Pet;
import org.nutz.ioc.Ioc2;
import org.nutz.ioc.IocMaking;
import org.nutz.ioc.ValueProxy;
import org.nutz.ioc.ValueProxyMaker;
import org.nutz.ioc.impl.NutIoc;
import org.nutz.ioc.loader.map.MapLoader;
import org.nutz.ioc.meta.IocValue;
import org.nutz.lang.Lang;

public class IocCustomizedValueTypeTest {

  @Test
  public void test_simple_customized() {
    String json = "{xb:{name:{cc:'XiaoBai'}}}";
    Ioc2 ioc = new NutIoc(new MapLoader(json));
    ioc.addValueProxyMaker(new ValueProxyMaker() {
      public ValueProxy make(IocMaking ing, IocValue iv) {
        if ("cc".equalsIgnoreCase(iv.getType())) {
          return new StaticValue("CC:" + iv.getValue());
        }
        return null;
      }

      public String[] supportedTypes() {
        return Lang.array("cc");
      }
    });

    Pet pet = ioc.get(Pet.class, "xb");
    assertEquals("CC:XiaoBai", pet.getName());
  }

}
TOP

Related Classes of org.nutz.ioc.val.IocCustomizedValueTypeTest

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.