public void TestMessageCache() { TrackingTransport transport = new TrackingTransport(); ConnectionStateTracker tracker = new ConnectionStateTracker(); tracker.TrackMessages = true; ConnectionData conn = CreateConnectionState(tracker); tracker.MaxCacheSize = 4; int sequenceId = 1; for (int i = 0; i < 10; ++i) { MessageId id = new MessageId(); id.ProducerId = conn.producer.ProducerId; id.ProducerSequenceId = sequenceId++; Message message = new Message(); message.MessageId = id; tracker.ProcessMessage(message); tracker.TrackBack(message); } tracker.DoRestore(transport); Assert.AreEqual(4, transport.messages.Count); }
void ClearConnectionState(ConnectionStateTracker tracker, ConnectionData conn) { tracker.ProcessRemoveProducer(conn.producer.ProducerId); tracker.ProcessRemoveConsumer(conn.consumer.ConsumerId); tracker.ProcessRemoveSession(conn.session.SessionId); tracker.ProcessRemoveConnection(conn.connection.ConnectionId); }
public void TestConnectionStateTracker() { ConnectionStateTracker tracker = new ConnectionStateTracker(); ConnectionData conn = CreateConnectionState(tracker); ClearConnectionState(tracker, conn); }
private ConnectionData CreateConnectionState(ConnectionStateTracker tracker) { ConnectionData conn = new ConnectionData(); ConnectionId connectionId = new ConnectionId(); connectionId.Value = "CONNECTION"; conn.connection = new ConnectionInfo(); conn.connection.ConnectionId = connectionId; SessionId sessionId = new SessionId(); sessionId.ConnectionId = "CONNECTION"; sessionId.Value = 12345; conn.session = new SessionInfo(); conn.session.SessionId = sessionId; ConsumerId consumerId = new ConsumerId(); consumerId.ConnectionId = "CONNECTION"; consumerId.SessionId = 12345; consumerId.Value = 42; conn.consumer = new ConsumerInfo(); conn.consumer.ConsumerId = consumerId; ProducerId producerId = new ProducerId(); producerId.ConnectionId = "CONNECTION"; producerId.SessionId = 12345; producerId.Value = 42; conn.producer = new ProducerInfo(); conn.producer.ProducerId = producerId; tracker.ProcessAddConnection(conn.connection); tracker.ProcessAddSession(conn.session); tracker.ProcessAddConsumer(conn.consumer); tracker.ProcessAddProducer(conn.producer); return(conn); }
public void TestMessagePullCache2() { TrackingTransport transport = new TrackingTransport(); ConnectionStateTracker tracker = new ConnectionStateTracker(); tracker.TrackMessages = true; tracker.MaxCacheSize = 10; ConnectionData conn = CreateConnectionState(tracker); for (int i = 0; i < 100; ++i) { MessagePull pull = new MessagePull(); ActiveMQDestination destination = new ActiveMQTopic("TEST"); pull.ConsumerId = conn.consumer.ConsumerId; pull.Destination = destination; tracker.ProcessMessagePull(pull); tracker.TrackBack(pull); } tracker.DoRestore(transport); Assert.AreEqual(1, transport.messagePulls.Count); }