Package org.jboss.seam.wiki.test.dao

Source Code of org.jboss.seam.wiki.test.dao.WikiNodeDAOTests

/*
* JBoss, Home of Professional Open Source
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package org.jboss.seam.wiki.test.dao;

import org.dbunit.operation.DatabaseOperation;
import org.jboss.seam.wiki.core.dao.WikiNodeDAO;
import org.jboss.seam.wiki.core.model.*;
import org.jboss.seam.mock.DBUnitSeamTest;
import org.testng.annotations.Test;
import org.testng.Assert;

import java.util.List;

public class WikiNodeDAOTests extends DBUnitSeamTest {

    protected void prepareDBUnitOperations() {
        beforeTestOperations.add(
                new DataSetOperation("org/jboss/seam/wiki/test/WikiBaseData.dbunit.xml", DatabaseOperation.CLEAN_INSERT)
        );
    }

    @Test
    public void findDocumentById() throws Exception {
        new FacesRequest() {

            protected void invokeApplication() throws Exception {
                WikiNodeDAO dao = (WikiNodeDAO)getInstance(WikiNodeDAO.class);
                WikiDocument d = dao.findWikiDocument(6l);
                assert d.getName().equals("One");
            }
        }.run();
    }

    @Test
    public void findDefaultFile() throws Exception {
        new FacesRequest() {

            protected void invokeApplication() throws Exception {
                WikiNodeDAO dao = (WikiNodeDAO)getInstance(WikiNodeDAO.class);
                WikiDirectory dir = dao.findWikiDirectory(3l);
                WikiFile d = dao.findDefaultWikiFile(dir);
                assert d.getName().equals("One");
            }
        }.run();
    }

    // TODO: This can go away soon, see WikiRequestResolver
    @Test
    public void findDefaultDocument() throws Exception {
        new FacesRequest() {

            protected void invokeApplication() throws Exception {
                WikiNodeDAO dao = (WikiNodeDAO)getInstance(WikiNodeDAO.class);
                WikiDirectory dir = dao.findWikiDirectory(3l);
                WikiDocument d = dao.findDefaultDocument(dir);
                assert d.getName().equals("One");
            }
        }.run();
    }

    @Test
    public void findDocumentInArea() throws Exception {
        new FacesRequest() {

            protected void invokeApplication() throws Exception {
                WikiNodeDAO dao = (WikiNodeDAO)getInstance(WikiNodeDAO.class);
                WikiDocument d = dao.findWikiDocumentInArea(3l, "Two");
                assert d.getName().equals("Two");
                assert d.getId().equals(7l);
            }
        }.run();
    }

    @Test
    public void findDocumentsOrderByLastModified() throws Exception {
        new FacesRequest() {

            protected void invokeApplication() throws Exception {
                WikiNodeDAO dao = (WikiNodeDAO)getInstance(WikiNodeDAO.class);
                List<WikiDocument> result = dao.findWikiDocuments(2, WikiNode.SortableProperty.lastModifiedOn, false);
                assert result.size() == 2;
                assert result.get(0).getId().equals(6l);
                assert result.get(1).getId().equals(7l);
            }
        }.run();
    }

    @Test
    public void findDirectoryById() throws Exception {
        new FacesRequest() {

            protected void invokeApplication() throws Exception {
                WikiNodeDAO dao = (WikiNodeDAO)getInstance(WikiNodeDAO.class);
                WikiDirectory d = dao.findWikiDirectory(1l);
                assert d.getName().equals("AAA");
            }
        }.run();
    }

    @Test
    public void findDirectoryInArea() throws Exception {
        new FacesRequest() {

            protected void invokeApplication() throws Exception {
                WikiNodeDAO dao = (WikiNodeDAO)getInstance(WikiNodeDAO.class);
                WikiDirectory d = dao.findWikiDirectoryInArea(3l, "DDD");
                assert d.getName().equals("DDD");
                assert d.getId().equals(4l);
            }
        }.run();
    }

    @Test
    public void findAreaByWikiname() throws Exception {
        new FacesRequest() {

            protected void invokeApplication() throws Exception {
                WikiNodeDAO dao = (WikiNodeDAO)getInstance(WikiNodeDAO.class);
                WikiDirectory d = dao.findArea("BBB");
                assert d.getName().equals("BBB");
                assert d.getId().equals(2l);
            }
        }.run();
    }

    @Test
    public void findAreaByNumber() throws Exception {
        new FacesRequest() {

            protected void invokeApplication() throws Exception {
                WikiNodeDAO dao = (WikiNodeDAO)getInstance(WikiNodeDAO.class);
                WikiDirectory d = dao.findArea(2l);
                assert d.getName().equals("BBB");
                assert d.getId().equals(2l);
            }
        }.run();
    }

    @Test
    public void isUniqueWikinameTrue() throws Exception {
        new FacesRequest() {

            protected void invokeApplication() throws Exception {
                WikiNodeDAO dao = (WikiNodeDAO)getInstance(WikiNodeDAO.class);
                Boolean result = dao.isUniqueWikiname(3l, "Foobar");
                assert result;
            }
        }.run();
    }

    @Test
    public void isUniqueWikinameFalse() throws Exception {
        new FacesRequest() {

            protected void invokeApplication() throws Exception {
                WikiNodeDAO dao = (WikiNodeDAO)getInstance(WikiNodeDAO.class);
                Boolean result = dao.isUniqueWikiname(3l, "One");
                assert !result;
            }
        }.run();
    }

    @Test
    public void isUniqueWikinameTrueWithNode() throws Exception {
        new FacesRequest() {

            protected void invokeApplication() throws Exception {
                WikiNodeDAO dao = (WikiNodeDAO)getInstance(WikiNodeDAO.class);
                WikiDocument newDoc = new WikiDocument();
                newDoc.setWikiname("Foobar");
                Boolean result = dao.isUniqueWikiname(3l, newDoc);
                assert result;
            }
        }.run();
    }

    @Test
    public void isUniqueWikinameFalseWithNode() throws Exception {
        new FacesRequest() {

            protected void invokeApplication() throws Exception {
                WikiNodeDAO dao = (WikiNodeDAO)getInstance(WikiNodeDAO.class);
                WikiDocument newDoc = new WikiDocument();
                newDoc.setWikiname("One");
                Boolean result = dao.isUniqueWikiname(3l, newDoc);
                assert !result;
            }
        }.run();
    }

    @Test
    public void findComments() throws Exception {
        new FacesRequest() {

            protected void invokeApplication() throws Exception {
                WikiNodeDAO dao = (WikiNodeDAO)getInstance(WikiNodeDAO.class);
                WikiDocument d = dao.findWikiDocument(6l);
                assert d.getName().equals("One");

                List<WikiComment> comments = dao.findWikiComments(d, true);
                assert comments.size() == 6;

                assert comments.get(0).getId().equals(10l);
                assert comments.get(1).getId().equals(11l);
                assert comments.get(2).getId().equals(12l);
                assert comments.get(3).getId().equals(13l);
                assert comments.get(4).getId().equals(14l);
                assert comments.get(5).getId().equals(15l);
            }
        }.run();
    }

    @Test
    public void findSiblings() throws Exception {
        new FacesRequest() {

            protected void invokeApplication() throws Exception {
                WikiNodeDAO dao = (WikiNodeDAO)getInstance(WikiNodeDAO.class);
                WikiDocument d = dao.findWikiDocument(6l);
                assert d.getName().equals("One");

                assert dao.findSiblingWikiDocumentInDirectory(d, WikiNode.SortableProperty.createdOn, true) == null;
                assert dao.findSiblingWikiDocumentInDirectory(d, WikiNode.SortableProperty.createdOn, false).getId().equals(7l);
            }
        }.run();
    }

    @Test
    public void findWikiDirectoryTree() throws Exception {
        new FacesRequest() {

            protected void invokeApplication() throws Exception {
                WikiNodeDAO dao = (WikiNodeDAO)getInstance(WikiNodeDAO.class);

                WikiDirectory root = dao.findWikiDirectory(1l);
                List<WikiTreeNode<WikiDirectory>> tree = dao.findWikiDirectoryTree(root, WikiNode.SortableProperty.name, true);

                Assert.assertEquals(tree.size(), 7);

                Assert.assertEquals(tree.get(0).getLevel(), 1);
                Assert.assertEquals(tree.get(0).getNode().getName(), "AAA");
                Assert.assertEquals(tree.get(1).getLevel(), 2);
                Assert.assertEquals(tree.get(1).getNode().getName(), "BBB");
                Assert.assertEquals(tree.get(2).getLevel(), 2);
                Assert.assertEquals(tree.get(2).getNode().getName(), "CCC");
                Assert.assertEquals(tree.get(3).getLevel(), 3);
                Assert.assertEquals(tree.get(3).getNode().getName(), "DDD");
                Assert.assertEquals(tree.get(4).getLevel(), 3);
                Assert.assertEquals(tree.get(4).getNode().getName(), "EEE");
                Assert.assertEquals(tree.get(5).getLevel(), 2);
                Assert.assertEquals(tree.get(5).getNode().getName(), "Members");
                Assert.assertEquals(tree.get(6).getLevel(), 2);
                Assert.assertEquals(tree.get(6).getNode().getName(), "Trash");

            }
        }.run();
    }

    @Test
    public void findWikiDirectorySubtree() throws Exception {
        new FacesRequest() {

            protected void invokeApplication() throws Exception {
                WikiNodeDAO dao = (WikiNodeDAO)getInstance(WikiNodeDAO.class);

                WikiDirectory root = dao.findWikiDirectory(3l);
                List<WikiTreeNode<WikiDirectory>> tree = dao.findWikiDirectoryTree(root, WikiNode.SortableProperty.name, false);

                Assert.assertEquals(tree.size(), 3);

                Assert.assertEquals(tree.get(0).getLevel(), 1);
                Assert.assertEquals(tree.get(0).getNode().getName(), "CCC");
                Assert.assertEquals(tree.get(1).getLevel(), 2);
                Assert.assertEquals(tree.get(1).getNode().getName(), "EEE");
                Assert.assertEquals(tree.get(2).getLevel(), 2);
                Assert.assertEquals(tree.get(2).getNode().getName(), "DDD");

            }
        }.run();
    }

    @Test
    public void findMenuItems() throws Exception {
        new FacesRequest() {

            protected void invokeApplication() throws Exception {
                WikiNodeDAO dao = (WikiNodeDAO)getInstance(WikiNodeDAO.class);

                WikiDirectory root = dao.findWikiDirectory(1l);

                List<WikiTreeNode<WikiDirectory>> tree = dao.findMenuItemTree(root, 3l, 3l, false);
                Assert.assertEquals(tree.size(), 3);
                Assert.assertEquals(tree.get(0).getLevel(), 1);
                Assert.assertEquals(tree.get(0).getNode().getName(), "BBB");
                Assert.assertEquals(tree.get(1).getLevel(), 1);
                Assert.assertEquals(tree.get(1).getNode().getName(), "CCC");
                Assert.assertEquals(tree.get(2).getLevel(), 2);
                Assert.assertEquals(tree.get(2).getNode().getName(), "DDD");

                tree = dao.findMenuItemTree(root, 3l, 1l, false);
                Assert.assertEquals(tree.size(), 3);
                Assert.assertEquals(tree.get(0).getLevel(), 1);
                Assert.assertEquals(tree.get(0).getNode().getName(), "BBB");
                Assert.assertEquals(tree.get(1).getLevel(), 1);
                Assert.assertEquals(tree.get(1).getNode().getName(), "CCC");
                Assert.assertEquals(tree.get(2).getLevel(), 1);
                Assert.assertEquals(tree.get(2).getNode().getName(), "DDD");

                tree = dao.findMenuItemTree(root, 1l, 3l, false);
                Assert.assertEquals(tree.size(), 2);
                Assert.assertEquals(tree.get(0).getLevel(), 1);
                Assert.assertEquals(tree.get(0).getNode().getName(), "BBB");
                Assert.assertEquals(tree.get(1).getLevel(), 1);
                Assert.assertEquals(tree.get(1).getNode().getName(), "CCC");

            }
        }.run();
    }

}
TOP

Related Classes of org.jboss.seam.wiki.test.dao.WikiNodeDAOTests

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.