private SessionData(Guid sessionId) { _sessionId = sessionId; _messageFilter = new DuplicateQueryDetectionMessageFilter(); // _notificationTimer = new DispatcherTimer(DispatcherPriority.Normal, Dispatcher.FromThread(Thread.CurrentThread)) {Interval = TimeSpan.FromMilliseconds(300)}; // _notificationTimer.Tick += NotificationTimerOnTick; }
public void DuplicateQueryDetectionMessageFilter_MergesEqualQueriesWithDuplicate_ToDuplicateQueryInstance() { // given IMessageFilter messageFilter = new DuplicateQueryDetectionMessageFilter(); QueryMessage first = MakeDuplicateQueryMessage("SELECT 1", 4); QueryMessage second = MakeQueryMessage("SELECT 1"); // when DuplicateQueryMessage output = (DuplicateQueryMessage) messageFilter.FilterTwo(first, second); // assert Assert.That(output.NumberOfQueries, Is.EqualTo(1 + 4)); }
public void DuplicateQueryDetectionMessageFilter_MergesNonEqualQueries_ToNullInstance() { // given IMessageFilter messageFilter = new DuplicateQueryDetectionMessageFilter(); QueryMessage first = MakeQueryMessage("SELECT 2"); QueryMessage second = MakeQueryMessage("SELECT 1"); // when Message output = messageFilter.FilterTwo(first, second); // assert Assert.That(output, Is.Null, "Expected not to merge"); }
public void DuplicateQueryDetectionMessageFilter_GroupsAdjecentQueryMessages(QueryData queryData) { // given IMessageFilter messageFilter = new DuplicateQueryDetectionMessageFilter(); // when Queue<Message> messages = new Queue<Message>(messageFilter.Filter(queryData.Messages)); // then foreach (int msgCount in queryData.ReturnedMessages) { if (msgCount == Single) { Message message = messages.Dequeue(); Assert.That(message, Is.Not.InstanceOf<DuplicateQueryMessage>(), "Expected a singular message to be returned"); continue; } // find group DuplicateQueryMessage groupMessage = (DuplicateQueryMessage)messages.Dequeue(); // assert group size Assert.IsNotNull(groupMessage, "Cannot find grouped query - expected at least a group to be found of size "+msgCount); Assert.That(groupMessage.NumberOfQueries, Is.EqualTo(msgCount), "Incorrect query group message size"); } }