com.ewcms.publication.task.publish.SitePublishTest.java Source code

Java tutorial

Introduction

Here is the source code for com.ewcms.publication.task.publish.SitePublishTest.java

Source

/**
 * Copyright (c)2010-2011 Enterprise Website Content Management System(EWCMS), All rights reserved.
 * EWCMS PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
 * http://www.ewcms.com
 */

package com.ewcms.publication.task.publish;

import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.io.FileUtils;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.ewcms.core.site.model.SiteServer.OutputType;
import com.ewcms.core.site.model.SiteServer;
import com.ewcms.publication.deploy.DeployOperatorable;
import com.ewcms.publication.task.Taskable;
import com.ewcms.publication.task.impl.event.TaskEventable;
import com.ewcms.publication.task.impl.process.TaskProcessable;

/**
 * ?
 * 
 * @author wangwei
 */
public class SitePublishTest {
    private static final Logger logger = LoggerFactory.getLogger(SitePublishTest.class);

    @Test
    public void testPublish() throws Exception {
        SiteServer server = initSiteServer();
        SitePublish publish = new SitePublish(server);
        Taskable task = mock(Taskable.class);
        when(task.toTaskProcess()).thenReturn(initTaskProcesses("single"));
        publish.publish(task);
    }

    protected List<TaskProcessable> initTaskProcesses(String dir) throws IOException {
        List<TaskProcessable> processes = new ArrayList<TaskProcessable>();
        for (int i = 0; i < 1000; i++) {
            byte[] content = getContent();
            String path = String.format("%s/%d.jpg", dir, i);
            TaskProcess process = new TaskProcess(i, content, path);
            processes.add(process);
        }
        return processes;
    }

    private byte[] getContent() throws IOException {
        File file = new File(MultiSitePublishTest.class.getResource("write.jpg").getPath());
        return FileUtils.readFileToByteArray(file);
    }

    protected SiteServer initSiteServer() {
        SiteServer server = new SiteServer();
        server.setId(Integer.MAX_VALUE);
        server.setHostName("127.0.0.1");
        server.setPath("/home/wangwei/test");
        server.setUserName("wangwei");
        server.setPassword("hhywangwei");
        server.setOutputType(OutputType.SFTP);

        return server;
    }

    protected class TaskProcess implements TaskProcessable {
        private final Integer id;
        private final byte[] content;
        private final String path;

        TaskProcess(Integer id, byte[] content, String path) {
            this.id = id;
            this.content = content;
            this.path = path;
        }

        @Override
        public Boolean execute(DeployOperatorable operator) {
            logger.debug("id={} start", id);
            Boolean success = Boolean.TRUE;
            //            try{
            //                operator.copy(content, path);
            //            }catch(PublishException e){
            //                success = Boolean.FALSE;
            //            }
            logger.debug("id={} end", id);
            return success;
        }

        @Override
        public void registerEvent(TaskEventable event) {
            // do not instance
        }
    }
}