Beispiel #1
0
        private void AssertAppendToCurrentLog(params IDEEvent[] events)
        {
            _logHandler(TestEventFactory.SomeEvent()); // send another event to flush buffer
            WaitForLogAppend();

            CollectionAssert.AreEqual(events, _loggedEvents);
        }
        private static TestIDEEvent CreateSomeEventAfter(IDEEvent startupEvent)
        {
            var subsequentEvent = TestEventFactory.SomeEvent();

            SetTriggeredAtToAfter(subsequentEvent, startupEvent);
            return(subsequentEvent);
        }
Beispiel #3
0
        public void LogReplicatorCallsAppendEntriesPassingEncodedLog()
        {
            // Arrange
            var encodedLog = BitConverter.GetBytes(100);
            AppendEntriesRequest request = null;

            var service = Substitute.For <IRaftService>();

            service.When(x => x.AppendEntries(Arg.Any <AppendEntriesRequest>()))
            .Do(x => request = x.Arg <AppendEntriesRequest>());

            var peers = new List <PeerNode> {
                new PeerNode()
            };

            var handler = new LogReplicator(peers);

            var @event = TestEventFactory.GetCommandEvent(1L, encodedLog);

            // Act
            handler.Handle(@event);

            // Assert
            request.Should().NotBeNull();
            request.Entries.Should().HaveCount(1);
            request.Entries[0].Should().Equal(encodedLog);
        }
Beispiel #4
0
        public void ExportsErrorEventIfAnonymizerFails()
        {
            var original = TestEventFactory.SomeEvent();

            _logManager.Add(SomeDate, original);

            Mock.Get(_anonymizer).Setup(a => a.Anonymize(It.IsAny <IDEEvent>())).Returns <IDEEvent>(
                e =>
            {
                if (!(e is ErrorEvent))
                {
                    throw new NullReferenceException();
                }
                return(e);
            });

            WhenEverythingIsExported();

            var ee = new ErrorEvent
            {
                Content        = "An error occured during anonymization of KaVE.Commons.TestUtils.Model.Events.TestIDEEvent.",
                StackTrace     = new string[0],
                TriggeredAt    = original.TriggeredAt,
                TerminatedAt   = original.TerminatedAt,
                Duration       = original.Duration,
                IDESessionUUID = original.IDESessionUUID,
                ActiveDocument = original.ActiveDocument,
                ActiveWindow   = original.ActiveWindow,
                Id             = original.Id,
                KaVEVersion    = original.KaVEVersion,
                TriggeredBy    = original.TriggeredBy
            };

            AssertPublishedEvents(ee);
        }
Beispiel #5
0
        public void LogEncoderDoesAddLogEntryToLogRegisterWithIndexTermAndCommandTypeSet()
        {
            // Arrange
            var @event           = TestEventFactory.GetCommandEvent();
            var expectedLogEntry = new LogEntry
            {
                Term        = 3L,
                Index       = 7L,
                CommandType = @event.Command.GetType().AssemblyQualifiedName,
                Command     = @event.Command
            };

            var nodeData = new NodeData
            {
                CurrentTerm = expectedLogEntry.Term,
                CommitIndex = expectedLogEntry.Index - 1
            };
            var raftNode = Substitute.For <INode>();

            raftNode.Data.Returns(nodeData);

            var handler = new LogEncoder(raftNode);

            // Act
            handler.OnNext(@event, 1, false);

            // Assert
            @event.LogEntry.Should().NotBeNull();
            @event.LogEntry.Term.Should().Be(expectedLogEntry.Term);
            @event.LogEntry.Index.Should().Be(expectedLogEntry.Index);
            @event.LogEntry.CommandType.Should().Be(expectedLogEntry.CommandType);
            @event.LogEntry.Command.Should().Be(expectedLogEntry.Command);
        }
        public void CountsEvents()
        {
            _uut.AddEvent(TestEventFactory.SomeEvent());
            _uut.AddEvent(TestEventFactory.SomeEvent());
            _uut.AddEvent(TestEventFactory.SomeEvent());

            Assert.AreEqual(3, _uut.NumberOfEvents);
        }
Beispiel #7
0
        public void ExportsMoreThan65535Events()
        {
            var manyEvents = TestEventFactory.SomeEvents(65536);

            _logManager.Add(SomeDate, manyEvents);

            WhenEverythingIsExported();
        }
Beispiel #8
0
        public void LogsEvent()
        {
            var someEvent = TestEventFactory.SomeEvent();

            WhenLoggerReceives(someEvent);

            AssertAppendToCurrentLog(someEvent);
        }
Beispiel #9
0
        public void DoesntFormatSelectionsForOtherEvents()
        {
            var someEvent = TestEventFactory.SomeEvent();

            var view = new EventViewModel(someEvent);

            Assert.IsNull(view.XamlSelectionsRepresentation);
        }
        public void GetTriggeredAtThrowsIfNotSet()
        {
            var ideEvent = TestEventFactory.SomeEvent();

            ideEvent.TriggeredAt = null;

            ideEvent.GetTriggeredAt();
        }
