Exemplo n.º 1
0
        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);
            });
        }
Exemplo n.º 2
0
        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);
            });
        }
Exemplo n.º 3
0
        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);
            });
        }