public void _0_PriorityEventStore_AddSequence()
        {
            ISpEventStore d = null;
            TestHelpers.CatchUnexpected(() => {
                d = new PriorityEventStore(new SpBaseEventMsg(new SpIntToInt(25), new SpIntToInt(100)));
                d.Add(new SpBaseEventMsg(new SpIntToInt(1), new SpIntToInt(100), SpEventPriority.Low));
                d.Add(new SpBaseEventMsg(new SpIntToInt(1), new SpIntToInt(101), SpEventPriority.Low));

                d.Add(new SpBaseEventMsg(new SpIntToInt(1), new SpIntToInt(102), SpEventPriority.Normal));
                d.Add(new SpBaseEventMsg(new SpIntToInt(1), new SpIntToInt(103), SpEventPriority.Normal));

                d.Add(new SpBaseEventMsg(new SpIntToInt(1), new SpIntToInt(104), SpEventPriority.High));
                d.Add(new SpBaseEventMsg(new SpIntToInt(1), new SpIntToInt(105), SpEventPriority.High));

                d.Add(new SpBaseEventMsg(new SpIntToInt(1), new SpIntToInt(106), SpEventPriority.Urgent));
                d.Add(new SpBaseEventMsg(new SpIntToInt(1), new SpIntToInt(107), SpEventPriority.Urgent));
            });

            // Validate sequence by priority and sequence within priority

            this.MsgEqual(new SpBaseEventMsg(new SpIntToInt(1), new SpIntToInt(106), SpEventPriority.Urgent), d.Get());
            this.MsgEqual(new SpBaseEventMsg(new SpIntToInt(1), new SpIntToInt(107), SpEventPriority.Urgent), d.Get());

            this.MsgEqual(new SpBaseEventMsg(new SpIntToInt(1), new SpIntToInt(104), SpEventPriority.High), d.Get());
            this.MsgEqual(new SpBaseEventMsg(new SpIntToInt(1), new SpIntToInt(105), SpEventPriority.High), d.Get());

            this.MsgEqual(new SpBaseEventMsg(new SpIntToInt(1), new SpIntToInt(102), SpEventPriority.Normal), d.Get());
            this.MsgEqual(new SpBaseEventMsg(new SpIntToInt(1), new SpIntToInt(103), SpEventPriority.Normal), d.Get());

            this.MsgEqual(new SpBaseEventMsg(new SpIntToInt(1), new SpIntToInt(100), SpEventPriority.Low), d.Get());
            this.MsgEqual(new SpBaseEventMsg(new SpIntToInt(1), new SpIntToInt(101), SpEventPriority.Low), d.Get());

            this.MsgEqual(new SpBaseEventMsg(new SpIntToInt(25), new SpIntToInt(100)), d.Get());

            TestHelpers.CatchUnexpected(() => {
                d.Dispose();
            });
        }
 public void _50150_PriorityEventStore_AddEvent_UnhandledPriority()
 {
     TestHelpers.CatchExpected(50150, "PriorityEventStore", "AddEvent", "The Priority Type 'Undefined' is not Handled", () => {
         ISpEventStore d = new PriorityEventStore(new SpBaseEventMsg(new SpIntToInt(25), new SpIntToInt(100)));
         d.Add(new SpBaseEventMsg(new SpIntToInt(1), new SpIntToInt(1), SpEventPriority.Undefined));
     });
 }