Beispiel #11
0
        public void DoesntDisplayContextForOtherEvents()
        {
            var someEvent = TestEventFactory.SomeEvent();

            var view = new EventViewModel(someEvent);

            Assert.IsNull(view.XamlContextRepresentation);
        }
        public void GetsTriggeredAtIfSet()
        {
            var someDateTime = new DateTimeOffset();
            var ideEvent     = TestEventFactory.SomeEvent();

            ideEvent.TriggeredAt = someDateTime;

            Assert.AreEqual(someDateTime, ideEvent.GetTriggeredAt());
        }
        public void CountsBreakIfTwoSubsequentEventsAreFarApart()
        {
            var someTriggeredAt = new DateTime(2015, 05, 12, 13, 14, 15);

            _uut.AddEvent(TestEventFactory.SomeEvent(someTriggeredAt));
            _uut.AddEvent(TestEventFactory.SomeEvent(someTriggeredAt + BreakThreshold.Times(2)));

            Assert.AreEqual(1, _uut.NumberOfBreaks);
        }
        public void ShouldDropEventAfterLongBreak()
        {
            var someDateTime     = DateTimeFactory.SomeWorkingHoursDateTime();
            var eventBeforeBreak = TestEventFactory.SomeEvent(someDateTime);
            var eventAfterBreak  = TestEventFactory.SomeEvent(someDateTime + _uut.LongBreak);

            _uut.Map(eventBeforeBreak);
            Assert.AreEqual(Sets.NewHashSet <IDEEvent>(), _uut.Map(eventAfterBreak));
        }
        public void TracksLastActivityOnDay()
        {
            var lastActionTriggeredAt = DateTimeFactory.SomeWorkingHoursDateTime();

            _uut.AddEvent(TestEventFactory.SomeEvent(lastActionTriggeredAt.AddMinutes(-10)));
            _uut.AddEvent(TestEventFactory.SomeEvent(lastActionTriggeredAt));

            Assert.AreEqual(lastActionTriggeredAt, _uut.LastActivityAt);
        }
            public override void ProcessAnyEvent(IDEEvent @event)
            {
                base.ProcessAnyEvent(@event);

                var newEvent = TestEventFactory.SomeEvent();

                newEvent.IDESessionUUID = @event.IDESessionUUID;

                ReplaceCurrentEventWith(newEvent);
            }
            public override void ProcessAnyEvent(IDEEvent @event)
            {
                base.ProcessAnyEvent(@event);

                var newEvent = TestEventFactory.SomeEvent();

                newEvent.IDESessionUUID = @event.IDESessionUUID;

                Insert(newEvent);
            }
Beispiel #18
0
        public void ShouldReadEventsFromLog()
        {
            var expected = TestEventFactory.SomeEvents(3);

            GivenLogContainsEvents(expected);

            var actuals = WhenEventViewModelsAreLoaded().Select(evm => evm.Event);

            CollectionAssert.AreEqual(expected, actuals);
        }
Beispiel #19
0
        public void PublishesProfileEvent()
        {
            var logEntries = TestEventFactory.SomeEvents(25);

            _logManager.Add(SomeDate, logEntries);

            var numberOfEvents = WhenEverythingIsExported();

            AssertPublishedEvents(logEntries);
            Assert.AreEqual(25, numberOfEvents);
        }
Beispiel #20
0
        public void ExportsAnonymizedEvents()
        {
            _logManager.Add(SomeDate, TestEventFactory.SomeEvents(3));
            IDEEvent anonymousEvent = TestEventFactory.SomeEvent();

            Mock.Get(_anonymizer).Setup(a => a.Anonymize(It.IsAny <IDEEvent>())).Returns(anonymousEvent);

            WhenEverythingIsExported();

            AssertPublishedEvents(anonymousEvent, anonymousEvent, anonymousEvent);
        }
        public void CountsNoBreaksIfOnlySmallGapsBetweenEvents()
        {
            var someTriggeredAt = new DateTime(2015, 05, 12, 13, 14, 15);

            _uut.AddEvent(TestEventFactory.SomeEvent(someTriggeredAt));
            _uut.AddEvent(TestEventFactory.SomeEvent(someTriggeredAt.AddMinutes(1)));
            _uut.AddEvent(TestEventFactory.SomeEvent(someTriggeredAt.AddMinutes(5)));
            _uut.AddEvent(TestEventFactory.SomeEvent(someTriggeredAt.AddMinutes(7)));
            _uut.AddEvent(TestEventFactory.SomeEvent(someTriggeredAt.AddMinutes(10)));

            Assert.AreEqual(0, _uut.NumberOfBreaks);
        }
        public void ShouldNotInsertDroppedEventsIfASecondLongBreakOccurs()
        {
            var someDateTime              = DateTimeFactory.SomeWorkingHoursDateTime();
            var eventBeforeBreak          = TestEventFactory.SomeEvent(someDateTime);
            var droppedEvent              = TestEventFactory.SomeEvent(someDateTime + _uut.LongBreak);
            var eventAfterSecondLongBreak = TestEventFactory.SomeEvent(
                someDateTime + _uut.LongBreak + _uut.LongBreak);

            _uut.Map(eventBeforeBreak);
            _uut.Map(droppedEvent);
            CollectionAssert.DoesNotContain(_uut.Map(eventAfterSecondLongBreak), droppedEvent);
        }
