Package org.nutz.ioc.json

Source Code of org.nutz.ioc.json.EvensJsonIocTest

package org.nutz.ioc.json;

import org.junit.Test;
import org.nutz.ioc.Ioc;
import org.nutz.ioc.impl.NutIoc;
import org.nutz.ioc.json.pojo.Animal;
import org.nutz.ioc.loader.json.JsonLoader;

import static org.junit.Assert.*;
import static org.nutz.ioc.json.Utils.*;

public class EvensJsonIocTest {

  @Test
  public void test_init_with_field() {
    String s = "fields: {name:'Fox'},";
    s = s + "\nevents:{";
    s = s + "\n  create: 'org.nutz.ioc.json.pojo.WhenCreateFox'";
    s = s + "\n}";
    Ioc ioc = I(J("fox", s));

    Animal fox = ioc.get(Animal.class, "fox");
    assertEquals("$Fox", fox.getName());
  }

  @Test
  public void test_events_for_singleton() {
    String s = "fields: {name:'Fox'},";
    s = s + "\nevents:{";
    s = s + "\n  fetch: 'onFetch',";
    s = s + "\n  create: 'onCreate',";
    s = s + "\n  depose: 'onDepose'";
    s = s + "\n}";
    Ioc ioc = I(J("fox", s));

    Animal f = ioc.get(Animal.class, "fox");
    assertEquals(1, f.getCreateTime());
    assertEquals(1, f.getFetchTime());
    assertEquals(0, f.getDeposeTime());

    ioc.get(Animal.class, "fox");

    assertEquals(1, f.getCreateTime());
    assertEquals(2, f.getFetchTime());
    assertEquals(0, f.getDeposeTime());

    ioc.reset();
    assertEquals(1, f.getCreateTime());
    assertEquals(2, f.getFetchTime());
    assertEquals(1, f.getDeposeTime());
  }

  @Test
  public void test_events_for_un_singleton() {
    String s = "singleton:false, fields: {name:'Fox'},";
    s = s + "\nevents:{";
    s = s + "\n  fetch: 'onFetch',";
    s = s + "\n  create: 'onCreate',";
    s = s + "\n  depose: 'onDepose'";
    s = s + "\n}";
    Ioc ioc = I(J("fox", s));

    Animal f = ioc.get(Animal.class, "fox");
    assertEquals(1, f.getCreateTime());
    assertEquals(1, f.getFetchTime());
    assertEquals(0, f.getDeposeTime());

    ioc.get(Animal.class, "fox");

    assertEquals(1, f.getCreateTime());
    assertEquals(1, f.getFetchTime());
    assertEquals(0, f.getDeposeTime());

    ioc.reset();
    assertEquals(1, f.getCreateTime());
    assertEquals(1, f.getFetchTime());
    assertEquals(0, f.getDeposeTime());
  }

  @Test
  public void test_events_by_trigger_for_singleton() {
    String s = "fields: {name:'Fox'},";
    s = s + "\nevents:{";
    s = s + "\n  fetch: 'org.nutz.ioc.json.pojo.WhenFetchAnimal',";
    s = s + "\n  create: 'org.nutz.ioc.json.pojo.WhenCreateAnimal',";
    s = s + "\n  depose: 'org.nutz.ioc.json.pojo.WhenDeposeAnimal'";
    s = s + "\n}";
    Ioc ioc = I(J("fox", s));

    Animal f = ioc.get(Animal.class, "fox");
    assertEquals(10, f.getCreateTime());
    assertEquals(10, f.getFetchTime());
    assertEquals(0, f.getDeposeTime());

    ioc.get(Animal.class, "fox");

    assertEquals(10, f.getCreateTime());
    assertEquals(20, f.getFetchTime());
    assertEquals(0, f.getDeposeTime());

    ioc.reset();
    assertEquals(10, f.getCreateTime());
    assertEquals(20, f.getFetchTime());
    assertEquals(10, f.getDeposeTime());
  }

  @Test
  public void test_events_by_trigger_for_un_singleton() {
    String s = "singleton:false, fields: {name:'Fox'},";
    s = s + "\nevents:{";
    s = s + "\n  fetch: 'org.nutz.ioc.json.pojo.WhenFetchAnimal',";
    s = s + "\n  create: 'org.nutz.ioc.json.pojo.WhenCreateAnimal',";
    s = s + "\n  depose: 'org.nutz.ioc.json.pojo.WhenDeposeAnimal'";
    s = s + "\n}";
    Ioc ioc = I(J("fox", s));

    Animal f = ioc.get(Animal.class, "fox");
    assertEquals(10, f.getCreateTime());
    assertEquals(10, f.getFetchTime());
    assertEquals(0, f.getDeposeTime());

    ioc.get(Animal.class, "fox");

    assertEquals(10, f.getCreateTime());
    assertEquals(10, f.getFetchTime());
    assertEquals(0, f.getDeposeTime());

    ioc.reset();
    assertEquals(10, f.getCreateTime());
    assertEquals(10, f.getFetchTime());
    assertEquals(0, f.getDeposeTime());
  }

  @Test
  public void test_event_from_parent() {
    Ioc ioc = new NutIoc(new JsonLoader("org/nutz/ioc/json/events.js"));
    Animal f = ioc.get(Animal.class, "fox");
    assertEquals(1, f.getCreateTime());
    assertEquals(1, f.getFetchTime());
    assertEquals(0, f.getDeposeTime());

    ioc.depose();
    assertEquals(1, f.getCreateTime());
    assertEquals(1, f.getFetchTime());
    assertEquals(1, f.getDeposeTime());
  }
}
TOP

Related Classes of org.nutz.ioc.json.EvensJsonIocTest

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.