예제 #1
0
 private UniformPair <String[]> RenderReceived(String[] fields)
 {
     String[] renderNew = RenderReceived(_listener.GetNewDataListFlattened(), fields);
     String[] renderOld = RenderReceived(_listener.GetOldDataListFlattened(), fields);
     return(new UniformPair <String[]>(renderNew, renderOld));
 }
예제 #2
0
        public void TestTimeAccum()
        {
            long startTime = 1000;

            SendTimer(startTime);
            EPStatement stmt = _epService.EPAdministrator.CreateEPL(
                "select irstream * from " + typeof(SupportMarketDataBean).FullName +
                "#time_accum(10 sec)");

            stmt.Events += _listener.Update;
            EPRuntime engine = _epService.EPRuntime;

            SendTimer(startTime + 10000);
            Assert.IsFalse(_listener.IsInvoked);

            // 1st at 10 sec
            engine.SendEvent(_events[0]);
            Assert.AreSame(_listener.AssertOneGetNewAndReset().Underlying, _events[0]);

            // 2nd event at 14 sec
            SendTimer(startTime + 14000);
            engine.SendEvent(_events[1]);
            Assert.AreSame(_listener.AssertOneGetNewAndReset().Underlying, _events[1]);

            // 3nd event at 14 sec
            SendTimer(startTime + 14000);
            engine.SendEvent(_events[2]);
            Assert.AreSame(_listener.AssertOneGetNewAndReset().Underlying, _events[2]);

            // 3rd event at 23 sec
            SendTimer(startTime + 23000);
            engine.SendEvent(_events[3]);
            Assert.AreSame(_listener.AssertOneGetNewAndReset().Underlying, _events[3]);

            // no event till 33 sec
            SendTimer(startTime + 32999);
            Assert.IsFalse(_listener.IsInvoked);

            SendTimer(startTime + 33000);
            Assert.IsNull(_listener.LastNewData);
            Assert.AreEqual(1, _listener.OldDataList.Count);
            Assert.AreEqual(4, _listener.LastOldData.Length);
            EPAssertionUtil.AssertEqualsExactOrderUnderlying(new Object[] { _events[0], _events[1], _events[2], _events[3] }, _listener.GetOldDataListFlattened());
            _listener.Reset();

            // no events till 50 sec
            SendTimer(startTime + 50000);
            Assert.IsFalse(_listener.IsInvoked);

            // next two events at 55 sec
            SendTimer(startTime + 55000);
            engine.SendEvent(_events[4]);
            Assert.AreSame(_listener.AssertOneGetNewAndReset().Underlying, _events[4]);
            engine.SendEvent(_events[5]);
            Assert.AreSame(_listener.AssertOneGetNewAndReset().Underlying, _events[5]);

            // no event till 65 sec
            SendTimer(startTime + 64999);
            Assert.IsFalse(_listener.IsInvoked);

            SendTimer(startTime + 65000);
            Assert.IsNull(_listener.LastNewData);
            Assert.AreEqual(1, _listener.OldDataList.Count);
            Assert.AreEqual(2, _listener.LastOldData.Length);
            EPAssertionUtil.AssertEqualsExactOrderUnderlying(new Object[] { _events[4], _events[5] }, _listener.GetOldDataListFlattened());
            _listener.Reset();

            // next window
            engine.SendEvent(_events[6]);
            Assert.AreSame(_listener.AssertOneGetNewAndReset().Underlying, _events[6]);

            SendTimer(startTime + 74999);
            engine.SendEvent(_events[7]);
            Assert.AreSame(_listener.AssertOneGetNewAndReset().Underlying, _events[7]);

            SendTimer(startTime + 74999 + 10000);
            Assert.IsNull(_listener.LastNewData);
            Assert.AreEqual(1, _listener.OldDataList.Count);
            Assert.AreEqual(2, _listener.LastOldData.Length);
            EPAssertionUtil.AssertEqualsExactOrderUnderlying(new Object[] { _events[6], _events[7] }, _listener.GetOldDataListFlattened());
            _listener.Reset();
        }
