public void PassesEventsToSubTransformer()
        {
            var testEvent = TestIDEEvent(0, 1);

            var subTransformer = Mock.Of <IEventToIntervalTransformer <TestInterval> >();
            var sut            = new ZeroLengthIntervalFilterTransformer(subTransformer);

            sut.ProcessEvent(testEvent);
            Mock.Get(subTransformer).Verify(t => t.ProcessEvent(testEvent));
        }
        public void FiltersZeroLengthIntervals()
        {
            var goodInterval = new TestInterval {
                StartTime = DateTime.Now, Duration = TimeSpan.FromMinutes(1)
            };
            var badInterval = new TestInterval {
                StartTime = DateTime.Now, Duration = TimeSpan.Zero
            };

            var mockTransformer = Mock.Of <IEventToIntervalTransformer <Interval> >();

            Mock.Get(mockTransformer)
            .Setup(t => t.SignalEndOfEventStream())
            .Returns(new[] { goodInterval, badInterval });

            var sut = new ZeroLengthIntervalFilterTransformer(mockTransformer);

            CollectionAssert.AreEqual(new[] { goodInterval }, sut.SignalEndOfEventStream());
        }
        private static ZeroLengthIntervalFilterTransformer CreateDefaultTransformer()
        {
            var context     = new TransformerContext();
            var transformer =
                new ZeroLengthIntervalFilterTransformer(
                    new AggregateTransformer(
                        context,
                        new VisualStudioOpenedTransformer(context),
                        new TestRunIntervalTransformer(context),
                        new SessionIdSortingTransformer <Interval>(
                            () =>
                            new AggregateTransformer(
                                new VisualStudioActiveTransformer(context),
                                new UserActiveTransformer(context),
                                new PerspectiveTransformer(context),
                                //new FileOpenTransformer(context),
                                new FileInteractionTransformer(context)
                                )
                            )
                        )
                    );

            return(transformer);
        }