Package org.springside.examples.showcase.unit.queue

Source Code of org.springside.examples.showcase.unit.queue.QueueTest$MockConsumerTask

package org.springside.examples.showcase.unit.queue;

import static org.junit.Assert.*;

import java.io.EOFException;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.concurrent.BlockingQueue;

import org.junit.Test;
import org.springside.examples.showcase.queue.QueueConsumer;
import org.springside.examples.showcase.queue.QueuesHolder;

@SuppressWarnings("unchecked")
public class QueueTest {

  @Test
  public void backup() throws IOException, ClassNotFoundException, InterruptedException {
    String queueName = "testBackup";
    String filePath = System.getProperty("java.io.tmpdir") + File.separator + "queue" + File.separator + queueName;

    BlockingQueue queue = QueuesHolder.getQueue(queueName);
    Date date1 = new Date();
    Date date2 = new Date();
    queue.offer(date1);
    queue.offer(date2);

    MockConsumerTask task = new MockConsumerTask();
    task.setQueueName(queueName);
    task.start();
    task.stop();

    //判断存在持久化文件
    File file = new File(filePath);
    assertEquals(true, file.exists());

    ObjectInputStream oos = new ObjectInputStream(new FileInputStream(file));
    List list = new ArrayList();
    while (true) {
      try {
        Object obj = oos.readObject();
        list.add(obj);
      } catch (EOFException e) {
        break;
      }
    }
    oos.close();
    file.delete();
    assertEquals(2, list.size());
    assertEquals(date1, list.get(0));
  }

  @Test
  public void restore() throws IOException, ClassNotFoundException, InterruptedException {
    String queueName = "testRestore";
    String filePath = System.getProperty("java.io.tmpdir") + File.separator + "queue" + File.separator + queueName;

    BlockingQueue queue = QueuesHolder.getQueue(queueName);
    Date date1 = new Date();
    Date date2 = new Date();
    queue.offer(date1);
    queue.offer(date2);

    MockConsumerTask task = new MockConsumerTask();
    task.setQueueName(queueName);
    task.start();
    task.stop();

    //判断存在持久化文件
    File file = new File(filePath);
    assertEquals(true, file.exists());

    BlockingQueue newQueue = QueuesHolder.getQueue(queueName);
    task.start();

    List list = new ArrayList();
    newQueue.drainTo(list);

    assertEquals(2, list.size());
    assertEquals(date1, list.get(0));

    //判断存在持久化文件
    file = new File(filePath);
    assertEquals(false, file.exists());
  }

  static class MockConsumerTask extends QueueConsumer {
    @Override
    public void run() {
    }
  }
}
TOP

Related Classes of org.springside.examples.showcase.unit.queue.QueueTest$MockConsumerTask

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.