예제 #3
0
        private void RunAssertionGroupedWindow(EPServiceProvider epService, SupportMarketDataBean[] events)
        {
            long startTime = 1000;

            SendTimer(epService, startTime);
            EPStatement stmt = epService.EPAdministrator.CreateEPL(
                "select irstream * from " + typeof(SupportMarketDataBean).FullName +
                "#groupwin(symbol)#time_accum(10 sec)");
            var listener = new SupportUpdateListener();

            stmt.Events += listener.Update;
            EPRuntime engine = epService.EPRuntime;

            // 1st S1 event
            SendTimer(epService, startTime + 10000);
            engine.SendEvent(events[1]);
            Assert.AreSame(listener.AssertOneGetNewAndReset().Underlying, events[1]);

            // 1st S2 event
            SendTimer(epService, startTime + 12000);
            engine.SendEvent(events[2]);
            Assert.AreSame(listener.AssertOneGetNewAndReset().Underlying, events[2]);

            // 2nd S1 event
            SendTimer(epService, startTime + 15000);
            engine.SendEvent(events[11]);
            Assert.AreSame(listener.AssertOneGetNewAndReset().Underlying, events[11]);

            // 2nd S2 event
            SendTimer(epService, startTime + 18000);
            engine.SendEvent(events[12]);
            Assert.AreSame(listener.AssertOneGetNewAndReset().Underlying, events[12]);

            // 3rd S1 event
            SendTimer(epService, startTime + 21000);
            engine.SendEvent(events[21]);
            Assert.AreSame(listener.AssertOneGetNewAndReset().Underlying, events[21]);

            SendTimer(epService, startTime + 28000);
            Assert.IsNull(listener.LastNewData);
            Assert.AreEqual(1, listener.OldDataList.Count);
            Assert.AreEqual(2, listener.LastOldData.Length);
            EPAssertionUtil.AssertEqualsExactOrderUnderlying(new object[] { events[2], events[12] }, listener.GetOldDataListFlattened());
            listener.Reset();

            // 3rd S2 event
            SendTimer(epService, startTime + 29000);
            engine.SendEvent(events[32]);
            Assert.AreSame(listener.AssertOneGetNewAndReset().Underlying, events[32]);

            SendTimer(epService, startTime + 31000);
            Assert.IsNull(listener.LastNewData);
            Assert.AreEqual(1, listener.OldDataList.Count);
            Assert.AreEqual(3, listener.LastOldData.Length);
            EPAssertionUtil.AssertEqualsExactOrderUnderlying(new object[] { events[1], events[11], events[21] }, listener.GetOldDataListFlattened());
            listener.Reset();

            SendTimer(epService, startTime + 39000);
            Assert.IsNull(listener.LastNewData);
            Assert.AreEqual(1, listener.LastOldData.Length);
            EPAssertionUtil.AssertEqualsExactOrderUnderlying(new object[] { events[32] }, listener.GetOldDataListFlattened());
            listener.Reset();

            stmt.Dispose();
        }
예제 #4
0
        private void RunAssertionTimeAccum(EPServiceProvider epService, SupportMarketDataBean[] events)
        {
            long startTime = 1000;

            SendTimer(epService, startTime);
            EPStatement stmt = epService.EPAdministrator.CreateEPL(
                "select irstream * from " + typeof(SupportMarketDataBean).FullName +
                "#time_accum(10 sec)");
            var listener = new SupportUpdateListener();

            stmt.Events += listener.Update;
            EPRuntime engine = epService.EPRuntime;

            SendTimer(epService, startTime + 10000);
            Assert.IsFalse(listener.IsInvoked);

            // 1st at 10 sec
            engine.SendEvent(events[0]);
            Assert.AreSame(listener.AssertOneGetNewAndReset().Underlying, events[0]);

            // 2nd event at 14 sec
            SendTimer(epService, startTime + 14000);
            engine.SendEvent(events[1]);
            Assert.AreSame(listener.AssertOneGetNewAndReset().Underlying, events[1]);

            // 3nd event at 14 sec
            SendTimer(epService, startTime + 14000);
            engine.SendEvent(events[2]);
            Assert.AreSame(listener.AssertOneGetNewAndReset().Underlying, events[2]);

            // 3rd event at 23 sec
            SendTimer(epService, startTime + 23000);
            engine.SendEvent(events[3]);
            Assert.AreSame(listener.AssertOneGetNewAndReset().Underlying, events[3]);

            // no event till 33 sec
            SendTimer(epService, startTime + 32999);
            Assert.IsFalse(listener.IsInvoked);

            SendTimer(epService, startTime + 33000);
            Assert.IsNull(listener.LastNewData);
            Assert.AreEqual(1, listener.OldDataList.Count);
            Assert.AreEqual(4, listener.LastOldData.Length);
            EPAssertionUtil.AssertEqualsExactOrderUnderlying(new object[] { events[0], events[1], events[2], events[3] }, listener.GetOldDataListFlattened());
            listener.Reset();

            // no events till 50 sec
            SendTimer(epService, startTime + 50000);
            Assert.IsFalse(listener.IsInvoked);

            // next two events at 55 sec
            SendTimer(epService, startTime + 55000);
            engine.SendEvent(events[4]);
            Assert.AreSame(listener.AssertOneGetNewAndReset().Underlying, events[4]);
            engine.SendEvent(events[5]);
            Assert.AreSame(listener.AssertOneGetNewAndReset().Underlying, events[5]);

            // no event till 65 sec
            SendTimer(epService, startTime + 64999);
            Assert.IsFalse(listener.IsInvoked);

            SendTimer(epService, startTime + 65000);
            Assert.IsNull(listener.LastNewData);
            Assert.AreEqual(1, listener.OldDataList.Count);
            Assert.AreEqual(2, listener.LastOldData.Length);
            EPAssertionUtil.AssertEqualsExactOrderUnderlying(new object[] { events[4], events[5] }, listener.GetOldDataListFlattened());
            listener.Reset();

            // next window
            engine.SendEvent(events[6]);
            Assert.AreSame(listener.AssertOneGetNewAndReset().Underlying, events[6]);

            SendTimer(epService, startTime + 74999);
            engine.SendEvent(events[7]);
            Assert.AreSame(listener.AssertOneGetNewAndReset().Underlying, events[7]);

            SendTimer(epService, startTime + 74999 + 10000);
            Assert.IsNull(listener.LastNewData);
            Assert.AreEqual(1, listener.OldDataList.Count);
            Assert.AreEqual(2, listener.LastOldData.Length);
            EPAssertionUtil.AssertEqualsExactOrderUnderlying(new object[] { events[6], events[7] }, listener.GetOldDataListFlattened());
            listener.Reset();

            stmt.Dispose();
        }
