Package com.dp.nebula.wormhole.engine.core

Source Code of com.dp.nebula.wormhole.engine.core.WriterThreadTest

package com.dp.nebula.wormhole.engine.core;

import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.inOrder;
import static org.mockito.Mockito.mock;

import java.lang.reflect.Constructor;

import org.junit.Before;
import org.junit.Test;
import org.mockito.InOrder;

import com.dp.nebula.wormhole.common.interfaces.ILineReceiver;
import com.dp.nebula.wormhole.common.interfaces.IParam;
import com.dp.nebula.wormhole.common.interfaces.IPluginMonitor;
import com.dp.nebula.wormhole.common.interfaces.IWriter;

public class WriterThreadTest {
 
  private ILineReceiver lineReceiver;
  private IParam param;
  private IPluginMonitor monitor;
 
  @Before
  public void init(){
    lineReceiver = mock(ILineReceiver.class);
    param = mock(IParam.class);
    monitor = mock(IPluginMonitor.class);
  }
 
  @Test
  public void testConstructor_Success(){
    WriterThread writer = createWriterThread("com.dp.nebula.wormhole.engine.common.FakeWriter");
    assertNotNull(writer);
    assertTrue(writer instanceof WriterThread);
  }
 
  @Test
  public void testConstuctor_Failed(){
    WriterThread writer = createWriterThread("com.dp.nebula.wormhole.engine.common.NotExistWriter");
    assertNull(writer);
  }
 
  @Test
  public void testRun() throws Exception{
    IWriter writer = mock(IWriter.class);
    WriterThread writerThread = createWriterThread(writer);
    writerThread.call();
   
    InOrder orderedExecution = inOrder(writer);
    orderedExecution.verify(writer).init()
    orderedExecution.verify(writer).connection();
    orderedExecution.verify(writer).write(lineReceiver);
    orderedExecution.verify(writer).commit();
    orderedExecution.verify(writer).finish();
  }
 
  @SuppressWarnings("unchecked")
  private WriterThread createWriterThread(IWriter writer){
    try {
      Class clazz = Class.forName("com.dp.nebula.wormhole.engine.core.WriterThread");
      Constructor con = clazz.getDeclaredConstructor(ILineReceiver.class, IWriter.class);
      con.setAccessible(true);
      return (WriterThread)con.newInstance(lineReceiver, writer);
    } catch (Exception e) {
      return null;
    }
  }

  private WriterThread createWriterThread(String className){
    return WriterThread.getInstance(lineReceiver, param,
        className, null, monitor);
  }
}
TOP

Related Classes of com.dp.nebula.wormhole.engine.core.WriterThreadTest

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.