public void CreateEventWhenEventAndTrackerCustomizationEqualsAndCustomizationIsRequired_CreatesEvent() { var tracker = TestingMethods.CreateTrackerWithRequiredCustomization(Guid.NewGuid(), "tracker", new TrackerCustomizationSettings( true, true, Option <string> .Some("meter"), false, true, false, true)); _trackerRepository.SaveTracker(tracker); var newEventCustomization = new EventCustomParameters( Option <Photo> .Some(new Photo(photoBytes: new byte[5])), Option <double> .Some(1), Option <double> .None, Option <GeoTag> .Some(new GeoTag(10, 20)), Option <Comment> .None); var createdEventId = _eventService.CreateEvent( tracker.CreatorId, tracker.Id, DateTimeOffset.Now, newEventCustomization); Assert.True(_eventRepository.IsContainEvent(createdEventId)); Assert.AreEqual(newEventCustomization.GetHashCode(), _eventRepository.LoadEvent(createdEventId).CustomizationsParameters.GetHashCode()); Assert.True(tracker.IsUpdated); }
public void GetEventWhenUserAskNotHisOwnEvent_ThrowsException() { var eventOfAnotherUser = TestingMethods.CreateEvent(Guid.NewGuid(), Guid.NewGuid()); _eventRepository.SaveEvent(eventOfAnotherUser); Assert.Throws <NoPermissionsForEventException>(() => _eventService.GetEvent(Guid.NewGuid(), eventOfAnotherUser.Id)); }
public void Init() { _trackerRepository = new TrackerRepository(); _eventRepository = new EventRepository(); _eventService = new EventService(_eventRepository, _trackerRepository, EventFiltrationDapperRepository()); //TODO replace by in memory repository _tracker = TestingMethods.CreateTrackerWithDefaultCustomization(Guid.NewGuid()); _event = TestingMethods.CreateEvent(_tracker.Id, _tracker.CreatorId); }
private List <Event> InitializeEvents() { var event1 = TestingMethods.CreateEvent(_tracker.Id, _tracker.CreatorId); var event2 = TestingMethods.CreateEvent(_tracker.Id, _tracker.CreatorId); return(new List <Event>() { event1, event2 }); }
public void GetAllTrackerEventsWhenTrackerHasNoEvents_ReturnsEmptyCollection() { var tracker = TestingMethods.CreateTrackerWithDefaultCustomization(Guid.NewGuid(), "Tracker"); _trackerRepository.SaveTracker(tracker); const int expected = 0; var events = _eventService.GetAllTrackerEvents(tracker.CreatorId, tracker.Id); Assert.AreEqual(expected, events.Count); }
public void GetFactsFromTrackerWithoutEvents_ReturnsEmptyFactsCollection() { InitializeFactProviderWithCalculators(); var tracker = TestingMethods.CreateTrackerWithDefaultCustomization(Guid.NewGuid()); var emtyEventsCollection = new List <Event>(); const int expected = 0; var facts = _factProvider .GetFacts(new [] { new TrackerWithItsEvents(tracker, emtyEventsCollection) }); Assert.AreEqual(expected, facts.Count); }
public EventTracker CreateTrackerWithRating() { return(TestingMethods.CreateTrackerWithRequiredCustomization(Guid.NewGuid(), "Tracker name", new TrackerCustomizationSettings( false, false, Option <string> .None, false, false, false, false))); }
public void GetAllUserTrackers_ReturnsUserTrackers() { var userId = Guid.NewGuid(); var tracker1 = TestingMethods.CreateTrackerWithDefaultCustomization(userId); var tracker2 = TestingMethods.CreateTrackerWithDefaultCustomization(userId); _trackerRepository.SaveTracker(tracker1); _trackerRepository.SaveTracker(tracker2); const int expected = 2; var actual = _trackerRepository.LoadAllUserTrackers(userId).Count(); Assert.AreEqual(expected, actual); }
public void GetAllTrackerEventsGoodCase_ReturnsCollectionOfEvents() { _trackerRepository.SaveTracker(_tracker); var event2 = TestingMethods.CreateEvent(_tracker.Id, _tracker.CreatorId); _eventRepository.AddRangeOfEvents(new[] { _event, event2 }); const int expected = 2; var events = _eventService.GetAllTrackerEvents(_tracker.CreatorId, _tracker.Id); Assert.AreEqual(expected, events.Count); Assert.AreEqual(_event.GetHashCode(), events.First().GetHashCode()); Assert.AreEqual(event2.GetHashCode(), events.Last().GetHashCode()); }
public void GetFacts_ReturnsFacts() { InitializeFactProviderWithCalculators(); var tracker = CreateTrackerWithRating(); var event1 = TestingMethods.CreateEventWithRating(tracker.Id, tracker.CreatorId, 2); var event2 = TestingMethods.CreateEventWithRating(tracker.Id, tracker.CreatorId, 4); const int expected = 2; var facts = _factProvider.GetFacts(new[] { event1, event2 }, tracker); var firstFact = facts.First(); var secondFact = facts.Last(); Assert.AreEqual(expected, facts.Count); Assert.AreEqual("Среднее значение оценки", firstFact.FactName); Assert.AreEqual("Количество событий", secondFact.FactName); }
public void GetFactsFromTrackerWithEvents_ReturnsFacts() { InitializeFactProviderWithCalculators(); var tracker = TestingMethods.CreateTrackerWithDefaultCustomization(Guid.NewGuid()); var event1 = TestingMethods.CreateEvent(tracker.Id, tracker.CreatorId); var event2 = TestingMethods.CreateEvent(tracker.Id, tracker.CreatorId); const int expected = 2; var facts = _factProvider .GetFacts(new [] { new TrackerWithItsEvents(tracker, new [] { event1, event2 }) }); var firstFact = facts.First(); var secondFact = facts.Last(); Assert.AreEqual(expected, facts.Count); Assert.AreEqual("Самая насыщенная событиями неделя", firstFact.FactName); Assert.AreEqual("Самый насыщенный событиями день", secondFact.FactName); }
public void CreateEventWhenEventAndTrackerCustomizationDiffersAndCustomizationIsRequired_ThrowsException() { var tracker = TestingMethods.CreateTrackerWithRequiredCustomization(Guid.NewGuid(), "tracker", new TrackerCustomizationSettings( true, true, Option <string> .Some("meter"), true, false, true, true)); _trackerRepository.SaveTracker(tracker); Assert.Throws <InvalidEventForTrackerException>(() => _eventService.CreateEvent(tracker.CreatorId, tracker.Id, DateTimeOffset.Now, new EventCustomParameters())); }
public void CreateEventWhenEventAndTrackerCustomizationDiffersAndCustomizationIsNotRequired_CreatesEvent() { var tracker = TestingMethods.CreateTrackerWithRequiredCustomization(Guid.NewGuid(), "tracker", new TrackerCustomizationSettings( true, true, Option <string> .Some("meter"), true, false, true, false)); _trackerRepository.SaveTracker(tracker); var createdEventId = _eventService.CreateEvent(tracker.CreatorId, tracker.Id, DateTimeOffset.Now, new EventCustomParameters()); Assert.True(_eventRepository.IsContainEvent(createdEventId)); Assert.True(tracker.IsUpdated); }
EditEventWhenNewCustomizationMatchTrackerCustomizationAndCustomizationIsRequired_EventInRepositoryUpdated() { var tracker = TestingMethods.CreateTrackerWithRequiredCustomization(Guid.NewGuid(), "tracker", new TrackerCustomizationSettings( true, true, Option <string> .Some("meter"), false, true, false, true)); _trackerRepository.SaveTracker(tracker); var oldEvent = new Event(Guid.NewGuid(), tracker.CreatorId, tracker.Id, DateTimeOffset.Now, new EventCustomParameters( Option <Photo> .Some(new Photo(photoBytes: new byte[5])), Option <double> .Some(1), Option <double> .None, Option <GeoTag> .Some(new GeoTag(10, 20)), Option <Comment> .None)); _eventRepository.SaveEvent(oldEvent); var updatedCustomizationParameters = new EventCustomParameters( Option <Photo> .Some(new Photo(photoBytes: new byte[7])), Option <double> .Some(15), Option <double> .None, Option <GeoTag> .Some(new GeoTag(30, 40)), Option <Comment> .None); _eventService.EditEvent(tracker.CreatorId, oldEvent.Id, DateTimeOffset.Now, updatedCustomizationParameters); Assert.AreEqual(updatedCustomizationParameters.GetHashCode(), _eventRepository.LoadEvent(oldEvent.Id).CustomizationsParameters.GetHashCode()); Assert.True(tracker.IsUpdated); }
public void UpdateUserFactsWhenTrackerWasUpdated_FactsInRepositoryUpdated() { var newEvent = TestingMethods.CreateEventFixDate(_tracker.Id, _tracker.CreatorId, DateTimeOffset.Now - TimeSpan.FromDays(2)); var newEvent2 = TestingMethods.CreateEventFixDate(_tracker.Id, _tracker.CreatorId, DateTimeOffset.Now - TimeSpan.FromDays(2)); _eventRepository.AddRangeOfEvents(new[] { newEvent, newEvent2 }); var generalFact = CreateGeneralFact(); _multipleFactsRepository.CreateUserGeneralFacts(_tracker.CreatorId, new[] { generalFact }); var specificFact = CreateSpecificFact(); _singleFactsRepository.CreateTrackerSpecificFacts(_tracker.Id, _tracker.CreatorId, new[] { specificFact }); _tracker.IsUpdated = true; _trackerRepository.UpdateTracker(_tracker); _statisticGenerator.UpdateUserFacts(_tracker.CreatorId); var loadedGeneralFact = _multipleFactsRepository.ReadUserGeneralFacts(_tracker.CreatorId); var loadedSpecificFact = _singleFactsRepository.ReadTrackerSpecificFacts(_tracker.CreatorId, _tracker.Id); Assert.AreNotEqual(generalFact.GetHashCode(), loadedGeneralFact.First().GetHashCode()); Assert.AreNotEqual(specificFact.GetHashCode(), loadedSpecificFact.First().GetHashCode()); }
EditEventWhenNewCustomizationDontMatchTrackerCustomizationAndCustomizationNotRequired_EventInRepositoryUpdated() { var tracker = TestingMethods.CreateTrackerWithRequiredCustomization(Guid.NewGuid(), "tracker", new TrackerCustomizationSettings( true, true, Option <string> .Some("meter"), true, false, true, false)); _trackerRepository.SaveTracker(tracker); var oldEvent = TestingMethods.CreateEvent(tracker.Id, tracker.CreatorId); _eventRepository.SaveEvent(oldEvent); _eventService.EditEvent(tracker.CreatorId, oldEvent.Id, DateTimeOffset.Now, new EventCustomParameters()); Assert.AreNotEqual(oldEvent.GetHashCode(), _eventRepository.LoadEvent(oldEvent.Id).GetHashCode()); Assert.True(tracker.IsUpdated); }
public void Init() { _trackerRepository = new TrackerRepository(); _trackerService = new TrackerService(_trackerRepository); _tracker = TestingMethods.CreateTrackerWithDefaultCustomization(Guid.NewGuid()); }