[jboss-cvs] jboss-seam/examples/wiki/src/test/org/jboss/seam/wiki/test/model ...

Christian Bauer christian at hibernate.org
Tue Dec 18 23:29:24 EST 2007


  User: cbauer  
  Date: 07/12/18 23:29:24

  Added:       examples/wiki/src/test/org/jboss/seam/wiki/test/model     
                        CommentTests.java DocumentTests.java
                        DirectoryTests.java MenuTests.java URLTests.java
  Log:
  Major rewrite of the most of the application
  
  Revision  Changes    Path
  1.1      date: 2007/12/19 04:29:24;  author: cbauer;  state: Exp;jboss-seam/examples/wiki/src/test/org/jboss/seam/wiki/test/model/CommentTests.java
  
  Index: CommentTests.java
  ===================================================================
  /*
   * JBoss, Home of Professional Open Source
   *
   * Distributable under LGPL license.
   * See terms of license at gnu.org.
   */
  package org.jboss.seam.wiki.test.model;
  
  import org.jboss.seam.wiki.test.util.DBUnitSeamTest;
  import org.jboss.seam.wiki.core.model.WikiDocument;
  import org.jboss.seam.wiki.core.model.WikiComment;
  import org.jboss.seam.wiki.core.model.User;
  import org.jboss.seam.wiki.util.WikiUtil;
  import org.dbunit.operation.DatabaseOperation;
  import org.testng.annotations.Test;
  
  import javax.persistence.EntityManager;
  import java.util.List;
  import java.util.Date;
  
  public class CommentTests extends DBUnitSeamTest {
  
      protected void prepareDBUnitOperations() {
          beforeTestOperations.add(
                  new DataSetOperation("org/jboss/seam/wiki/test/WikiBaseData.dbunit.xml", DatabaseOperation.CLEAN_INSERT)
          );
      }
  
      @Test
      public void findAllCommentsFlat() throws Exception {
          new FacesRequest() {
  
              protected void invokeApplication() throws Exception {
                  EntityManager em = (EntityManager) getInstance("restrictedEntityManager");
                  WikiDocument d = (WikiDocument)
                          em.createQuery("select d from WikiDocument d where d.id = :id")
                                  .setParameter("id", 6l)
                                  .getSingleResult();
                  assert d.getName().equals("One");
  
                  List<WikiComment> comments =
                          em.createQuery("select c from WikiComment c where c.parent = :doc order by c.createdOn asc")
                          .setParameter("doc", d)
                          .getResultList();
  
                  assert comments.size() == 2;
  
                  assert comments.get(0).getName().equals("One.Comment11967298211870");
                  assert comments.get(1).getSubject().equals("Five");
              }
          }.run();
      }
  
      @Test
      public void findAllCommentsHierachical() throws Exception {
          new FacesRequest() {
  
              protected void invokeApplication() throws Exception {
                  EntityManager em = (EntityManager) getInstance("restrictedEntityManager");
                  WikiDocument d = (WikiDocument)
                          em.createQuery("select d from WikiDocument d where d.id = :id")
                                  .setParameter("id", 6l)
                                  .getSingleResult();
                  assert d.getName().equals("One");
  
                  List<Object[]> result = queryComments(d, em);
  
                  assert result.size() == 6;
  
                  Object[] one = result.get(0);
                  assert one[0].equals(1l);
                  assert one[1].equals(10l);
                  assert one[2].equals(1l);
                  assert one[3].equals(8l);
                  assert one[4].equals(10l);
  
                  Object[] two = result.get(1);
                  assert two[0].equals(2l);
                  assert two[1].equals(11l);
                  assert two[2].equals(2l);
                  assert two[3].equals(3l);
                  assert two[4].equals(10l);
  
                  Object[] three = result.get(2);
                  assert three[0].equals(2l);
                  assert three[1].equals(12l);
                  assert three[2].equals(4l);
                  assert three[3].equals(7l);
                  assert three[4].equals(10l);
  
                  Object[] four = result.get(3);
                  assert four[0].equals(3l);
                  assert four[1].equals(13l);
                  assert four[2].equals(5l);
                  assert four[3].equals(6l);
                  assert four[4].equals(10l);
  
                  Object[] five = result.get(4);
                  assert five[0].equals(1l);
                  assert five[1].equals(14l);
                  assert five[2].equals(1l);
                  assert five[3].equals(4l);
                  assert five[4].equals(14l);
  
                  Object[] six = result.get(5);
                  assert six[0].equals(2l);
                  assert six[1].equals(15l);
                  assert six[2].equals(2l);
                  assert six[3].equals(3l);
                  assert six[4].equals(14l);
              }
          }.run();
      }
  
  
      @Test
      public void insertCommentNewThread() throws Exception {
          new FacesRequest() {
  
              protected void invokeApplication() throws Exception {
                  EntityManager em = (EntityManager) getInstance("restrictedEntityManager");
                  WikiDocument d = (WikiDocument)
                          em.createQuery("select d from WikiDocument d where d.id = :id")
                                  .setParameter("id", 6l)
                                  .getSingleResult();
                  assert d.getName().equals("One");
  
                  WikiComment newComment = new WikiComment();
  
                  newComment.setAreaNumber(d.getAreaNumber());
                  newComment.setDerivedName(d);
                  newComment.setWikiname(WikiUtil.convertToWikiName(newComment.getName()));
                  newComment.setCreatedBy(em.find(User.class, 1l));
  
                  newComment.setSubject("Seven");
                  newComment.setContent("Testcomment Seven");
                  newComment.setUseWikiText(true);
  
                  newComment.setParent(d);
  
                  em.persist(newComment);
  
                  em.flush();
                  em.clear();
  
                  List<Object[]> result = queryComments(d, em);
  
                  assert result.size() == 7;
  
                  Object[] one = result.get(0);
                  assert one[0].equals(1l);
                  assert one[1].equals(10l);
                  assert one[2].equals(1l);
                  assert one[3].equals(8l);
                  assert one[4].equals(10l);
  
                  Object[] two = result.get(1);
                  assert two[0].equals(2l);
                  assert two[1].equals(11l);
                  assert two[2].equals(2l);
                  assert two[3].equals(3l);
                  assert two[4].equals(10l);
  
                  Object[] three = result.get(2);
                  assert three[0].equals(2l);
                  assert three[1].equals(12l);
                  assert three[2].equals(4l);
                  assert three[3].equals(7l);
                  assert three[4].equals(10l);
  
                  Object[] four = result.get(3);
                  assert four[0].equals(3l);
                  assert four[1].equals(13l);
                  assert four[2].equals(5l);
                  assert four[3].equals(6l);
                  assert four[4].equals(10l);
  
                  Object[] five = result.get(4);
                  assert five[0].equals(1l);
                  assert five[1].equals(14l);
                  assert five[2].equals(1l);
                  assert five[3].equals(4l);
                  assert five[4].equals(14l);
  
                  Object[] six = result.get(5);
                  assert six[0].equals(2l);
                  assert six[1].equals(15l);
                  assert six[2].equals(2l);
                  assert six[3].equals(3l);
                  assert six[4].equals(14l);
  
                  Object[] seven = result.get(6);
                  assert seven[0].equals(1l);
                  assert seven[1].equals(newComment.getId());
                  assert seven[2].equals(1l);
                  assert seven[3].equals(2l);
                  assert seven[4].equals(newComment.getId());
  
              }
          }.run();
      }
  
  
      @Test
      public void findCommentParent() throws Exception {
          new FacesRequest() {
  
              protected void invokeApplication() throws Exception {
                  EntityManager em = (EntityManager) getInstance("restrictedEntityManager");
                  WikiComment comment  = (WikiComment)
                          em.createQuery("select c from WikiComment c where c.id = :id")
                                  .setParameter("id", 13l)
                                  .getSingleResult();
                  assert comment.getSubject().equals("Four");
                  assert comment.getParentDocument().getId().equals(6l);
              }
          }.run();
      }
  
      private List<Object[]> queryComments(WikiDocument doc, EntityManager em) {
          String query =
              "select count(c1.id) as nslevel, c1.id, c1.nodeInfo.nsLeft, c1.nodeInfo.nsRight, c1.nodeInfo.nsThread " +
              " from WikiComment c1, WikiComment c2 " +
              " where c1.nodeInfo.nsThread = c2.nodeInfo.nsThread" +
              " and c2.nodeInfo.nsThread in (select c3.nodeInfo.nsThread from WikiComment c3 where c3.parent = :doc)" +
              " and c1.nodeInfo.nsLeft between c2.nodeInfo.nsLeft and c2.nodeInfo.nsRight" +
              " group by c1.id, c1.nodeInfo.nsLeft, c1.nodeInfo.nsRight, c1.nodeInfo.nsThread" +
              " order by c1.nodeInfo.nsThread asc, c1.nodeInfo.nsLeft asc";
          return em.createQuery(query)
                  .setParameter("doc", doc)
                  .getResultList();
      }
  
  }
  
  
  1.1      date: 2007/12/19 04:29:24;  author: cbauer;  state: Exp;jboss-seam/examples/wiki/src/test/org/jboss/seam/wiki/test/model/DocumentTests.java
  
  Index: DocumentTests.java
  ===================================================================
  /*
   * JBoss, Home of Professional Open Source
   *
   * Distributable under LGPL license.
   * See terms of license at gnu.org.
   */
  package org.jboss.seam.wiki.test.model;
  
  import org.dbunit.operation.DatabaseOperation;
  import org.jboss.seam.wiki.core.model.User;
  import org.jboss.seam.wiki.core.model.WikiDirectory;
  import org.jboss.seam.wiki.core.model.WikiDocument;
  import org.jboss.seam.wiki.test.util.DBUnitSeamTest;
  import org.testng.annotations.Test;
  
  import javax.persistence.EntityManager;
  
  public class DocumentTests extends DBUnitSeamTest {
  
      protected void prepareDBUnitOperations() {
          beforeTestOperations.add(
                  new DataSetOperation("org/jboss/seam/wiki/test/WikiBaseData.dbunit.xml", DatabaseOperation.CLEAN_INSERT)
          );
      }
  
      @Test
      public void loadDocumentById() throws Exception {
          new FacesRequest() {
  
              protected void invokeApplication() throws Exception {
                  EntityManager em = (EntityManager) getInstance("restrictedEntityManager");
                  WikiDocument d = (WikiDocument)
                          em.createQuery("select d from WikiDocument d where d.id = :id")
                                  .setParameter("id", 6l)
                                  .getSingleResult();
                  assert d.getName().equals("One");
              }
          }.run();
      }
  
      @Test
      public void updateDocumentById() throws Exception {
          new FacesRequest() {
  
              protected void invokeApplication() throws Exception {
                  EntityManager em = (EntityManager) getInstance("restrictedEntityManager");
                  WikiDocument d = (WikiDocument)
                          em.createQuery("select d from WikiDocument d where d.id = :id")
                                  .setParameter("id", 6l)
                                  .getSingleResult();
                  d.setName("One2");
                  em.flush();
  
                  em.clear();
                  d = (WikiDocument)
                          em.createQuery("select d from WikiDocument d where d.id = :id")
                                  .setParameter("id", 6l)
                                  .getSingleResult();
                  assert d.getName().equals("One2");
                  assert d.getLastModifiedBy() != null;
                  assert d.getLastModifiedOn() != null;
              }
          }.run();
      }
  
      @Test
      public void deleteDocumentById() throws Exception {
          new FacesRequest() {
  
              protected void invokeApplication() throws Exception {
                  EntityManager em = (EntityManager) getInstance("restrictedEntityManager");
  
                  WikiDocument d = (WikiDocument)
                          em.createQuery("select d from WikiDocument d left join fetch d.incomingLinks where d.id = :id")
                                  .setParameter("id", 8l)
                                  .getSingleResult();
                  assert d.getIncomingLinks().size() == 1;
  
                  em.clear();
  
                  d = (WikiDocument)
                          em.createQuery("select d from WikiDocument d left join fetch d.incomingLinks where d.id = :id")
                                  .setParameter("id", 9l)
                                  .getSingleResult();
                  assert d.getIncomingLinks().size() == 1;
  
                  em.clear();
  
                  d = (WikiDocument)
                          em.createQuery("select d from WikiDocument d where d.id = :id")
                                  .setParameter("id", 7l)
                                  .getSingleResult();
  
                  assert d.getOutgoingLinks().size() == 2;
  
                  em.remove(d);
                  em.flush();
  
                  try {
                      d = null;
                      d = (WikiDocument)
                              em.createQuery("select d from WikiDocument d where d.id = :id")
                                      .setParameter("id", 7l)
                                      .getSingleResult();
                  } catch (Exception ex) {} finally {
                      assert d == null;
                  }
  
                  em.clear();
  
                  d = (WikiDocument)
                          em.createQuery("select d from WikiDocument d left join fetch d.incomingLinks where d.id = :id")
                                  .setParameter("id", 8l)
                                  .getSingleResult();
                  assert d.getIncomingLinks().size() == 0;
  
                  em.clear();
  
                  d = (WikiDocument)
                          em.createQuery("select d from WikiDocument d left join fetch d.incomingLinks where d.id = :id")
                                  .setParameter("id", 9l)
                                  .getSingleResult();
                  assert d.getIncomingLinks().size() == 0;
  
              }
          }.run();
      }
  
      @Test
      public void insertDocumentById() throws Exception {
          new FacesRequest() {
  
              protected void invokeApplication() throws Exception {
                  EntityManager em = (EntityManager) getInstance("restrictedEntityManager");
                  WikiDirectory d = (WikiDirectory)
                          em.createQuery("select d from WikiDirectory d where d.id = :id")
                                  .setParameter("id", 3l)
                                  .getSingleResult();
  
                  WikiDocument newDoc = new WikiDocument();
                  newDoc.setName("Four");
                  newDoc.setWikiname("Four");
                  newDoc.setAreaNumber(d.getAreaNumber());
                  newDoc.setCreatedBy(em.find(User.class, 1l));
                  newDoc.setContent("Testdocument Four");
                  newDoc.setParent(d);
  
                  em.persist(newDoc);
                  em.flush();
  
                  em.clear();
                  WikiDocument doc = (WikiDocument)
                          em.createQuery("select d from WikiDocument d where d.id = :id")
                                  .setParameter("id", newDoc.getId())
                                  .getSingleResult();
                  assert doc.getName().equals("Four");
                  assert doc.getParent().getId().equals(d.getId());
                  assert doc.getAreaNumber().equals(d.getAreaNumber());
                  assert doc.getLastModifiedBy() == null;
                  assert doc.getLastModifiedOn() == null;
              }
          }.run();
      }
  
  }
  
  
  
  1.1      date: 2007/12/19 04:29:24;  author: cbauer;  state: Exp;jboss-seam/examples/wiki/src/test/org/jboss/seam/wiki/test/model/DirectoryTests.java
  
  Index: DirectoryTests.java
  ===================================================================
  /*
   * JBoss, Home of Professional Open Source
   *
   * Distributable under LGPL license.
   * See terms of license at gnu.org.
   */
  package org.jboss.seam.wiki.test.model;
  
  import org.dbunit.operation.DatabaseOperation;
  import org.jboss.seam.wiki.core.model.User;
  import org.jboss.seam.wiki.core.model.WikiDirectory;
  import org.jboss.seam.wiki.test.util.DBUnitSeamTest;
  import org.testng.annotations.Test;
  
  import javax.persistence.EntityManager;
  
  public class DirectoryTests extends DBUnitSeamTest {
  
      protected void prepareDBUnitOperations() {
          beforeTestOperations.add(
                  new DataSetOperation("org/jboss/seam/wiki/test/WikiBaseData.dbunit.xml", DatabaseOperation.CLEAN_INSERT)
          );
      }
  
      @Test
      public void loadDirectoryById() throws Exception {
          new FacesRequest() {
  
              protected void invokeApplication() throws Exception {
                  EntityManager em = (EntityManager) getInstance("restrictedEntityManager");
                  WikiDirectory d = (WikiDirectory)
                          em.createQuery("select d from WikiDirectory d where d.id = :id")
                                  .setParameter("id", 1l)
                                  .getSingleResult();
                  assert d.getName().equals("AAA");
                  assert d.getNodeInfo().getNsLeft().equals(1l);
                  assert d.getNodeInfo().getNsRight().equals(999l);
              }
          }.run();
      }
  
      @Test
      public void updateDirectoryById() throws Exception {
          new FacesRequest() {
  
              protected void invokeApplication() throws Exception {
                  EntityManager em = (EntityManager) getInstance("restrictedEntityManager");
                  WikiDirectory d = (WikiDirectory)
                          em.createQuery("select d from WikiDirectory d where d.id = :id")
                                  .setParameter("id", 1l)
                                  .getSingleResult();
                  d.setName("AAA2");
                  em.flush();
  
                  em.clear();
                  d = (WikiDirectory)
                          em.createQuery("select d from WikiDirectory d where d.id = :id")
                                  .setParameter("id", 1l)
                                  .getSingleResult();
                  assert d.getName().equals("AAA2");
                  assert d.getNodeInfo().getNsLeft().equals(1l);
                  assert d.getNodeInfo().getNsRight().equals(999l);
              }
          }.run();
      }
  
      @Test
      public void deleteDirectoryById() throws Exception {
          new FacesRequest() {
  
              protected void invokeApplication() throws Exception {
                  EntityManager em = (EntityManager) getInstance("restrictedEntityManager");
                  WikiDirectory d = (WikiDirectory)
                          em.createQuery("select d from WikiDirectory d where d.id = :id")
                                  .setParameter("id", 4l)
                                  .getSingleResult();
                  em.remove(d);
                  em.flush();
  
                  em.clear();
                  d = (WikiDirectory)
                          em.createQuery("select d from WikiDirectory d where d.id = :id")
                                  .setParameter("id", 1l)
                                  .getSingleResult();
                  assert d.getName().equals("AAA");
                  assert d.getNodeInfo().getNsLeft().equals(1l);
                  assert d.getNodeInfo().getNsRight().equals(997l);
  
                  em.clear();
                  d = (WikiDirectory)
                          em.createQuery("select d from WikiDirectory d where d.id = :id")
                                  .setParameter("id", 3l)
                                  .getSingleResult();
                  assert d.getName().equals("CCC");
                  assert d.getNodeInfo().getNsLeft().equals(4l);
                  assert d.getNodeInfo().getNsRight().equals(7l);
  
                  em.clear();
                  d = (WikiDirectory)
                          em.createQuery("select d from WikiDirectory d where d.id = :id")
                                  .setParameter("id", 5l)
                                  .getSingleResult();
                  assert d.getName().equals("EEE");
                  assert d.getNodeInfo().getNsLeft().equals(5l);
                  assert d.getNodeInfo().getNsRight().equals(6l);
              }
          }.run();
      }
  
      @Test
      public void deleteDirectoryTreeById() throws Exception {
          new FacesRequest() {
  
              protected void invokeApplication() throws Exception {
                  EntityManager em = (EntityManager) getInstance("restrictedEntityManager");
                  WikiDirectory d = (WikiDirectory)
                          em.createQuery("select d from WikiDirectory d where d.id = :id")
                                  .setParameter("id", 3l)
                                  .getSingleResult();
                  em.remove(d);
                  em.flush();
  
                  em.clear();
                  d = (WikiDirectory)
                          em.createQuery("select d from WikiDirectory d where d.id = :id")
                                  .setParameter("id", 1l)
                                  .getSingleResult();
                  assert d.getName().equals("AAA");
                  assert d.getNodeInfo().getNsLeft().equals(1l);
                  assert d.getNodeInfo().getNsRight().equals(993l);
  
                  em.clear();
                  d = (WikiDirectory)
                          em.createQuery("select d from WikiDirectory d where d.id = :id")
                                  .setParameter("id", 2l)
                                  .getSingleResult();
                  assert d.getName().equals("BBB");
                  assert d.getNodeInfo().getNsLeft().equals(2l);
                  assert d.getNodeInfo().getNsRight().equals(3l);
  
                  em.clear();
                  try {
                      d = null;
                      d = (WikiDirectory)
                              em.createQuery("select d from WikiDirectory d where d.id = :id")
                                      .setParameter("id", 3l)
                                      .getSingleResult();
                  } catch (Exception ex) {} finally {
                      assert d == null;
                  }
  
                  em.clear();
                  try {
                      d = null;
                      d = (WikiDirectory)
                              em.createQuery("select d from WikiDirectory d where d.id = :id")
                                      .setParameter("id", 4l)
                                      .getSingleResult();
                  } catch (Exception ex) {} finally {
                      assert d == null;
                  }
  
                  em.clear();
                  try {
                      d = null;
                      d = (WikiDirectory)
                              em.createQuery("select d from WikiDirectory d where d.id = :id")
                                      .setParameter("id", 5l)
                                      .getSingleResult();
                  } catch (Exception ex) {} finally {
                      assert d == null;
                  }
              }
          }.run();
      }
  
      @Test
      public void insertDirectoryById() throws Exception {
          new FacesRequest() {
  
              protected void invokeApplication() throws Exception {
                  EntityManager em = (EntityManager) getInstance("restrictedEntityManager");
                  WikiDirectory d = (WikiDirectory)
                          em.createQuery("select d from WikiDirectory d where d.id = :id")
                                  .setParameter("id", 3l)
                                  .getSingleResult();
  
                  WikiDirectory newDir = new WikiDirectory();
                  newDir.setName("FFF");
                  newDir.setWikiname("FFF");
                  newDir.setAreaNumber(d.getAreaNumber());
                  newDir.setCreatedBy(em.find(User.class, 1l));
                  newDir.setParent(d);
  
                  em.persist(newDir);
                  em.flush();
  
                  em.clear();
                  d = (WikiDirectory)
                          em.createQuery("select d from WikiDirectory d where d.id = :id")
                                  .setParameter("id", 1l)
                                  .getSingleResult();
                  assert d.getName().equals("AAA");
                  assert d.getNodeInfo().getNsLeft().equals(1l);
                  assert d.getNodeInfo().getNsRight().equals(1001l);
  
                  em.clear();
                  d = (WikiDirectory)
                          em.createQuery("select d from WikiDirectory d where d.id = :id")
                                  .setParameter("id", 3l)
                                  .getSingleResult();
                  assert d.getName().equals("CCC");
                  assert d.getNodeInfo().getNsLeft().equals(4l);
                  assert d.getNodeInfo().getNsRight().equals(11l);
  
                  em.clear();
                  d = (WikiDirectory)
                          em.createQuery("select d from WikiDirectory d where d.id = :id")
                                  .setParameter("id", newDir.getId())
                                  .getSingleResult();
                  assert d.getName().equals("FFF");
                  assert d.getNodeInfo().getNsLeft().equals(9l);
                  assert d.getNodeInfo().getNsRight().equals(10l);
              }
          }.run();
      }
  
  
  
  }
  
  
  
  1.1      date: 2007/12/19 04:29:24;  author: cbauer;  state: Exp;jboss-seam/examples/wiki/src/test/org/jboss/seam/wiki/test/model/MenuTests.java
  
  Index: MenuTests.java
  ===================================================================
  /*
   * JBoss, Home of Professional Open Source
   *
   * Distributable under LGPL license.
   * See terms of license at gnu.org.
   */
  package org.jboss.seam.wiki.test.model;
  
  import org.dbunit.operation.DatabaseOperation;
  import org.jboss.seam.wiki.core.model.WikiDirectory;
  import org.jboss.seam.wiki.core.model.WikiMenuItem;
  import org.jboss.seam.wiki.test.util.DBUnitSeamTest;
  import org.testng.annotations.Test;
  
  import javax.persistence.EntityManager;
  import java.util.List;
  
  public class MenuTests extends DBUnitSeamTest {
  
      protected void prepareDBUnitOperations() {
          beforeTestOperations.add(
                  new DataSetOperation("org/jboss/seam/wiki/test/WikiBaseData.dbunit.xml", DatabaseOperation.CLEAN_INSERT)
          );
      }
  
      @Test
      public void findAllMenuItems() throws Exception {
          new FacesRequest() {
  
              protected void invokeApplication() throws Exception {
  
                  EntityManager em = (EntityManager) getInstance("restrictedEntityManager");
  
                  WikiDirectory root = (WikiDirectory)
                          em.createQuery("select d from WikiDirectory d where d.id = :id")
                                  .setParameter("id", 1l)
                                  .getSingleResult();
  
                  List<Object[]> result = queryMenuItems(root, em);
  
                  assert result.size() == 3;
  
                  Object[] one = result.get(0);
                  assert one[0].equals(2l);
                  assert one[1].equals(2l);
                  assert one[2].equals(0l);
  
                  Object[] two = result.get(1);
                  assert two[0].equals(2l);
                  assert two[1].equals(3l);
                  assert two[2].equals(1l);
  
                  Object[] three = result.get(2);
                  assert three[0].equals(3l);
                  assert three[1].equals(4l);
                  assert three[2].equals(0l);
  
              }
          }.run();
      }
  
  
      @Test
      public void removeMenuItem() throws Exception {
          new FacesRequest() {
  
              protected void invokeApplication() throws Exception {
  
                  EntityManager em = (EntityManager) getInstance("restrictedEntityManager");
  
                  WikiDirectory d = (WikiDirectory)
                          em.createQuery("select d from WikiDirectory d where d.id = :id")
                                  .setParameter("id", 1l)
                                  .getSingleResult();
  
                  List<WikiMenuItem> menuItems =
                          em.createQuery("select m from WikiMenuItem m where m.id in (select d.id from WikiDirectory d where d.parent = :parent)")
                          .setParameter("parent", d).getResultList();
  
                  assert menuItems.size() == 2;
  
                  WikiMenuItem removedItem = menuItems.remove(0);
                  em.remove(removedItem);
                  for (int i = 0; i<menuItems.size(); i++) {
                      WikiMenuItem itm = menuItems.get(i);
                      itm.setDisplayPosition(i);
                  }
  
                  em.flush();
                  em.clear();
  
                  List<Object[]> result = queryMenuItems(d, em);
  
                  assert result.size() == 2;
  
                  Object[] one = result.get(0);
                  assert one[0].equals(2l);
                  assert one[1].equals(3l);
                  assert one[2].equals(0l);
  
                  Object[] two = result.get(1);
                  assert two[0].equals(3l);
                  assert two[1].equals(4l);
                  assert two[2].equals(0l);
  
              }
          }.run();
      }
  
  
      @Test
      public void addMenuItem() throws Exception {
          new FacesRequest() {
  
              protected void invokeApplication() throws Exception {
  
                  EntityManager em = (EntityManager) getInstance("restrictedEntityManager");
  
                  WikiDirectory root = (WikiDirectory)
                            em.createQuery("select d from WikiDirectory d where d.id = :id")
                                    .setParameter("id", 1l)
                                    .getSingleResult();
  
                  WikiDirectory d = (WikiDirectory)
                          em.createQuery("select d from WikiDirectory d where d.id = :id")
                                  .setParameter("id", 5l)
                                  .getSingleResult();
  
                  List<WikiMenuItem> menuItems =
                          em.createQuery("select m from WikiMenuItem m where m.id in (select d.id from WikiDirectory d where d.parent = :parent)")
                          .setParameter("parent", d.getParent()).getResultList();
  
                  WikiMenuItem newMenuItem = new WikiMenuItem(d);
                  menuItems.add(newMenuItem);
  
                  assert menuItems.size() == 2;
  
                  for (int i = 0; i<menuItems.size(); i++) {
                      WikiMenuItem itm = menuItems.get(i);
                      itm.setDisplayPosition(i);
                  }
  
                  em.persist(newMenuItem);
  
                  em.flush();
                  em.clear();
  
                  List<Object[]> result = queryMenuItems(root, em);
  
                  assert result.size() == 4;
  
                  Object[] one = result.get(0);
                  assert one[0].equals(2l);
                  assert one[1].equals(2l);
                  assert one[2].equals(0l);
  
                  Object[] two = result.get(1);
                  assert two[0].equals(2l);
                  assert two[1].equals(3l);
                  assert two[2].equals(1l);
  
                  Object[] three = result.get(2);
                  assert three[0].equals(3l);
                  assert three[1].equals(4l);
                  assert three[2].equals(0l);
  
                  Object[] four = result.get(3);
                  assert four[0].equals(3l);
                  assert four[1].equals(5l);
                  assert four[2].equals(1l);
  
              }
          }.run();
      }
  
      private List<Object[]> queryMenuItems(WikiDirectory start, EntityManager em) {
          String query =
              "select count(d1.id), d1.id, m.displayPosition" +
              " from WikiDirectory d1, WikiDirectory d2, WikiMenuItem m" +
              " where d1.nodeInfo.nsThread = :thread and d2.nodeInfo.nsThread = d1.nodeInfo.nsThread" +
              " and d1.nodeInfo.nsLeft between d2.nodeInfo.nsLeft and d2.nodeInfo.nsRight" +
              " and d2.nodeInfo.nsLeft >= :left and d2.nodeInfo.nsRight <= :right" +
              " and m.id = d1.id" +
              " group by d1.id, m.displayPosition";
          return em.createQuery(query)
                  .setParameter("thread", start.getNodeInfo().getNsThread())
                  .setParameter("left", start.getNodeInfo().getNsLeft())
                  .setParameter("right", start.getNodeInfo().getNsRight())
                  .getResultList();
      }
  
  }
  
  
  
  1.1      date: 2007/12/19 04:29:24;  author: cbauer;  state: Exp;jboss-seam/examples/wiki/src/test/org/jboss/seam/wiki/test/model/URLTests.java
  
  Index: URLTests.java
  ===================================================================
  /*
   * JBoss, Home of Professional Open Source
   *
   * Distributable under LGPL license.
   * See terms of license at gnu.org.
   */
  package org.jboss.seam.wiki.test.model;
  
  import org.dbunit.operation.DatabaseOperation;
  import org.jboss.seam.wiki.core.model.*;
  import org.jboss.seam.wiki.test.util.DBUnitSeamTest;
  import org.testng.annotations.Test;
  
  import javax.persistence.EntityManager;
  
  public class URLTests extends DBUnitSeamTest {
  
      protected void prepareDBUnitOperations() {
          beforeTestOperations.add(
              new DataSetOperation("org/jboss/seam/wiki/test/WikiBaseData.dbunit.xml", DatabaseOperation.CLEAN_INSERT)
          );
          beforeTestOperations.add(
              new DataSetOperation("org/jboss/seam/wiki/test/UploadData.dbunit.xml", DatabaseOperation.INSERT)
          );
      }
  
      @Test
      public void documentURL() throws Exception {
          new FacesRequest() {
  
              protected void invokeApplication() throws Exception {
                  EntityManager em = (EntityManager) getInstance("restrictedEntityManager");
                  WikiDocument d = (WikiDocument)
                          em.createQuery("select d from WikiDocument d where d.id = :id")
                                  .setParameter("id", 6l)
                                  .getSingleResult();
  
                  assert d.getPermURL(".lace").equals("/6.lace");
                  assert d.getWikiURL().equals("/CCC/One");
              }
          }.run();
      }
  
      @Test
      public void directoryURL() throws Exception {
          new FacesRequest() {
  
              protected void invokeApplication() throws Exception {
                  EntityManager em = (EntityManager) getInstance("restrictedEntityManager");
                  WikiDirectory d = (WikiDirectory)
                          em.createQuery("select d from WikiDirectory d where d.id = :id")
                                  .setParameter("id", 3l)
                                  .getSingleResult();
  
                  assert d.getPermURL(".lace").equals("/3.lace");
                  assert d.getWikiURL().equals("/CCC");
  
                  d = (WikiDirectory)
                          em.createQuery("select d from WikiDirectory d where d.id = :id")
                                  .setParameter("id", 4l)
                                  .getSingleResult();
  
                  assert d.getPermURL(".lace").equals("/4.lace");
                  assert d.getWikiURL().equals("/CCC/DDD");
  
                  d = (WikiDirectory)
                          em.createQuery("select d from WikiDirectory d where d.id = :id")
                                  .setParameter("id", 1l)
                                  .getSingleResult();
  
                  assert d.getPermURL(".lace").equals("/1.lace");
                  assert d.getWikiURL().equals("/");
  
              }
          }.run();
      }
  
      @Test
      public void commentURL() throws Exception {
          new FacesRequest() {
  
              protected void invokeApplication() throws Exception {
                  EntityManager em = (EntityManager) getInstance("restrictedEntityManager");
                  WikiComment c = (WikiComment)
                          em.createQuery("select c from WikiComment c where c.id = :id")
                                  .setParameter("id", 10l)
                                  .getSingleResult();
  
                  assert c.getPermURL(".lace").equals("/6.lace#comment10");
                  assert c.getWikiURL().equals("/CCC/One#comment10");
  
              }
          }.run();
      }
  
  
      @Test
      public void uploadURL() throws Exception {
          new FacesRequest() {
  
              protected void invokeApplication() throws Exception {
                  EntityManager em = (EntityManager) getInstance("restrictedEntityManager");
                  WikiUpload u = (WikiUpload)
                          em.createQuery("select u from WikiUpload u where u.id = :id")
                                  .setParameter("id", 30l)
                                  .getSingleResult();
  
                  assert u.getPermURL(".lace").equals("/servlets/files/download.seam?fileId=30");
                  assert u.getWikiURL().equals("/servlets/files/download.seam?fileId=30");
  
              }
          }.run();
      }
  
  }
  
  
  



More information about the jboss-cvs-commits mailing list