public void SeekForwardTest() { SubscriptionHandler Handler = new SubscriptionHandler(this, false); EventsVerifyPolicy policy = new EventsVerifyPolicy(false); policy.VerifyDataPresence = false; policy.VerifyMessagesPresence = false; Handler.SetPolicy(policy); RunTest( () => { Handler.SetAddress(GetEventServiceAddress()); DateTime BeginOfBufferTime = GetBeginTime(Handler); Handler.Subscribe(null, -1); DateTime MaxTime = DateTime.Now; Handler.GetProxy().Seek(BeginOfBufferTime.AddSeconds(-1).ToUniversalTime(), null); DateTime DeviceTime; DateTime DeviceTimeBack = DateTime.MinValue; Dictionary <NotificationMessageHolderType, XmlElement> NotificationMessages; Handler.GetMessages(1, out NotificationMessages); if (NotificationMessages.Count < 1) { Assert(false, "No messages", "Check if there are messages"); } DeviceTimeBack = GetMessageTime(GetFirstMessage(NotificationMessages)); Assert(DeviceTimeBack >= BeginOfBufferTime, "Message time is less than BeginOfBuffer time", "Check if message time is after BeginOfBuffer time"); VerifyBeginType(NotificationMessages); do { Handler.GetMessages(1, out NotificationMessages); if (NotificationMessages.Count < 1) { break; } DeviceTime = GetMessageTime(GetFirstMessage(NotificationMessages)); if (DeviceTime < DeviceTimeBack) { Assert(false, "Message time is less than previous message time", "Check if message time increases"); } DeviceTimeBack = DeviceTime; if (DeviceTime >= MaxTime) { break; } }while (true); }, () => { SubscriptionHandler.Unsubscribe(Handler); }); }
public void SeekForwardTest() { SubscriptionHandler Handler = new SubscriptionHandler(this, false); EventsVerifyPolicy policy = new EventsVerifyPolicy(false); policy.VerifyDataPresence = false; policy.VerifyMessagesPresence = false; Handler.SetPolicy(policy); RunTest( () => { Handler.SetAddress(GetEventServiceAddress()); DateTime BeginOfBufferTime = GetBeginTime(Handler); Handler.Subscribe(null, -1); DateTime MaxTime = DateTime.Now; Handler.GetProxy().Seek(BeginOfBufferTime.AddSeconds(-1).ToUniversalTime(), null); DateTime DeviceTime; DateTime DeviceTimeBack = DateTime.MinValue; Dictionary <NotificationMessageHolderType, XmlElement> NotificationMessages; Handler.GetMessages(1, out NotificationMessages); if (NotificationMessages.Count < 1) { Assert(false, "No messages", "Check if there are messages"); } DeviceTimeBack = GetMessageTime(GetFirstMessage(NotificationMessages)); Assert(DeviceTimeBack >= BeginOfBufferTime, "Message time is less than BeginOfBuffer time", "Check if message time is after BeginOfBuffer time"); VerifyBeginType(NotificationMessages); do { Handler.GetMessages(1, out NotificationMessages); if (NotificationMessages.Count < 1) { break; } DeviceTime = GetMessageTime(GetFirstMessage(NotificationMessages)); // DeviceTimeBack time in milliseconds int DeviceTimeBackMs = DeviceTimeBack.Hour * 60 * 60 * 1000 + DeviceTimeBack.Minute * 60 * 1000 + DeviceTimeBack.Second * 1000 + DeviceTimeBack.Millisecond; // DeviceTime time in milliseconds int DeviceTimeMs = DeviceTime.Hour * 60 * 60 * 1000 + DeviceTime.Minute * 60 * 1000 + DeviceTime.Second * 1000 + DeviceTime.Millisecond; // if events that occurred in the incorrect order were misplaced by more than 5 seconds // then fail test if (DeviceTime.Date < DeviceTimeBack.Date || (DeviceTime < DeviceTimeBack && DeviceTime.Date >= DeviceTimeBack.Date && DeviceTimeBackMs - DeviceTimeMs > 5000)) { Assert(false, "Message time is less than previous message time", "Check if message time increases"); } DeviceTimeBack = DeviceTime; if (DeviceTime >= MaxTime) { break; } }while (true); }, () => { SubscriptionHandler.Unsubscribe(Handler); }); }
public void SeekBufferBeginTest() { SubscriptionHandler Handler = new SubscriptionHandler(this, false); EventsVerifyPolicy policy = new EventsVerifyPolicy(false); policy.VerifyDataPresence = false; policy.VerifyMessagesPresence = false; Handler.SetPolicy(policy); RunTest( () => { Handler.SetAddress(GetEventServiceAddress()); TopicSetType topicSet = Handler.GetTopicSet(); VerifySeekTopics(topicSet); SubscribeToBegin(Handler); DateTime RefPoint = DateTime.Now; Dictionary <NotificationMessageHolderType, XmlElement> NotificationMessages; Handler.GetProxy().Seek(RefPoint.ToUniversalTime(), true); Handler.GetMessages(1, out NotificationMessages); if (NotificationMessages.Count < 1) { Assert(false, "No messages", "Check if there are messages"); } VerifyBeginType(NotificationMessages); RefPoint = GetMessageTime(GetFirstMessage(NotificationMessages)); Handler.GetMessages(1, out NotificationMessages); if (NotificationMessages.Count >= 1) { Assert(false, "There was more than one Begin of Buffer event notification or another unexpected notification recieved. There should be no notifications in current response.", "Check if there are messages"); } Handler.GetProxy().Seek(RefPoint.ToUniversalTime(), false); Handler.GetMessages(1, out NotificationMessages); if (NotificationMessages.Count < 1) { Assert(false, "No messages", "Check if there are messages"); } VerifyBeginType(NotificationMessages); RefPoint = GetMessageTime(GetFirstMessage(NotificationMessages)); Handler.GetMessages(1, out NotificationMessages); if (NotificationMessages.Count >= 1) { Assert(false, "There was more than one Begin of Buffer event notification or another unexpected notification recieved. There should be no notifications in current response.", "Check if there are messages"); } }, () => { SubscriptionHandler.Unsubscribe(Handler); }); }