Package org.jboss.seam.wiki.test.editing

Source Code of org.jboss.seam.wiki.test.editing.Uploading

package org.jboss.seam.wiki.test.editing;

import org.dbunit.operation.DatabaseOperation;
import org.jboss.seam.wiki.core.upload.Uploader;
import org.jboss.seam.wiki.core.upload.editor.WikiUploadEditor;
import org.jboss.seam.wiki.core.action.UploadHome;
import org.jboss.seam.mock.DBUnitSeamTest;
import org.testng.annotations.Test;
import org.hibernate.StatelessSession;
import org.hibernate.ejb.HibernateEntityManagerFactory;

import java.util.List;

public class Uploading 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 createUpload() throws Exception {

        final String conversationId = new NonFacesRequest("/uploadCreate_d.xhtml") {
            protected void beforeRequest() {
                setParameter("parentDirectoryId", "2");
            }
        }.run();

        new FacesRequest("/uploadCreate_d.xhtml") {

            protected void beforeRequest() {
                setParameter("cid", conversationId);
            }

            protected void invokeApplication() throws Exception {

                Uploader uploader = (Uploader) getInstance(Uploader.class);

                assert uploader.getParentDirectoryId().equals(2l);

                byte[] uploadData = getBinaryFile("testupload2.zip");
                uploader.setData(uploadData);
                uploader.setContentType("application/zip");
                uploader.setFilename("testupload2.zip");

                assert uploader.uploadNewInstance().equals("WikiUpload");

                assert uploader.getUpload().getContentType().equals("application/zip");
                assert uploader.getUpload().getFilesize() == uploadData.length;
                assert uploader.getUpload().getFilename().equals("testupload2.zip");
                assert uploader.getUpload().getFilenameWithoutExtension().equals("testupload2");
                assert uploader.getUpload().getExtension().equals("zip");
                assert uploader.getUpload().getData() == uploadData;

            }

        }.run();

        new FacesRequest("/uploadEdit_d.xhtml") {

            protected void beforeRequest() {
                setParameter("cid", conversationId);
                setParameter("parentDirectoryId", "2");
            }

            protected void invokeApplication() throws Exception {

                UploadHome uploadHome = (UploadHome)getInstance(UploadHome.class);
                uploadHome.initEditor();

                assert uploadHome.getInstance().getFilename().equals("testupload2.zip");
                assert uploadHome.getUploadEditor().getClass().equals(WikiUploadEditor.class);
                assert uploadHome.getUploadEditor().getIncludeName().equals("wikiUploadEditor");

                assert invokeMethod("#{uploadHome.persist}").equals("persisted");
            }

            protected void renderResponse() throws Exception {
                StatelessSession ss = getStatelessSession();
                List<String> uploads =
                        ss.createQuery("select wu.filename from WikiUpload wu where wu.parent.id = :parent order by wu.createdOn desc ")
                        .setParameter("parent" , 2l).list();

                assert uploads.size() == 3;
                assert uploads.get(0).equals("testupload2.zip");
            }
        }.run();
    }

    private StatelessSession getStatelessSession() throws Exception {
        org.jboss.ejb3.entity.InjectedEntityManagerFactory jbossEMF =
                (org.jboss.ejb3.entity.InjectedEntityManagerFactory) getInitialContext().lookup("java:/entityManagerFactories/wiki");
        return ((HibernateEntityManagerFactory) jbossEMF.getDelegate()).getSessionFactory().openStatelessSession();
    }


}
TOP

Related Classes of org.jboss.seam.wiki.test.editing.Uploading

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.