private static IDEStateEvent CreateShutdownEventAfter(IDEEvent previousEvent, int milliseconds = 60000) { var shutdownEvent = new IDEStateEvent { IDELifecyclePhase = IDELifecyclePhase.Shutdown }; SetTriggeredAtToAfter(shutdownEvent, previousEvent, milliseconds); return(shutdownEvent); }
private static IDEStateEvent CreateArbitraryEvent() { var @event = new IDEStateEvent { OpenDocuments = { Names.Document("some doc") }, OpenWindows = { Names.Window("some window") } }; return(@event); }
public void CollectsOpenWindowsFromIDEStateEvent() { var ideEvent = new IDEStateEvent { OpenWindows = { Names.Window("window 1"), Names.Window("window 2") } }; Process(ideEvent); AssertNameCollected(ideEvent.OpenWindows.ToArray()); }
public void CollectsOpenDocumentsFromIDEStateEvent() { var ideEvent = new IDEStateEvent { OpenDocuments = { Names.Document("doc 1"), Names.Document("doc 2") } }; Process(ideEvent); AssertNameCollected(ideEvent.OpenDocuments.ToArray()); }
// 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); }
private void ProcessIDEStateEvent(IDEStateEvent @event) { if (IsIntermediateRuntimeEvent(@event)) { DropCurrentEvent(); } else { var activity = IsStartup(@event) ? Activity.EnterIDE : Activity.LeaveIDE; InsertActivity(@event, activity); } }
private void ProcessIDEStateEvent(IDEStateEvent @event) { switch (@event.IDELifecyclePhase) { case IDELifecyclePhase.Startup: Log(" START at {0} - {1}", @event.GetTriggeredAt(), @event.IDESessionUUID); break; case IDELifecyclePhase.Shutdown: Log(" STOP at {0} - {1}", @event.GetTriggeredAt(), @event.IDESessionUUID); break; } }
public void ShouldSerializeToString() { var e = new IDEStateEvent { IDELifecyclePhase = IDELifecyclePhase.Runtime, OpenDocuments = new[] { Names.Document("d SomeOpenDocument") }, OpenWindows = new[] { Names.Window("w SomeOpenWindow") } }; const string expected = "{\"$type\":\"KaVE.Commons.Model.Events.VisualStudio.IDEStateEvent, KaVE.Commons\",\"IDELifecyclePhase\":2,\"OpenWindows\":[\"0Win:w SomeOpenWindow\"],\"OpenDocuments\":[\"0Doc:d SomeOpenDocument\"],\"TriggeredBy\":0}"; JsonAssert.SerializesTo(e, expected); JsonAssert.DeserializesTo(expected, e); }
private void ProcessIDEStateEvent(IDEStateEvent @event) { switch (@event.IDELifecyclePhase) { case IDELifecyclePhase.Startup: if (_ideIsRunning) { Insert(CreateMissingShutdownEvent(_lastEventTriggerTime)); } _ideIsRunning = true; break; case IDELifecyclePhase.Shutdown: _ideIsRunning = false; break; } }
public void SetsSessionIdOfIDEStateEventToSessionIdOfSubsequentEventIfNotSetAndNoPreviousEventExists() { GivenInputArchive("0.zip") .With("0.json", _brokenShutdownEvent) .With("1.json", _completeEvent); WhenImportIsRun(); var expected = new IDEStateEvent { IDESessionUUID = _completeEvent.IDESessionUUID, TriggeredAt = _brokenShutdownEvent.TriggeredAt, IDELifecyclePhase = _brokenShutdownEvent.IDELifecyclePhase }; CollectionAssert.Contains(TestFeedbackDatabase.GetEventsCollection().FindAll(), expected); }
public void CorrectsStateEventIfAllPreviousAreDuplicates() { GivenInputArchive("0.zip").With("0.json", _completeEvent); GivenInputArchive("1.zip") .With("0.json", _completeEvent) .With("1.json", _brokenShutdownEvent); WhenImportIsRun(); var expected = new IDEStateEvent { IDESessionUUID = _completeEvent.IDESessionUUID, TriggeredAt = _brokenShutdownEvent.TriggeredAt, IDELifecyclePhase = _brokenShutdownEvent.IDELifecyclePhase }; CollectionAssert.Contains(TestFeedbackDatabase.GetEventsCollection().FindAll(), expected); }
public void TreatsIDEStateEventAsAnonymousEventIfWholeArchiveIsAnonymous() { var anonymousEvent = new TestIDEEvent { IDESessionUUID = null }; GivenInputArchive("0.zip") .With("0.json", anonymousEvent) .With("1.json", _brokenShutdownEvent); WhenImportIsRun(); var onlyDeveloper = TestFeedbackDatabase.GetDeveloperCollection().FindAll().First(); var expected = new IDEStateEvent { IDESessionUUID = onlyDeveloper.Id.ToString(), TriggeredAt = _brokenShutdownEvent.TriggeredAt, IDELifecyclePhase = _brokenShutdownEvent.IDELifecyclePhase }; CollectionAssert.Contains(TestFeedbackDatabase.GetEventsCollection().FindAll(), expected); }
public void ShouldSetIDESessionUUIDToShutdownEvent() { IDEStateEvent shutdownEvent = null; var mockLogger = new Mock <IEventLogger>(); mockLogger.Setup(logger => logger.Shutdown(It.IsAny <IDEStateEvent>())) .Callback <IDEStateEvent>(ideEvent => shutdownEvent = ideEvent); Lifetimes.Using( lt => new IDEStateEventGenerator( TestRSEnv, TestMessageBus, lt, TestDateUtils, mockLogger.Object, TestThreading)); Assert.AreEqual(TestIDESession.UUID, shutdownEvent.IDESessionUUID); Assert.AreEqual(IDELifecyclePhase.Shutdown, shutdownEvent.IDELifecyclePhase); Assert.AreEqual(TestDateUtils.Now, shutdownEvent.TriggeredAt); }
public void Shutdown(IDEStateEvent shutdownEvent) { LogEvent(_lastEvent); LogEvent(shutdownEvent); }
private static bool IsStartup(IDEStateEvent @event) { return(@event.IDELifecyclePhase == IDELifecyclePhase.Startup); }
private static bool IsIntermediateRuntimeEvent(IDEStateEvent @event) { return(@event.IDELifecyclePhase == IDELifecyclePhase.Runtime); }