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();
 }
Exemplo n.º 13
0
 public void EnsureCleanDatabase()
 {
     CollectionAssert.IsEmpty(TestFeedbackDatabase.GetDeveloperCollection().FindAll());
     CollectionAssert.IsEmpty(TestFeedbackDatabase.GetEventsCollection().FindAll());
 }