Details
-
Test
-
Status: Resolved
-
Major
-
Resolution: Duplicate
-
4.1.1
-
None
Description
package Test;
import java.io.File;
import java.io.IOException;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
import org.apache.activemq.command.ActiveMQMessage;
import org.apache.activemq.command.ActiveMQQueue;
import org.apache.activemq.command.ActiveMQTextMessage;
import org.apache.activemq.command.MessageAck;
import org.apache.activemq.command.MessageId;
import org.apache.activemq.kaha.StoreFactory;
import org.apache.activemq.store.MessageStore;
import org.apache.activemq.store.kahadaptor.KahaPersistenceAdapter;
/**
- @author chris
*/
public class MapContainerImplTest extends TestCase {
/**
- Create the test case
- @param testName
- name of the test case
*/
public MapContainerImplTest(String testName)
{ super(testName); }/**
- @return the suite of tests being tested
*/
public static Test suite() { return new TestSuite(MapContainerImplTest.class); }
/**
- bug exists in MapContainerImpl write method in MapContainerImpl should
- refreshEntry after getPrevIndex
*/
public void testRemoveLast() {
try { String dir = "C:/Temp/FilePersistenceAdapter"; StoreFactory.delete(dir + "/kaha.db"); KahaPersistenceAdapter theAdapter = new KahaPersistenceAdapter( new File(dir)); ActiveMQQueue queue = new ActiveMQQueue("Test"); MessageStore theStore = theAdapter.createQueueMessageStore(queue); ActiveMQTextMessage message = null; message = new ActiveMQTextMessage(); message.setJMSMessageID("4"); message.setText("TEST"); theStore.addMessage(null, message); message = new ActiveMQTextMessage(); message.setJMSMessageID("3"); message.setText("TEST"); theStore.addMessage(null, message); message = new ActiveMQTextMessage(); message.setJMSMessageID("2"); message.setText("TEST"); theStore.addMessage(null, message); message = new ActiveMQTextMessage(); message.setJMSMessageID("1"); message.setText("TEST"); theStore.addMessage(null, message); MessageAck ack = null; ack = new MessageAck(); ack.setLastMessageId(new MessageId("1")); theStore.removeMessage(null, ack); ack = new MessageAck(); ack.setLastMessageId(new MessageId("2")); theStore.removeMessage(null, ack); message = new ActiveMQTextMessage(); message.setJMSMessageID("5"); message.setText("TEST"); theStore.addMessage(null, message); theAdapter.stop(); theAdapter = new KahaPersistenceAdapter(new File(dir)); queue = new ActiveMQQueue("Test"); theStore = theAdapter.createQueueMessageStore(queue); theAdapter.stop(); System.out.println("That is ok!"); }catch (Exception e)
{ e.printStackTrace(); }
}
/**
* Bug exists in DiskIndexLinkedList. After reading index from file, if the index is root or last,
* We should update the data in the root or last object instead of return last or root directly.
* If the index is root, we can not simplly write "root = index", we should update the
* data in this root object, because others are using "this" object.
*/
public void testRemoveLast_ThenRemoveTheOneBeforeLast() {
try { String dir = "C:/Temp/FilePersistenceAdapter"; StoreFactory.delete(dir + "/kaha.db"); KahaPersistenceAdapter theAdapter = new KahaPersistenceAdapter( new File(dir)); ActiveMQQueue queue = new ActiveMQQueue("Test"); MessageStore theStore = theAdapter.createQueueMessageStore(queue); ActiveMQTextMessage message = null; message = new ActiveMQTextMessage(); message.setJMSMessageID("4"); message.setText("TEST"); theStore.addMessage(null, message); message = new ActiveMQTextMessage(); message.setJMSMessageID("3"); message.setText("TEST"); theStore.addMessage(null, message); message = new ActiveMQTextMessage(); message.setJMSMessageID("2"); message.setText("TEST"); theStore.addMessage(null, message); message = new ActiveMQTextMessage(); message.setJMSMessageID("1"); message.setText("TEST"); theStore.addMessage(null, message); MessageAck ack = null; ack = new MessageAck(); ack.setLastMessageId(new MessageId("1")); theStore.removeMessage(null, ack); ack = new MessageAck(); ack.setLastMessageId(new MessageId("3")); theStore.removeMessage(null, ack); message = new ActiveMQTextMessage(); message.setJMSMessageID("3"); message.setText("TEST"); theStore.addMessage(null, message); message = new ActiveMQTextMessage(); message.setJMSMessageID("1"); message.setText("TEST"); theStore.addMessage(null, message); theAdapter.stop(); theAdapter = new KahaPersistenceAdapter(new File(dir)); queue = new ActiveMQQueue("Test"); theStore = theAdapter.createQueueMessageStore(queue); theStore.stop(); System.out.println("That is ok!"); } catch (Exception e) { e.printStackTrace(); }
}
}
we can not see the out in the console.