package org.nutz.dao.test.mapping; import java.util.List; import org.junit.Test; import org.nutz.dao.test.DaoCase; import org.nutz.dao.test.meta.Base; import org.nutz.dao.test.meta.Country; import org.nutz.lang.Lang; import static org.junit.Assert.*; public class OneTest extends DaoCase { @Override protected void before() { pojos.initData(); } @Override protected void after() {} @Test public void fetch_links() { Base b = dao.fetchLinks(dao.fetch(Base.class, "red"), "country"); assertEquals("China", b.getCountry().getName()); } @Test public void fetch_links_as_list() { List<Base> b = dao.fetchLinks(Lang.list(dao.fetch(Base.class, "red")), "country"); assertEquals("China", b.get(0).getCountry().getName()); } @Test public void delete_links() { Base b = dao.fetchLinks(dao.fetch(Base.class, "red"), "country"); dao.deleteLinks(b, "country"); assertEquals(1, dao.count(Country.class)); } @Test public void delete_links_as_list() { List<Base> b = dao.fetchLinks(Lang.list(dao.fetch(Base.class, "red")), "country"); dao.deleteLinks(b, "country"); assertEquals(1, dao.count(Country.class)); } @Test public void delete_with() { Base b = dao.fetchLinks(dao.fetch(Base.class, "red"), "country"); dao.deleteWith(b, "country"); assertEquals(1, dao.count(Country.class)); assertEquals(1, dao.count(Base.class)); } @Test public void delete_with_as_list() { List<Base> b = dao.fetchLinks(Lang.list(dao.fetch(Base.class, "red")), "country"); dao.deleteWith(b, "country"); assertEquals(1, dao.count(Country.class)); assertEquals(1, dao.count(Base.class)); } @Test public void clear_links() { Base b = dao.fetch(Base.class, "red"); dao.clearLinks(b, "country"); assertEquals(1, dao.count(Country.class)); } @Test public void clear_links_as_list() { List<Base> b = dao.fetchLinks(Lang.list(dao.fetch(Base.class, "red")), "country"); dao.clearLinks(b, "country"); assertEquals(1, dao.count(Country.class)); } @Test public void update_links() { Base b = dao.fetchLinks(dao.fetch(Base.class, "red"), "country"); int lv = b.getLevel(); b.setLevel(45); b.getCountry().setName("ABC"); dao.updateLinks(b, "country"); b = dao.fetch(Base.class, "red"); assertEquals(lv, b.getLevel()); Country c = dao.fetch(Country.class, b.getCountryId()); assertEquals("ABC", c.getName()); } @Test public void update_links_as_list() { List<Base> b = dao.fetchLinks(Lang.list(dao.fetch(Base.class, "red")), "country"); int lv = b.get(0).getLevel(); b.get(0).setLevel(45); b.get(0).getCountry().setName("ABC"); dao.updateLinks(b, "country"); b = Lang.list(dao.fetch(Base.class, "red")); assertEquals(lv, b.get(0).getLevel()); Country c = dao.fetch(Country.class, b.get(0).getCountryId()); assertEquals("ABC", c.getName()); } @Test public void update_with() { Base b = dao.fetchLinks(dao.fetch(Base.class, "red"), "country"); b.setLevel(6); b.getCountry().setName("ABC"); dao.updateWith(b, "country"); b = dao.fetch(Base.class, b.getName()); assertEquals(6, b.getLevel()); Country c = dao.fetch(Country.class, b.getCountryId()); assertEquals("ABC", c.getName()); } @Test public void update_with_as_list() { List<Base> b = dao.fetchLinks(Lang.list(dao.fetch(Base.class, "red")), "country"); b.get(0).setLevel(45); b.get(0).getCountry().setName("ABC"); dao.updateWith(b, "country"); b = Lang.list(dao.fetch(Base.class, b.get(0).getName())); assertEquals(45, b.get(0).getLevel()); Country c = dao.fetch(Country.class, b.get(0).getCountryId()); assertEquals("ABC", c.getName()); } }