Ejemplo n.º 1
0
        public async Task Stream_Trace_default_behavior_can_be_overridden()
        {
            IStreamQuery <int> receivedSendQuery    = null;
            IStreamQuery <int> receivedResultsQuery = null;
            IStreamBatch <int> receivedBatch        = null;

            var stream = Enumerable.Range(1, 1000)
                         .AsStream()
                         .Trace(onSendQuery: q => { receivedSendQuery = q; },
                                onResults: (q, b) =>
            {
                receivedResultsQuery = q;
                receivedBatch        = b;
            });

            var sentQuery = stream.CreateQuery(Cursor.New(15), batchSize: 3);
            await sentQuery.NextBatch();

            receivedSendQuery.Should().BeSameAs(sentQuery);
            receivedResultsQuery.Should().BeSameAs(sentQuery);
            receivedBatch.Count().Should().Be(3);
            receivedBatch.Should().ContainInOrder(16, 17, 18);
        }