Пример #1
0
        public void CountsEqualSetsCorrectly()
        {
            var commandEvent = new CommandEvent {
                CommandId = "Test"
            };
            var documentEvent = new DocumentEvent {
                Action = DocumentAction.Saved
            };
            var concurrentEvent = new ConcurrentEvent
            {
                ConcurrentEventList = new List <IDEEvent>
                {
                    commandEvent,
                    documentEvent
                }
            };

            _uut.OnEvent(concurrentEvent);
            _uut.OnEvent(concurrentEvent);

            Assert.AreEqual(
                2,
                _uut.Statistic[
                    Sets.NewHashSet(
                        EventMappingUtils.GetAbstractStringOf(documentEvent),
                        EventMappingUtils.GetAbstractStringOf(commandEvent))]);
        }
        public void GenerateConcurrentEvent(IDEEvent @event)
        {
            if (@event is CommandEvent)
            {
                _commandEvent = @event as CommandEvent;
            }
            else if (_commandEvent != null)
            {
                var resultEvent = new ConcurrentEvent
                {
                    ActiveDocument      = @event.ActiveDocument,
                    ActiveWindow        = @event.ActiveWindow,
                    Duration            = @event.TerminatedAt - _commandEvent.TriggeredAt,
                    ConcurrentEventList = new KaVEList <IDEEvent> {
                        _commandEvent, @event
                    },
                    IDESessionUUID = @event.IDESessionUUID,
                    KaVEVersion    = @event.KaVEVersion,
                    TerminatedAt   = @event.TerminatedAt,
                    TriggeredAt    = _commandEvent.TriggeredAt,
                    TriggeredBy    = _commandEvent.TriggeredBy
                };

                _commandEvent = null;

                ReplaceCurrentEventWith(resultEvent);
            }

            DropCurrentEvent();
        }
Пример #3
0
        public void ShouldNotAddEmptySetToStatistic()
        {
            var concurrentEvent = new ConcurrentEvent();

            _uut.OnEvent(concurrentEvent);

            CollectionAssert.IsEmpty(_uut.Statistic);
        }
        public void OnlyGeneratesOneConcurrentEventForCommandAndFollowup()
        {
            var expectedCommandEvent = new CommandEvent();
            var firstFollowupEvent   = TestEventFactory.SomeEvent();
            var secondFollowupEvent  = TestEventFactory.SomeEvent();

            var expectedConcurrentEvent = new ConcurrentEvent
            {
                ConcurrentEventList = new List <IDEEvent>
                {
                    expectedCommandEvent,
                    firstFollowupEvent
                }
            };

            CollectionAssert.AreEquivalent(Sets.NewHashSet <IDEEvent>(), _uut.Map(expectedCommandEvent));
            CollectionAssert.AreEquivalent(Sets.NewHashSet <IDEEvent>(expectedConcurrentEvent), _uut.Map(firstFollowupEvent));
            CollectionAssert.AreEquivalent(Sets.NewHashSet <IDEEvent>(), _uut.Map(secondFollowupEvent));
        }
Пример #5
0
        public void HandleConcurrentEvents(ConcurrentEvent concurrentEvent)
        {
            var resultSet = Sets.NewHashSet <string>();

            foreach (var ideEvent in concurrentEvent.ConcurrentEventList)
            {
                resultSet.Add(EventMappingUtils.GetAbstractStringOf(ideEvent));
            }

            if (Statistic.ContainsKey(resultSet))
            {
                Statistic[resultSet]++;
            }
            else
            {
                if (resultSet.Count > 0)
                {
                    Statistic.Add(resultSet, 1);
                }
            }
        }