예제 #5
0
        private void RunAssertionTimeLengthBatch(EPServiceProvider epService, SupportMarketDataBean[] events)
        {
            long startTime = 1000;

            SendTimer(epService, startTime);
            EPStatement stmt = epService.EPAdministrator.CreateEPL(
                "select irstream * from " + typeof(SupportMarketDataBean).FullName +
                "#time_length_batch(10 sec, 3)");
            var listener = new SupportUpdateListener();

            stmt.Events += listener.Update;
            EPRuntime engine = epService.EPRuntime;

            // Send 3 events in batch
            engine.SendEvent(events[0]);
            Assert.IsFalse(listener.IsInvoked);

            engine.SendEvent(events[1]);
            Assert.IsFalse(listener.IsInvoked);

            engine.SendEvent(events[2]);
            Assert.AreEqual(1, listener.NewDataList.Count);
            EPAssertionUtil.AssertEqualsExactOrderUnderlying(new object[] { events[0], events[1], events[2] }, listener.GetNewDataListFlattened());
            listener.Reset();

            // Send another 3 events in batch
            engine.SendEvent(events[3]);
            engine.SendEvent(events[4]);
            Assert.IsFalse(listener.IsInvoked);

            engine.SendEvent(events[5]);
            Assert.AreEqual(1, listener.NewDataList.Count);
            Assert.AreEqual(1, listener.OldDataList.Count);
            EPAssertionUtil.AssertEqualsExactOrderUnderlying(new object[] { events[0], events[1], events[2] }, listener.GetOldDataListFlattened());
            EPAssertionUtil.AssertEqualsExactOrderUnderlying(new object[] { events[3], events[4], events[5] }, listener.GetNewDataListFlattened());
            listener.Reset();

            // Expire the last 3 events by moving time
            SendTimer(epService, startTime + 9999);
            Assert.IsFalse(listener.IsInvoked);

            SendTimer(epService, startTime + 10000);
            Assert.AreEqual(1, listener.NewDataList.Count);
            Assert.AreEqual(1, listener.OldDataList.Count);
            EPAssertionUtil.AssertEqualsExactOrderUnderlying(new object[] { events[3], events[4], events[5] }, listener.GetOldDataListFlattened());
            EPAssertionUtil.AssertEqualsExactOrderUnderlying(new object[] {}, listener.GetNewDataListFlattened());
            listener.Reset();

            SendTimer(epService, startTime + 10001);
            Assert.IsFalse(listener.IsInvoked);

            // Send an event, let the timer send the batch
            SendTimer(epService, startTime + 10100);
            engine.SendEvent(events[6]);
            Assert.IsFalse(listener.IsInvoked);

            SendTimer(epService, startTime + 19999);
            Assert.IsFalse(listener.IsInvoked);

            SendTimer(epService, startTime + 20000);
            Assert.AreEqual(1, listener.NewDataList.Count);
            Assert.AreEqual(1, listener.OldDataList.Count);
            EPAssertionUtil.AssertEqualsExactOrderUnderlying(new object[] {}, listener.GetOldDataListFlattened());
            EPAssertionUtil.AssertEqualsExactOrderUnderlying(new object[] { events[6] }, listener.GetNewDataListFlattened());
            listener.Reset();

            SendTimer(epService, startTime + 20001);
            Assert.IsFalse(listener.IsInvoked);

            // Send two events, let the timer send the batch
            SendTimer(epService, startTime + 29998);
            engine.SendEvent(events[7]);
            engine.SendEvent(events[8]);
            Assert.IsFalse(listener.IsInvoked);

            SendTimer(epService, startTime + 29999);
            Assert.IsFalse(listener.IsInvoked);

            SendTimer(epService, startTime + 30000);
            Assert.AreEqual(1, listener.NewDataList.Count);
            Assert.AreEqual(1, listener.OldDataList.Count);
            EPAssertionUtil.AssertEqualsExactOrderUnderlying(new object[] { events[6] }, listener.GetOldDataListFlattened());
            EPAssertionUtil.AssertEqualsExactOrderUnderlying(new object[] { events[7], events[8] }, listener.GetNewDataListFlattened());
            listener.Reset();

            // Send three events, the the 3 events batch
            SendTimer(epService, startTime + 30001);
            Assert.IsFalse(listener.IsInvoked);

            engine.SendEvent(events[9]);
            engine.SendEvent(events[10]);
            Assert.IsFalse(listener.IsInvoked);

            SendTimer(epService, startTime + 39000);
            Assert.IsFalse(listener.IsInvoked);

            engine.SendEvent(events[11]);
            Assert.AreEqual(1, listener.NewDataList.Count);
            Assert.AreEqual(1, listener.OldDataList.Count);
            EPAssertionUtil.AssertEqualsExactOrderUnderlying(new object[] { events[7], events[8] }, listener.GetOldDataListFlattened());
            EPAssertionUtil.AssertEqualsExactOrderUnderlying(new object[] { events[9], events[10], events[11] }, listener.GetNewDataListFlattened());
            listener.Reset();

            // Send 1 event, let the timer to do the batch
            SendTimer(epService, startTime + 39000 + 9999);
            Assert.IsFalse(listener.IsInvoked);

            engine.SendEvent(events[12]);
            Assert.IsFalse(listener.IsInvoked);

            SendTimer(epService, startTime + 39000 + 10000);
            Assert.AreEqual(1, listener.NewDataList.Count);
            Assert.AreEqual(1, listener.OldDataList.Count);
            EPAssertionUtil.AssertEqualsExactOrderUnderlying(new object[] { events[9], events[10], events[11] }, listener.GetOldDataListFlattened());
            EPAssertionUtil.AssertEqualsExactOrderUnderlying(new object[] { events[12] }, listener.GetNewDataListFlattened());
            listener.Reset();

            SendTimer(epService, startTime + 39000 + 10001);
            Assert.IsFalse(listener.IsInvoked);

            // Send no events, let the timer to do the batch
            SendTimer(epService, startTime + 39000 + 19999);
            Assert.IsFalse(listener.IsInvoked);

            SendTimer(epService, startTime + 39000 + 20000);
            Assert.AreEqual(1, listener.NewDataList.Count);
            Assert.AreEqual(1, listener.OldDataList.Count);
            EPAssertionUtil.AssertEqualsExactOrderUnderlying(new object[] { events[12] }, listener.GetOldDataListFlattened());
            EPAssertionUtil.AssertEqualsExactOrderUnderlying(new object[] {}, listener.GetNewDataListFlattened());
            listener.Reset();

            SendTimer(epService, startTime + 39000 + 20001);
            Assert.IsFalse(listener.IsInvoked);

            // Send no events, let the timer to do NO batch
            SendTimer(epService, startTime + 39000 + 29999);
            Assert.IsFalse(listener.IsInvoked);

            SendTimer(epService, startTime + 39000 + 30000);
            Assert.IsFalse(listener.IsInvoked);

            SendTimer(epService, startTime + 39000 + 30001);
            Assert.IsFalse(listener.IsInvoked);

            // Send 1 more event
            SendTimer(epService, startTime + 90000);
            Assert.IsFalse(listener.IsInvoked);

            engine.SendEvent(events[13]);
            Assert.IsFalse(listener.IsInvoked);

            SendTimer(epService, startTime + 99999);
            Assert.IsFalse(listener.IsInvoked);

            SendTimer(epService, startTime + 100000);
            Assert.AreEqual(1, listener.NewDataList.Count);
            Assert.AreEqual(1, listener.OldDataList.Count);
            EPAssertionUtil.AssertEqualsExactOrderUnderlying(new object[] {}, listener.GetOldDataListFlattened());
            EPAssertionUtil.AssertEqualsExactOrderUnderlying(new object[] { events[13] }, listener.GetNewDataListFlattened());
            listener.Reset();

            stmt.Dispose();
        }