public void TestCreateFilter() { //setup var exam = new EventTopicCacheView(); exam.Id = 1; exam.Name = "Exam"; var seminar = new EventTopicCacheView(); seminar.Id = 2; seminar.Name = "Seminar"; var source = new List<EventCacheView>(); var event1 = new EventCacheView(); event1.EventTopics.Add(exam); event1.EventTopics.Add(seminar); var event2 = new EventCacheView(); event2.EventTopics.Add(exam); event2.EventTopics.Add(seminar); var event3 = new EventCacheView(); event3.EventTopics.Add(seminar); event3.EventTopics.Add(exam); var event4 = new EventCacheView(); source.Add(event1); source.Add(event2); source.Add(event3); source.Add(event4); var builder = new EventTopicFilterBuilder(); //act var filter = builder.CreateFilters(source.AsQueryable()).FirstOrDefault(); //assert Assert.IsNotNull(filter); Assert.AreEqual(QueryStringKeys.EventTopicIdKey, filter.QueryStringParameterName); Assert.AreEqual("Event Topics", filter.Name); Assert.IsNotNull(filter.FilterValues); Assert.AreEqual(2, filter.FilterValues.Count()); var value = filter.FilterValues.ElementAt(0); Assert.AreEqual(exam.Name, value.DisplayName); Assert.AreEqual(3, value.Count); Assert.AreEqual(exam.Id.ToString(CultureInfo.CurrentCulture), value.QueryStringParameterValue); value = filter.FilterValues.ElementAt(1); Assert.AreEqual(seminar.Name, value.DisplayName); Assert.AreEqual(3, value.Count); Assert.AreEqual(seminar.Id.ToString(CultureInfo.CurrentCulture), value.QueryStringParameterValue); }
public void TestCreateFilter() { //setup DateTime currentDate = new DateTime(2000, 1, 1); DateTime futureDate = new DateTime(2000, 2, 1); DateTime pastDate = new DateTime(1970, 1, 1); var orgUnitType_locations = new OrgUnitTypeCacheView() { Id = 1, Name = "Locations" }; var orgUnitType_departments = new OrgUnitTypeCacheView() { Id = 2, Name = "Departments" }; // orgUnit var orgUnit1 = new OrgUnitCacheView() { Id = 1, Name = "Hospital A" }; orgUnit1.OrgUnitTypes.Add(orgUnitType_locations); // orgUnit var orgUnit2 = new OrgUnitCacheView() { Id = 2, Name = "Department A" }; orgUnit2.OrgUnitTypes.Add(orgUnitType_departments); // orgUnit var orgUnit3 = new OrgUnitCacheView() { Id = 3, Name = "Hospital B" }; orgUnit3.OrgUnitTypes.Add(orgUnitType_locations); // orgUnit var orgUnit4 = new OrgUnitCacheView() { Id = 4, Name = "Department B" }; orgUnit4.OrgUnitTypes.Add(orgUnitType_departments); var source = new List<EventCacheView>(); var Event = new EventCacheView() { Id = 1 }; var eventOccurence = new EventOccurrenceCacheView(); eventOccurence.OrgUnit = orgUnit1; eventOccurence.OrgUnitId = orgUnit1.Id; eventOccurence.OccurrenceDates.Add(new EventOccurrenceDateCacheView() { StartDate = futureDate, EventOccurrenceId = eventOccurence.Id }); Event.Occurrences.Add(eventOccurence); eventOccurence = new EventOccurrenceCacheView(); eventOccurence.OrgUnit = orgUnit3; eventOccurence.OrgUnitId = orgUnit3.Id; Event.Occurrences.Add(eventOccurence); source.Add(Event); Event = new EventCacheView() { Id = 2 }; eventOccurence = new EventOccurrenceCacheView(); eventOccurence.OrgUnit = orgUnit1; eventOccurence.OrgUnitId = orgUnit1.Id; eventOccurence.OccurrenceDates.Add(new EventOccurrenceDateCacheView() { StartDate = futureDate, EventOccurrenceId = eventOccurence.Id }); Event.Occurrences.Add(eventOccurence); eventOccurence = new EventOccurrenceCacheView(); eventOccurence.OrgUnit = orgUnit2; eventOccurence.OrgUnitId = orgUnit2.Id; eventOccurence.OccurrenceDates.Add(new EventOccurrenceDateCacheView() { StartDate = futureDate, EventOccurrenceId = eventOccurence.Id }); Event.Occurrences.Add(eventOccurence); source.Add(Event); Event = new EventCacheView() { Id = 3 }; eventOccurence = new EventOccurrenceCacheView(); eventOccurence.OrgUnit = orgUnit3; eventOccurence.OrgUnitId = orgUnit3.Id; eventOccurence.OccurrenceDates.Add(new EventOccurrenceDateCacheView() { StartDate = futureDate, EventOccurrenceId = eventOccurence.Id }); Event.Occurrences.Add(eventOccurence); eventOccurence = new EventOccurrenceCacheView(); eventOccurence.OrgUnit = orgUnit4; eventOccurence.OrgUnitId = orgUnit4.Id; eventOccurence.OccurrenceDates.Add(new EventOccurrenceDateCacheView() { StartDate = futureDate, EventOccurrenceId = eventOccurence.Id }); Event.Occurrences.Add(eventOccurence); source.Add(Event); Event = new EventCacheView() { Id = 4 }; eventOccurence = new EventOccurrenceCacheView(); eventOccurence.OrgUnit = orgUnit1; eventOccurence.OrgUnitId = orgUnit1.Id; eventOccurence.OccurrenceDates.Add(new EventOccurrenceDateCacheView() { StartDate = futureDate, EventOccurrenceId = eventOccurence.Id }); Event.Occurrences.Add(eventOccurence); eventOccurence = new EventOccurrenceCacheView(); eventOccurence.OrgUnit = orgUnit2; eventOccurence.OrgUnitId = orgUnit2.Id; eventOccurence.OccurrenceDates.Add(new EventOccurrenceDateCacheView() { StartDate = futureDate, EventOccurrenceId = eventOccurence.Id }); Event.Occurrences.Add(eventOccurence); eventOccurence = new EventOccurrenceCacheView(); eventOccurence.OrgUnit = orgUnit3; eventOccurence.OrgUnitId = orgUnit3.Id; eventOccurence.OccurrenceDates.Add(new EventOccurrenceDateCacheView() { StartDate = futureDate, EventOccurrenceId = eventOccurence.Id }); Event.Occurrences.Add(eventOccurence); eventOccurence = new EventOccurrenceCacheView(); eventOccurence.OrgUnit = orgUnit4; eventOccurence.OrgUnitId = orgUnit4.Id; eventOccurence.OccurrenceDates.Add(new EventOccurrenceDateCacheView() { StartDate = futureDate, EventOccurrenceId = eventOccurence.Id }); Event.Occurrences.Add(eventOccurence); eventOccurence = new EventOccurrenceCacheView(); eventOccurence.OrgUnit = orgUnit4; eventOccurence.OrgUnitId = orgUnit4.Id; eventOccurence.OccurrenceDates.Add(new EventOccurrenceDateCacheView() { StartDate = pastDate, EventOccurrenceId = eventOccurence.Id }); Event.Occurrences.Add(eventOccurence); source.Add(Event); Event = new EventCacheView() { Id = 5 }; source.Add(Event); var builder = new OrgUnitFilterBuilder(); var mockClock = new Mock<IClock>(); mockClock.SetupGet(c => c.Now).Returns(currentDate); builder.Clock = mockClock.Object; //act var filters = builder.CreateFilters(source.AsQueryable()); //assert Assert.IsNotNull(filters); Assert.AreEqual(2, filters.Count()); //locations var locationsFilter = filters.Where(f => f.Name == "Locations").Single(); Assert.AreEqual(2, locationsFilter.FilterValues.Count()); Assert.AreEqual(3, locationsFilter.FilterValues.ElementAt(0).Count); Assert.AreEqual(3, locationsFilter.FilterValues.ElementAt(1).Count); Assert.IsNotNullOrEmpty(locationsFilter.FilterValues.ElementAt(0).DisplayName); Assert.IsNotNullOrEmpty(locationsFilter.FilterValues.ElementAt(1).DisplayName); //departments var departmentsFilter = filters.Where(f => f.Name == "Departments").Single(); Assert.AreEqual(2, departmentsFilter.FilterValues.Count()); Assert.AreEqual(2, departmentsFilter.FilterValues.ElementAt(0).Count); Assert.AreEqual(2, departmentsFilter.FilterValues.ElementAt(1).Count); Assert.IsNotNullOrEmpty(departmentsFilter.FilterValues.ElementAt(0).DisplayName); Assert.IsNotNullOrEmpty(departmentsFilter.FilterValues.ElementAt(1).DisplayName); }