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.