Package org.nutz.dao.test.mapping

Source Code of org.nutz.dao.test.mapping.ManyTest

package org.nutz.dao.test.mapping;

import static org.junit.Assert.*;

import java.util.ArrayList;
import java.util.Iterator;

import org.junit.Test;

import org.nutz.dao.Cnd;
import org.nutz.dao.test.DaoCase;
import org.nutz.dao.test.meta.Base;
import org.nutz.dao.test.meta.Master;
import org.nutz.dao.test.meta.Pet;
import org.nutz.dao.test.meta.Platoon;
import org.nutz.dao.test.meta.WaveBand;

public class ManyTest extends DaoCase {

  @Override
  protected void before() {
    pojos.initData();
  }

  @Override
  protected void after() {}

  @Test
  public void insert_links() {
    dao.create(Pet.class, true);
    dao.create(Master.class, true);

    Master m = new Master();
    m.setName("zozoh");
    m.setPets(new ArrayList<Pet>(2));

    Pet pet = new Pet();
    pet.setAge(25);
    pet.setName("Wendal");
    m.getPets().add(pet);

    pet = new Pet();
    pet.setAge(25);
    pet.setName("Juqkai");
    m.getPets().add(pet);

    dao.insertWith(m, "pets");
    assertTrue(m.getId() > 0);
    assertEquals(2, dao.count(Pet.class, Cnd.where("masterId", "=", m.getId())));
  }

  @Test
  public void fetch_links() {
    Base b = dao.fetchLinks(dao.fetch(Base.class, "red"), "platoons");
    assertEquals(3, b.getPlatoons().size());
    assertEquals(b.getName(), b.getPlatoons().get("C").getBaseName());
    assertEquals(b.getName(), b.getPlatoons().get("ES").getBaseName());
    assertEquals(b.getName(), b.getPlatoons().get("DT").getBaseName());
  }

  @Test
  public void fetch_null_field_links() {
    Base b = dao.fetchLinks(dao.fetch(Base.class, "red"), "wavebands");
    assertEquals(4, b.getWavebands().size());
    Base b2 = dao.fetchLinks(dao.fetch(Base.class, "blue"), "wavebands");
    assertEquals(4, b2.getWavebands().size());
  }

  @Test
  public void delete_links() {
    assertEquals(6, dao.count(Platoon.class));
    Base b = dao.fetchLinks(dao.fetch(Base.class, "red"), "platoons");
    dao.deleteLinks(b, "platoons");
    assertEquals(3, dao.count(Platoon.class));
  }

  @Test
  public void delete_null_field_links() {
    Base b = dao.fetchLinks(dao.fetch(Base.class, "red"), "wavebands");
    dao.deleteLinks(b, "wavebands");
    assertEquals(0, dao.count(WaveBand.class));
  }

  @Test
  public void delete_links_partly() {
    Base b = dao.fetchLinks(dao.fetch(Base.class, "red"), "platoons");
    b.getPlatoons().remove("C");
    dao.deleteLinks(b, "platoons");
    assertEquals(4, dao.count(Platoon.class));
  }

  @Test
  public void delete_null_field_links_partly() {
    Base b = dao.fetchLinks(dao.fetch(Base.class, "red"), "wavebands");
    b.getWavebands().remove(0);
    dao.deleteLinks(b, "wavebands");
    assertEquals(1, dao.count(WaveBand.class));
  }

  @Test
  public void delete_with() {
    Base b = dao.fetchLinks(dao.fetch(Base.class, "red"), "platoons");
    dao.deleteWith(b, "platoons");
    assertEquals(3, dao.count(Platoon.class));
    assertEquals(1, dao.count(Base.class));
  }

  @Test
  public void delete_with_partly() {
    Base b = dao.fetchLinks(dao.fetch(Base.class, "red"), "platoons");
    b.getPlatoons().remove("C");
    dao.deleteWith(b, "platoons");
    assertEquals(4, dao.count(Platoon.class));
    assertEquals(1, dao.count(Base.class));
  }

  @Test
  public void clear_links() {
    Base b = dao.fetch(Base.class, "red");
    dao.clearLinks(b, "platoons");
    assertEquals(3, dao.count(Platoon.class));
  }

  @Test
  public void clear_null_field_links() {
    Base b = dao.fetch(Base.class, "red");
    dao.clearLinks(b, "wavebands");
    assertEquals(0, dao.count(WaveBand.class));
  }

  @Test
  public void update_links() {
    Base b = dao.fetchLinks(dao.fetch(Base.class, "blue"), "platoons");
    int lv = b.getLevel();
    b.setLevel(45);
    for (Iterator<Platoon> it = b.getPlatoons().values().iterator(); it.hasNext();) {
      it.next().setBaseName("red");
    }
    dao.updateLinks(b, "platoons");
    b = dao.fetch(Base.class, "blue");
    assertEquals(lv, b.getLevel());
    b = dao.fetchLinks(dao.fetch(Base.class, "red"), "platoons");
    assertEquals(6, b.getPlatoons().size());
  }

  @Test
  public void update_with() {
    Base b = dao.fetchLinks(dao.fetch(Base.class, "blue"), "platoons");
    b.setLevel(45);
    for (Iterator<Platoon> it = b.getPlatoons().values().iterator(); it.hasNext();) {
      it.next().setBaseName("red");
    }
    dao.updateWith(b, "platoons");
    b = dao.fetch(Base.class, "blue");
    assertEquals(45, b.getLevel());
    b = dao.fetchLinks(dao.fetch(Base.class, "red"), "platoons");
    assertEquals(6, b.getPlatoons().size());
  }
}
TOP

Related Classes of org.nutz.dao.test.mapping.ManyTest

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.