Beispiel #23
0
        // RS9 TODO: this tests regularly fails during the build... what's going on here?
        public void ShouldFlushOnShutdown()
        {
            var anEvent       = TestEventFactory.SomeEvent();
            var shutdownEvent = new IDEStateEvent {
                IDELifecyclePhase = IDELifecyclePhase.Shutdown
            };

            WhenLoggerReceives(anEvent);
            _uut.Shutdown(shutdownEvent);

            CollectionAssert.AreEqual(new IDEEvent[] { anEvent, shutdownEvent }, _loggedEvents);
        }
Beispiel #24
0
        public void ReturnsFalseIfStreamContainsOnlyUserProfileEvent()
        {
            var events = new List <IDEEvent>
            {
                TestEventFactory.Some <UserProfileEvent>()
            };

            var stream = new MemoryStream();
            var actual = _uut.WriteEventsToZipStream(events, stream, () => { });

            Assert.IsFalse(actual);
        }
        public void InsertsStartupIfFirstEventIsSomethingElse()
        {
            var someEvent = TestEventFactory.SomeEvent();

            someEvent.TriggeredAt = new DateTime(2015, 1, 23, 14, 7, 12);

            var missingStartupEvent = CreateStartupEvent();

            missingStartupEvent.TriggeredAt = someEvent.GetTriggeredAt().AddMilliseconds(-1);

            AssertTransformation(Stream(someEvent), Stream(missingStartupEvent, someEvent));
        }
Beispiel #26
0
        public void ShouldAddNewEventsIfLogEntryIsAppended()
        {
            var expected = TestEventFactory.SomeEvents(3);

            GivenLogContainsEvents(expected.Take(2).ToList());

            WhenEventViewModelsAreLoaded();
            _mockLog.Raise(l => l.EntryAppended += null, expected[2]);

            var actual = _uut.Events.Select(evt => evt.Event);

            Assert.AreEqual(expected, actual);
        }
        public void CountsMultipleBreaks()
        {
            var someTriggeredAt = new DateTime(2015, 05, 12, 13, 14, 15);

            _uut.AddEvent(TestEventFactory.SomeEvent(someTriggeredAt));
            _uut.AddEvent(TestEventFactory.SomeEvent(someTriggeredAt + BreakThreshold.Times(2)));
            _uut.AddEvent(
                TestEventFactory.SomeEvent(someTriggeredAt + BreakThreshold.Times(2) + TimeSpan.FromMinutes(1)));
            _uut.AddEvent(
                TestEventFactory.SomeEvent(someTriggeredAt + BreakThreshold.Times(4) + TimeSpan.FromMinutes(5)));

            Assert.AreEqual(2, _uut.NumberOfBreaks);
        }
Beispiel #28
0
        public void PublishesOnlyOlderEvents()
        {
            var dateTime   = DateTime.Now;
            var newerEvent = TestEventFactory.SomeEvent(dateTime);
            var olderEvent = TestEventFactory.SomeEvent(dateTime.AddMinutes(-2));

            _logManager.Add(SomeDate, newerEvent, olderEvent);

            var numberOfEvents = _sut.Export(dateTime.AddMinutes(-1), _publisher);

            Assert.AreSame(_userProfileEvent, _publishedUpe);
            AssertPublishedEvents(olderEvent);
            Assert.AreEqual(1, numberOfEvents);
        }
Beispiel #29
0
        public void ShouldNotInvokeEventSelectionEventIfNoEventsWereSelectedPreviously()
        {
            var sessions = new[] { Fix.SomeLog(TestEventFactory.SomeEvents(4)) };

            WhenViewModelIsRefreshedWithSessions(sessions);
            _uut.SelectedSessions = new[] { _uut.Sessions.First() };
            var eventInvoked = false;

            _uut.SingleSelectedSession.OnPropertyChanged(m => m.SelectedEvents, selection => eventInvoked = true);

            WhenViewModelIsRefreshedWithSessions(sessions);

            Assert.IsFalse(eventInvoked);
        }
Beispiel #30
0
        public void PublishesEvents()
        {
            var log1Entries = TestEventFactory.SomeEvents(25);

            _logManager.Add(SomeDate, log1Entries);
            var log2Entries = TestEventFactory.SomeEvents(5);

            _logManager.Add(SomeDate.AddDays(-1), log2Entries);

            var numberOfEvents = WhenEverythingIsExported();

            AssertPublishedEvents(log1Entries.Union(log2Entries));
            Assert.AreEqual(30, numberOfEvents);
        }