public void PreservessOrderFromArchiveWithArtificialTriggerTimes() { GivenInputArchive("1.zip") .With("0.json", new TestIDEEvent { TriggeredAt = null, TestProperty = "23" }) .With("1.json", new TestIDEEvent { TriggeredAt = null, TestProperty = "1" }) .With("2.json", new TestIDEEvent { TriggeredAt = null, TestProperty = "42" }); WhenImportIsRun(); var ideEvents = TestFeedbackDatabase.GetEventsCollection() .FindAll() .Cast <TestIDEEvent>() .OrderBy(evt => evt.TriggeredAt) .ToList(); Assert.AreEqual(3, ideEvents.Count); Assert.Less(ideEvents[0].TriggeredAt, ideEvents[1].TriggeredAt); Assert.Less(ideEvents[1].TriggeredAt, ideEvents[2].TriggeredAt); }
private IDEEvent GetSingleEventFromDatabase() { var ideEvents = TestFeedbackDatabase.GetEventsCollection().FindAll().ToList(); Assert.AreEqual(1, ideEvents.Count); return(ideEvents[0]); }
public void ShouldUseSessionIdOfFilteredEventsToFindDeveloper() { var @event = new TestIDEEvent { IDESessionUUID = "sessionA", TestProperty = "a", TriggeredAt = new DateTimeOffset() }; GivenInputArchive("0.zip").With("0.json", @event); GivenInputArchive("1.zip") .With("0.json", @event) .With("1.json", new TestIDEEvent { IDESessionUUID = "sessionB", TestProperty = "b" }); WhenImportIsRun(); var developers = TestFeedbackDatabase.GetDeveloperCollection().FindAll().ToList(); Assert.AreEqual(1, developers.Count); var developer = developers[0]; CollectionAssert.AreEquivalent(new[] { "sessionA", "sessionB" }, developer.SessionIds); }
private Developer GetSingleDeveloperFromDatabase() { var developers = TestFeedbackDatabase.GetDeveloperCollection().FindAll().ToList(); Assert.AreEqual(1, developers.Count); return(developers[0]); }
public void DoesNotOverrideSessionId() { GivenInputArchive("0.zip").With("0.json", new IDEStateEvent { IDESessionUUID = "a" }); WhenImportIsRun(); var singleEvent = TestFeedbackDatabase.GetEventsCollection().FindAll().First(); Assert.AreEqual("a", singleEvent.IDESessionUUID); }
public void FiltersDuplicate() { var @event = new TestIDEEvent { IDESessionUUID = "sessionA", TestProperty = "a", TriggeredAt = new DateTimeOffset() }; GivenInputArchive("0.zip").With("0.json", @event).With("1.json", @event); WhenImportIsRun(); Assert.AreEqual(1, TestFeedbackDatabase.GetEventsCollection().FindAll().Count()); }
public void CreatesNewAnonymousDeveloperForNewArchive() { GivenInputArchive("0.zip").With("0.json", new TestIDEEvent { IDESessionUUID = null, TestProperty = "0" }); GivenInputArchive("1.zip").With("0.json", new TestIDEEvent { IDESessionUUID = null, TestProperty = "1" }); WhenImportIsRun(); var developers = TestFeedbackDatabase.GetDeveloperCollection().FindAll(); Assert.AreEqual(2, developers.Count()); }
public void UsesAnonymousDeveloperIdAsSessionIdForEventsWithoutSessionId() { GivenInputArchive("0.zip").With("0.json", new TestIDEEvent { IDESessionUUID = null }); WhenImportIsRun(); var ideEvents = TestFeedbackDatabase.GetEventsCollection().FindAll().ToList(); Assert.AreEqual(1, ideEvents.Count); var ideEvent = ideEvents[0]; var developer = GetSingleDeveloperFromDatabase(); Assert.AreEqual(developer.Id.ToString(), ideEvent.IDESessionUUID); }
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 SetUpFeedbackDatabases() { TestFeedbackDatabase = new TestFeedbackDatabase(); }
public void EnsureCleanDatabase() { CollectionAssert.IsEmpty(TestFeedbackDatabase.GetDeveloperCollection().FindAll()); CollectionAssert.IsEmpty(TestFeedbackDatabase.GetEventsCollection().FindAll()); }