Esempio n. 1
0
        public void UpdateUserFactsWhenUserHasNoUpdatedTrackers_FactsInRepositoryNotUpdated()
        {
            var generalFact = CreateGeneralFact();

            _multipleFactsRepository.CreateUserGeneralFacts(_tracker.CreatorId, new[] { generalFact });
            var specificFact = CreateSpecificFact();

            _singleFactsRepository.CreateTrackerSpecificFacts(_tracker.Id, _tracker.CreatorId, new[] { specificFact });
            _tracker.IsUpdated = false;
            _trackerRepository.UpdateTracker(_tracker);

            _statisticGenerator.UpdateUserFacts(_tracker.CreatorId);
            var loadedGeneralFact  = _multipleFactsRepository.ReadUserGeneralFacts(_tracker.CreatorId);
            var loadedSpecificFact = _singleFactsRepository.ReadTrackerSpecificFacts(_tracker.CreatorId, _tracker.Id);

            Assert.AreEqual(generalFact.GetHashCode(), loadedGeneralFact.First().GetHashCode());
            Assert.AreEqual(specificFact.GetHashCode(), loadedSpecificFact.First().GetHashCode());
        }
Esempio n. 2
0
        public void GetSingleTrackerFactsGoodCase_ReturnFacts()
        {
            var singleTrackerFact = CreateSpecificFact();

            _trackerRepository.SaveTracker(_tracker);
            _singleFactsRepository.CreateTrackerSpecificFacts(_tracker.Id, _tracker.CreatorId, new [] { singleTrackerFact });

            var facts = _statisticsService.GetSingleTrackerFacts(_tracker.Id, _tracker.CreatorId);

            Assert.AreEqual(singleTrackerFact.GetHashCode(), facts.First().GetHashCode());
        }
Esempio n. 3
0
        private void UpdateUserSpecificFacts(Guid userId, IEnumerable <EventTracker> userTrackers)
        {
            var updatedTrackers = userTrackers.Where(tracker => tracker.IsUpdated);

            foreach (var tracker in updatedTrackers)
            {
                var trackerEvents = _eventRepository.LoadAllTrackerEvents(tracker.Id);
                var updatedFacts  = _specificFactProvider.GetFacts(trackerEvents, tracker);
                _singleFactsRepository.CreateTrackerSpecificFacts(tracker.Id, userId, updatedFacts);
                tracker.IsUpdated = false;
            }
        }