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

Christian Bauer christian at hibernate.org
Wed Jan 9 10:59:24 EST 2008


  User: cbauer  
  Date: 08/01/09 10:59:24

  Modified:    examples/wiki/src/test/org/jboss/seam/wiki/test/editing    
                        ClipboardTests.java BasicNodeOperations.java
                        Commenting.java
  Added:       examples/wiki/src/test/org/jboss/seam/wiki/test/editing    
                        TrashTests.java
  Log:
  JBSEAM-2397 and JBSEAM-1883 - implemented trashcan feature and more reliable update of 2nd level cache and lucene index
  
  Revision  Changes    Path
  1.2       +7 -7      jboss-seam/examples/wiki/src/test/org/jboss/seam/wiki/test/editing/ClipboardTests.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: ClipboardTests.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/test/org/jboss/seam/wiki/test/editing/ClipboardTests.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- ClipboardTests.java	20 Dec 2007 12:23:05 -0000	1.1
  +++ ClipboardTests.java	9 Jan 2008 15:59:24 -0000	1.2
  @@ -60,7 +60,7 @@
                   Clipboard clipboard = (Clipboard)getInstance("clipboard");
   
                   assert clipboard.getItems().size() == 1;
  -                assert clipboard.getItemsAsList().get(0).getId().equals(9l);
  +                assert clipboard.getItemsAsList().get(0).equals(9l);
                   assert !clipboard.isCut(9l);
               }
           }.run();
  @@ -144,7 +144,7 @@
                   Clipboard clipboard = (Clipboard)getInstance("clipboard");
   
                   assert clipboard.getItems().size() == 1;
  -                assert clipboard.getItemsAsList().get(0).getId().equals(30l);
  +                assert clipboard.getItemsAsList().get(0).equals(30l);
                   assert !clipboard.isCut(30l);
               }
           }.run();
  @@ -319,7 +319,7 @@
                   Clipboard clipboard = (Clipboard)getInstance("clipboard");
   
                   assert clipboard.getItems().size() == 1;
  -                assert clipboard.getItemsAsList().get(0).getId().equals(9l);
  +                assert clipboard.getItemsAsList().get(0).equals(9l);
                   assert clipboard.isCut(9l);
               }
           }.run();
  @@ -399,7 +399,7 @@
                   Clipboard clipboard = (Clipboard)getInstance("clipboard");
   
                   assert clipboard.getItems().size() == 1;
  -                assert clipboard.getItemsAsList().get(0).getId().equals(30l);
  +                assert clipboard.getItemsAsList().get(0).equals(30l);
                   assert clipboard.isCut(30l);
               }
           }.run();
  @@ -578,7 +578,7 @@
                   Clipboard clipboard = (Clipboard)getInstance("clipboard");
   
                   assert clipboard.getItems().size() == 1;
  -                assert clipboard.getItemsAsList().get(0).getId().equals(9l);
  +                assert clipboard.getItemsAsList().get(0).equals(9l);
                   assert clipboard.isCut(9l);
               }
           }.run();
  @@ -656,7 +656,7 @@
                   Clipboard clipboard = (Clipboard)getInstance("clipboard");
   
                   assert clipboard.getItems().size() == 1;
  -                assert clipboard.getItemsAsList().get(0).getId().equals(9l);
  +                assert clipboard.getItemsAsList().get(0).equals(9l);
                   assert !clipboard.isCut(9l);
               }
           }.run();
  @@ -730,7 +730,7 @@
                   Clipboard clipboard = (Clipboard)getInstance("clipboard");
   
                   assert clipboard.getItems().size() == 1;
  -                assert clipboard.getItemsAsList().get(0).getId().equals(6l);
  +                assert clipboard.getItemsAsList().get(0).equals(6l);
                   assert clipboard.isCut(6l);
               }
           }.run();
  
  
  
  1.6       +8 -42     jboss-seam/examples/wiki/src/test/org/jboss/seam/wiki/test/editing/BasicNodeOperations.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: BasicNodeOperations.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/test/org/jboss/seam/wiki/test/editing/BasicNodeOperations.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -b -r1.5 -r1.6
  --- BasicNodeOperations.java	19 Dec 2007 04:29:24 -0000	1.5
  +++ BasicNodeOperations.java	9 Jan 2008 15:59:24 -0000	1.6
  @@ -7,17 +7,15 @@
   package org.jboss.seam.wiki.test.editing;
   
   import org.dbunit.operation.DatabaseOperation;
  -import org.hibernate.StatelessSession;
   import org.hibernate.Session;
   import org.hibernate.ejb.HibernateEntityManagerFactory;
   import org.jboss.seam.core.Conversation;
  -import org.jboss.seam.faces.Redirect;
   import org.jboss.seam.wiki.core.action.DirectoryHome;
   import org.jboss.seam.wiki.core.action.DocumentHome;
   import org.jboss.seam.wiki.core.model.WikiDirectory;
   import org.jboss.seam.wiki.core.model.WikiDocument;
  -import org.jboss.seam.wiki.core.model.WikiNode;
   import org.jboss.seam.wiki.test.util.DBUnitSeamTest;
  +import org.jboss.seam.faces.Redirect;
   import org.testng.annotations.Test;
   
   public class BasicNodeOperations extends DBUnitSeamTest {
  @@ -26,42 +24,9 @@
           beforeTestOperations.add(
                   new DataSetOperation("org/jboss/seam/wiki/test/WikiBaseData.dbunit.xml", DatabaseOperation.CLEAN_INSERT)
           );
  -    }
  -
  -    @Test
  -    public void deleteDocument() throws Exception {
  -
  -        final String conversationId = new NonFacesRequest("/docEdit_d.xhtml") {
  -            protected void beforeRequest() {
  -                setParameter("documentId", "6");
  -                setParameter("parentDirectoryId", "3");
  -            }
  -        }.run();
  -
  -        new FacesRequest("/docEdit_d.xhtml") {
  -
  -            protected void beforeRequest() {
  -                setParameter("cid", conversationId);
  -            }
  -
  -            protected void invokeApplication() throws Exception {
  -                assert Conversation.instance().isLongRunning();
  -
  -                DocumentHome docHome = (DocumentHome)getInstance("documentHome");
  -                assert docHome.getInstance().getId().equals(6l);
  -
  -                assert invokeMethod("#{documentHome.remove}").equals("removed");
  -
  -                // TODO: SeamTest doesn't do navigation but we don't want to have /docEdit_d.xhtml in the RENDER RESPONSE
  -                Conversation.instance().end();
  -                Redirect.instance().setViewId("/dirDisplay.xhtml");
  -                Redirect.instance().execute();
  -
  -                assert checkNestedSetNodeInDatabase(3l, 4, 9);
  -                assert !checkDocumentInDatabase(6l);
  -            }
  -
  -        }.run();
  +        beforeTestOperations.add(
  +                new DataSetOperation("org/jboss/seam/wiki/test/HelpDocuments.dbunit.xml", DatabaseOperation.INSERT)
  +        );
       }
   
       @Test
  @@ -69,8 +34,7 @@
   
           final String conversationId = new NonFacesRequest("/dirEdit_d.xhtml") {
               protected void beforeRequest() {
  -                setParameter("directoryId", "2");
  -                setParameter("parentDirectoryId", "1");
  +                setParameter("directoryId", "5");
               }
           }.run();
   
  @@ -81,6 +45,8 @@
               }
   
               protected void invokeApplication() throws Exception {
  +                DirectoryHome dirHome = (DirectoryHome)getInstance("directoryHome");
  +                assert dirHome.getInstance().getId().equals(5l); // Init!
                   assert invokeMethod("#{directoryHome.remove}").equals("removed");
   
                   // TODO: SeamTest doesn't do navigation but we don't want to have /dirEdit_d.xhtml in the RENDER RESPONSE
  @@ -89,7 +55,7 @@
                   Redirect.instance().execute();
   
                   assert checkNestedSetNodeInDatabase(1l, 1, 997);
  -                assert !checkDirectoryInDatabase(2l);
  +                assert !checkDirectoryInDatabase(5l);
               }
   
           }.run();
  
  
  
  1.2       +9 -8      jboss-seam/examples/wiki/src/test/org/jboss/seam/wiki/test/editing/Commenting.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: Commenting.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/test/org/jboss/seam/wiki/test/editing/Commenting.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -b -r1.1 -r1.2
  --- Commenting.java	19 Dec 2007 04:29:24 -0000	1.1
  +++ Commenting.java	9 Jan 2008 15:59:24 -0000	1.2
  @@ -12,6 +12,7 @@
   import org.jboss.seam.wiki.core.model.User;
   import org.jboss.seam.wiki.core.model.WikiDocument;
   import org.jboss.seam.wiki.core.model.WikiDirectory;
  +import org.jboss.seam.wiki.core.model.WikiComment;
   import org.jboss.seam.wiki.core.dao.WikiNodeDAO;
   import org.jboss.seam.wiki.test.util.DBUnitSeamTest;
   import org.jboss.seam.contexts.Contexts;
  @@ -32,7 +33,6 @@
   
               protected void beforeRequest() {
                   setParameter("documentId", "6");
  -                setParameter("parentDirectoryId", "3");
               }
   
               protected void updateModelValues() throws Exception {
  @@ -86,7 +86,6 @@
   
               protected void beforeRequest() {
                   setParameter("documentId", "6");
  -                setParameter("parentDirectoryId", "3");
               }
   
               protected void updateModelValues() throws Exception {
  @@ -94,18 +93,20 @@
               }
   
               protected void invokeApplication() throws Exception {
  -                invokeMethod("#{commentHome.remove(15)}");
  +                invokeMethod("#{commentHome.remove(12)}");
               }
   
               protected void renderResponse() throws Exception {
                   CommentQuery commentQuery = (CommentQuery)getInstance("commentQuery");
  -                assert commentQuery.getComments().size() == 5;
  -
  +                assert commentQuery.getComments().size() == 4;
                   assert commentQuery.getComments().get(0).getId().equals(10l);
  +                assert commentQuery.getComments().get(0).getLevel().equals(1l);
                   assert commentQuery.getComments().get(1).getId().equals(11l);
  -                assert commentQuery.getComments().get(2).getId().equals(12l);
  -                assert commentQuery.getComments().get(3).getId().equals(13l);
  -                assert commentQuery.getComments().get(4).getId().equals(14l);
  +                assert commentQuery.getComments().get(1).getLevel().equals(2l);
  +                assert commentQuery.getComments().get(2).getId().equals(14l);
  +                assert commentQuery.getComments().get(2).getLevel().equals(1l);
  +                assert commentQuery.getComments().get(3).getId().equals(15l);
  +                assert commentQuery.getComments().get(3).getLevel().equals(2l);
               }
   
           }.run();
  
  
  
  1.1      date: 2008/01/09 15:59:24;  author: cbauer;  state: Exp;jboss-seam/examples/wiki/src/test/org/jboss/seam/wiki/test/editing/TrashTests.java
  
  Index: TrashTests.java
  ===================================================================
  /*
   * JBoss, Home of Professional Open Source
   *
   * Distributable under LGPL license.
   * See terms of license at gnu.org.
   */
  package org.jboss.seam.wiki.test.editing;
  
  import org.dbunit.operation.DatabaseOperation;
  import org.jboss.seam.wiki.test.util.DBUnitSeamTest;
  import org.jboss.seam.wiki.core.action.DocumentHome;
  import org.jboss.seam.wiki.core.action.DirectoryHome;
  import org.jboss.seam.wiki.core.action.UploadHome;
  import org.jboss.seam.wiki.core.action.PreferenceEditor;
  import org.jboss.seam.wiki.core.model.WikiDirectory;
  import org.jboss.seam.wiki.core.model.WikiDocument;
  import org.jboss.seam.wiki.core.model.WikiFeed;
  import org.jboss.seam.wiki.core.model.FeedEntry;
  import org.jboss.seam.wiki.core.dao.WikiNodeDAO;
  import org.jboss.seam.wiki.core.feeds.FeedDAO;
  import org.jboss.seam.wiki.preferences.PreferenceProvider;
  import org.jboss.seam.wiki.preferences.PreferenceValue;
  import org.jboss.seam.wiki.preferences.metamodel.PreferenceRegistry;
  import org.jboss.seam.wiki.preferences.metamodel.PreferenceEntity;
  import org.testng.annotations.Test;
  
  import java.util.List;
  
  /**
   * @author Christian Bauer
   */
  public class TrashTests 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 trashDeleteDocument2() throws Exception {
  
          // Set the wikiStart to something else so we can delete this document
          loginAdmin();
  
          final String prefsConversationId = new NonFacesRequest("/adminHome_d.xhtml") {}.run();
  
          new FacesRequest("/adminHome_d.xhtml") {
  
              protected void beforeRequest() {
                  setParameter("cid", prefsConversationId);
              }
  
              protected void invokeApplication() throws Exception {
  
                  PreferenceRegistry registry = (PreferenceRegistry)getInstance("preferenceRegistry");
                  PreferenceEntity wikiEntity = registry.getPreferenceEntitiesByName().get("Wiki");
  
                  invokeMethod("#{adminHome.initPreferencesEditor}");
  
                  PreferenceEditor prefEditor = (PreferenceEditor)getInstance("preferenceEditor");
                  prefEditor.selectPreferenceEntity(wikiEntity);
              }
  
          }.run();
  
          new FacesRequest("/adminHome_d.xhtml") {
  
              protected void beforeRequest() {
                  setParameter("cid", prefsConversationId);
              }
  
              protected void invokeApplication() throws Exception {
                  PreferenceEditor prefEditor = (PreferenceEditor)getInstance("preferenceEditor");
                  List<PreferenceValue> values = prefEditor.getPreferenceValues();
                  // This is somewhat dodgy... no other way to get the value we want
                  for (PreferenceValue value : values) {
                      if (value.getPreferenceProperty().getFieldName().equals("defaultDocumentId")) {
                          value.setValue(7l);
                      }
                  }
                  assert invokeMethod("#{adminHome.update()}") == null;
              }
  
          }.run();
  
          // Now delete this document
          final String conversationId = new NonFacesRequest("/docEdit_d.xhtml") {
              protected void beforeRequest() {
                  setParameter("documentId", "6");
              }
          }.run();
  
          new FacesRequest("/docEdit_d.xhtml") {
  
              protected void beforeRequest() {
                  setParameter("cid", conversationId);
              }
  
              protected void invokeApplication() throws Exception {
                  DocumentHome docHome = (DocumentHome)getInstance("documentHome");
                  assert docHome.getInstance().getId().equals(6l); // Init!
  
                  assert invokeMethod("#{documentHome.remove}").equals("removed");
              }
          }.run();
  
          loginAdmin();
  
          new NonFacesRequest("/wiki.xhtml") {
  
              protected void beforeRequest() {
                  setParameter("areaName", "Trash");
              }
  
              protected void renderResponse() throws Exception {
                  DirectoryHome dirHome = (DirectoryHome)getInstance("directoryHome");
                  assert dirHome.getInstance().getId().equals(17l); // Init!
  
                  assert dirHome.getChildNodes().size() == 1;
                  assert dirHome.getChildNodes().get(0).getId().equals(6l);
  
                  assert getRenderedViewId().equals("/dirDisplay_d.xhtml");
              }
          }.run();
  
          new FacesRequest("/dirDisplay_d.xhtml") {
  
              protected void beforeRequest() {
                  setParameter("directoryId", "17");
              }
  
              protected void invokeApplication() throws Exception {
                  DirectoryHome dirHome = (DirectoryHome)getInstance("directoryHome");
                  assert dirHome.getInstance().getId().equals(17l); // Init!
                  dirHome.emptyTrash();
              }
          }.run();
  
          new NonFacesRequest("/wiki.xhtml") {
  
              protected void beforeRequest() {
                  setParameter("areaName", "Trash");
              }
  
              protected void renderResponse() throws Exception {
                  DirectoryHome dirHome = (DirectoryHome)getInstance("directoryHome");
                  assert dirHome.getInstance().getId().equals(17l); // Init!
  
                  assert dirHome.getChildNodes().size() == 0;
  
                  WikiNodeDAO dao = (WikiNodeDAO)getInstance("wikiNodeDAO");
                  assert dao.findWikiNode(6l) == null;
  
                  assert dao.findWikiComment(10l) == null;
                  assert dao.findWikiComment(11l) == null;
                  assert dao.findWikiComment(12l) == null;
                  assert dao.findWikiComment(13l) == null;
                  assert dao.findWikiComment(14l) == null;
                  assert dao.findWikiComment(15l) == null;
  
                  assert getRenderedViewId().equals("/dirDisplay_d.xhtml");
  
                  // Comments should be gone
              }
          }.run();
      }
  
      @Test
      public void trashDeleteDocument() throws Exception {
  
          final String conversationId = new NonFacesRequest("/docEdit_d.xhtml") {
              protected void beforeRequest() {
                  setParameter("documentId", "9");
              }
          }.run();
  
          new FacesRequest("/docEdit_d.xhtml") {
  
              protected void beforeRequest() {
                  setParameter("cid", conversationId);
              }
  
              protected void invokeApplication() throws Exception {
                  DocumentHome docHome = (DocumentHome)getInstance("documentHome");
                  assert docHome.getInstance().getId().equals(9l); // Init!
  
                  assert invokeMethod("#{documentHome.remove}").equals("removed");
              }
  
              // Feed entries should be gone
              protected void renderResponse() throws Exception {
                  WikiNodeDAO nodeDAO = (WikiNodeDAO)getInstance("wikiNodeDAO");
                  WikiDocument document = nodeDAO.findWikiDocument(9l);
  
                  FeedDAO feedDAO = (FeedDAO)getInstance("feedDAO");
  
                  List<WikiFeed> feeds = feedDAO.findFeeds(document);
                  assert feeds.size() == 0;
              }
          }.run();
  
          loginAdmin();
  
          new NonFacesRequest("/wiki.xhtml") {
  
              protected void beforeRequest() {
                  setParameter("areaName", "Trash");
              }
  
              protected void renderResponse() throws Exception {
                  DirectoryHome dirHome = (DirectoryHome)getInstance("directoryHome");
                  assert dirHome.getInstance().getId().equals(17l); // Init!
  
                  assert dirHome.getChildNodes().size() == 1;
                  assert dirHome.getChildNodes().get(0).getId().equals(9l);
  
                  assert getRenderedViewId().equals("/dirDisplay_d.xhtml");
              }
          }.run();
  
          new FacesRequest("/dirDisplay_d.xhtml") {
  
              protected void beforeRequest() {
                  setParameter("directoryId", "17");
              }
  
              protected void invokeApplication() throws Exception {
                  DirectoryHome dirHome = (DirectoryHome)getInstance("directoryHome");
                  assert dirHome.getInstance().getId().equals(17l); // Init!
                  dirHome.emptyTrash();
              }
          }.run();
  
          new NonFacesRequest("/wiki.xhtml") {
  
              protected void beforeRequest() {
                  setParameter("areaName", "Trash");
              }
  
              protected void renderResponse() throws Exception {
                  DirectoryHome dirHome = (DirectoryHome)getInstance("directoryHome");
                  assert dirHome.getInstance().getId().equals(17l); // Init!
  
                  assert dirHome.getChildNodes().size() == 0;
  
                  WikiNodeDAO dao = (WikiNodeDAO)getInstance("wikiNodeDAO");
                  assert dao.findWikiNode(9l) == null;
  
                  assert getRenderedViewId().equals("/dirDisplay_d.xhtml");
  
                  // Comments should be gone
              }
          }.run();
      }
  
      @Test
      public void trashDeleteUpload() throws Exception {
  
          final String conversationId = new NonFacesRequest("/uploadEdit_d.xhtml") {
              protected void beforeRequest() {
                  setParameter("uploadId", "30");
              }
          }.run();
  
          new FacesRequest("/uploadEdit_d.xhtml") {
  
              protected void beforeRequest() {
                  setParameter("cid", conversationId);
              }
  
              protected void invokeApplication() throws Exception {
                  UploadHome uploadHome = (UploadHome)getInstance("uploadHome");
                  assert uploadHome.getInstance().getId().equals(30l); // Init!
  
                  assert invokeMethod("#{uploadHome.remove}").equals("removed");
              }
          }.run();
  
          loginAdmin();
  
          new NonFacesRequest("/wiki.xhtml") {
  
              protected void beforeRequest() {
                  setParameter("areaName", "Trash");
              }
  
              protected void renderResponse() throws Exception {
                  DirectoryHome dirHome = (DirectoryHome)getInstance("directoryHome");
                  assert dirHome.getInstance().getId().equals(17l); // Init!
  
                  assert dirHome.getChildNodes().size() == 1;
                  assert dirHome.getChildNodes().get(0).getId().equals(30l);
  
                  assert getRenderedViewId().equals("/dirDisplay_d.xhtml");
              }
          }.run();
  
          new FacesRequest("/dirDisplay_d.xhtml") {
  
              protected void beforeRequest() {
                  setParameter("directoryId", "17");
              }
  
              protected void invokeApplication() throws Exception {
                  DirectoryHome dirHome = (DirectoryHome)getInstance("directoryHome");
                  assert dirHome.getInstance().getId().equals(17l); // Init!
                  dirHome.emptyTrash();
              }
          }.run();
  
          new NonFacesRequest("/wiki.xhtml") {
  
              protected void beforeRequest() {
                  setParameter("areaName", "Trash");
              }
  
              protected void renderResponse() throws Exception {
                  DirectoryHome dirHome = (DirectoryHome)getInstance("directoryHome");
  
                  assert dirHome.getChildNodes().size() == 0;
  
                  WikiNodeDAO dao = (WikiNodeDAO)getInstance("wikiNodeDAO");
                  assert dao.findWikiNode(30l) == null;
  
                  assert getRenderedViewId().equals("/dirDisplay_d.xhtml");
              }
          }.run();
      }
  
      private void loginAdmin() throws Exception {
          new FacesRequest() {
             protected void invokeApplication() throws Exception {
                setValue("#{identity.username}", "admin");
                setValue("#{identity.password}", "admin");
                invokeAction("#{identity.login}");
                assert getValue("#{identity.loggedIn}").equals(true);
             }
          }.run();
      }
  
  }
  
  
  



More information about the jboss-cvs-commits mailing list