public void t_GetAvailableYears() { // Load some SiteVisit data, including a few duplicate years (ensuring only distinct values) SiteVisit_ado sv1 = DbTestHelper.LoadSingleSiteVisit(TestHelper.TestGuid1, TestHelper.TestGuid1, new DateTime(1992, 12, 31)); SiteVisit_ado sv2 = DbTestHelper.LoadSingleSiteVisit(TestHelper.TestGuid2, TestHelper.TestGuid1, new DateTime(1992, 1, 1)); SiteVisit_ado sv3 = DbTestHelper.LoadSingleSiteVisit(TestHelper.TestGuid3, TestHelper.TestGuid1, new DateTime(2008, 2, 29)); SiteVisit_ado sv4 = DbTestHelper.LoadSingleSiteVisit(TestHelper.TestGuid4, TestHelper.TestGuid1, new DateTime(2008, 2, 28)); SiteVisit_ado sv5 = DbTestHelper.LoadSingleSiteVisit(TestHelper.TestGuid5, TestHelper.TestGuid1, new DateTime(2009, 2, 22)); SiteVisit_ado sv6 = DbTestHelper.LoadSingleSiteVisit(TestHelper.TestGuid6, TestHelper.TestGuid1, new DateTime(2908, 2, 20)); // Expected years are 1992, 2008, 2009, 2908 - in that order SortedSet <int> set = ResultsFacade.GetAvailableYears(); IEnumerator <int> enumerator = set.GetEnumerator(); enumerator.MoveNext(); Assert.AreEqual(4, set.Count, "wrong count"); Assert.AreEqual(1992, enumerator.Current, "missing 1992"); enumerator.MoveNext(); Assert.AreEqual(2008, enumerator.Current, "missing 2008"); enumerator.MoveNext(); Assert.AreEqual(2009, enumerator.Current, "missing 2009"); enumerator.MoveNext(); Assert.AreEqual(2908, enumerator.Current, "missing 2908"); }
private void setupOakwood() { Location_ado site = Location_ado.CreateLocation_ado(TestHelper.TestGuid1, OAKWOOD, LookupConstants.LocationTypeSite); Location_ado point = Location_ado.CreateLocation_ado(TestHelper.TestGuid2, "Point", LookupConstants.LocationTypePoint); point.ParentLocationId = site.LocationId; SiteVisit_ado visit = DbTestHelper.LoadSingleSiteVisit(TestHelper.TestGuid1, site.LocationId, DateTime.Now.AddHours(-7)); PointSurvey_ado survey = PointSurvey_ado.CreatePointSurvey_ado(TestHelper.TestGuid2, point.LocationId, DateTime.Now.AddHours(-7), DateTime.Now.AddHours(-6)); survey.SiteVisitId = visit.EventId; DbTestHelper.LoadAdoObjects((IbaUnitTestEntities iba) => { iba.AddToPointSurvey_ado1(survey); iba.AddToLocation_ado(site); iba.AddToLocation_ado(point); iba.SaveChanges(); }); List <Observation_ado> obsList = new List <Observation_ado>(); addABunchOfObservations(obsList, 35, List[0].SpeciesId, survey.EventId); addABunchOfObservations(obsList, 26, List[1].SpeciesId, survey.EventId); addABunchOfObservations(obsList, 21, List[2].SpeciesId, survey.EventId); addABunchOfObservations(obsList, 16, List[3].SpeciesId, survey.EventId); addABunchOfObservations(obsList, 11, List[4].SpeciesId, survey.EventId); addABunchOfObservations(obsList, 6, List[5].SpeciesId, survey.EventId); addABunchOfObservations(obsList, 5, List[6].SpeciesId, survey.EventId); addABunchOfObservations(obsList, 3, List[7].SpeciesId, survey.EventId); addABunchOfObservations(obsList, 3, List[8].SpeciesId, survey.EventId); addABunchOfObservations(obsList, 3, List[9].SpeciesId, survey.EventId); addABunchOfObservations(obsList, 3, List[10].SpeciesId, survey.EventId); addABunchOfObservations(obsList, 3, List[11].SpeciesId, survey.EventId); addABunchOfObservations(obsList, 2, List[12].SpeciesId, survey.EventId); addABunchOfObservations(obsList, 2, List[13].SpeciesId, survey.EventId); addABunchOfObservations(obsList, 2, List[14].SpeciesId, survey.EventId); addABunchOfObservations(obsList, 1, List[15].SpeciesId, survey.EventId); addABunchOfObservations(obsList, 1, List[16].SpeciesId, survey.EventId); addABunchOfObservations(obsList, 1, List[17].SpeciesId, survey.EventId); addABunchOfObservations(obsList, 1, List[18].SpeciesId, survey.EventId); addABunchOfObservations(obsList, 25, List[19].SpeciesId, survey.EventId); loadObservations(obsList); }
public void t_SelectAllForEvent_SiteVisit() { Guid siteVisitid = DbTestHelper.TestGuid3; DbTestHelper.LoadSingleSiteVisit(siteVisitid); Guid eventId = DbTestHelper.TestGuid1; Guid eventId2 = DbTestHelper.TestGuid2; Guid speciesId1 = new Guid(DbTestHelper.SPECIES_1_ID); Guid speciesId2 = new Guid(DbTestHelper.SPECIES_2_ID); string speciesCode1 = DbTestHelper.SPECIES_1_CODE; string speciesCode2 = DbTestHelper.SPECIES_2_CODE; string comments1 = string.Empty; string comments2 = "comments 2"; DbTestHelper.LoadAdoObjects((IbaUnitTestEntities iba) => { PointSurvey_ado survey1 = PointSurvey_ado.CreatePointSurvey_ado(eventId, true, DbTestHelper.TestGuid2, DateTime.Now, DateTime.Now.AddHours(2)); survey1.SiteVisitId = siteVisitid; iba.AddToPointSurvey_ado1(survey1); PointSurvey_ado survey2 = PointSurvey_ado.CreatePointSurvey_ado(eventId2, true, DbTestHelper.TestGuid2, DateTime.Now, DateTime.Now.AddHours(2)); survey2.SiteVisitId = siteVisitid; iba.AddToPointSurvey_ado1(survey2); }); multiBackdoorSetup(eventId, speciesId1, speciesId2, comments1, comments2); multiBackdoorSetup(eventId2, speciesId1, speciesId2, comments1, comments2); // Run the system List<FiftyMeterDataEntry> entryList = FiftyMeterDataEntryMapper.SelectAllForEvent(siteVisitid); // Validate results Assert.IsNotNull(entryList, "entrylist is null"); Assert.AreEqual(4, entryList.Count(), "entrylist does not contain 4 objects"); // TODO: need to make sure the grouping handles different PointSurveyId values, separating them appropriately. ValidateFiftyMeterDataEntryObject(eventId, comments1, entryList, "1", 0, 1, speciesCode1); ValidateFiftyMeterDataEntryObject(eventId, comments2, entryList, "2", 2, 1, speciesCode2); ValidateFiftyMeterDataEntryObject(eventId2, comments1, entryList, "1", 0, 1, speciesCode1); ValidateFiftyMeterDataEntryObject(eventId2, comments2, entryList, "2", 2, 1, speciesCode2); }
public void tGetSiteBySpecies_Supplemental() { Guid siteVisitId1 = TestHelper.TestGuid1; Guid surveyId1 = TestHelper.TestGuid4; DbTestHelper.LoadSingleSiteVisit(siteVisitId1, _siteList[0].LocationId, DateTime.Parse("2010-01-01")); DbTestHelper.LoadSamplingPoint(surveyId1, _siteList[0].LocationId); DbTestHelper.LoadSinglePointSurvey(surveyId1, siteVisitId1, TestHelper.TestGuid1, DateTime.Now, DateTime.Now.AddHours(1)); DbTestHelper.LoadAdoObjects((IbaUnitTestEntities iba) => { // Just 1 in week 1 site 1 iba.AddToObservation_ado(Observation_ado.CreateObservation_ado(0, siteVisitId1, new Guid(TestHelper.SPECIES_1_ID), SupplementalObservation.ObservationTypeGuid)); }); // Finally, can exercise the system under test using (IDataReader reader = iba.Data.Mappers.ResultsMapper.GetSiteBySpecies(new Guid(TestHelper.SPECIES_1_ID), 2010)) { Assert.IsFalse(reader.Read()); } }
public void tGetSpeciesCount_Supplemental() { Guid siteVisitId1 = TestHelper.TestGuid1; Guid surveyId1 = TestHelper.TestGuid4; DbTestHelper.LoadSingleSiteVisit(siteVisitId1, _siteList[0].LocationId, DateTime.Now); DbTestHelper.LoadSamplingPoint(surveyId1, _siteList[0].LocationId); DbTestHelper.LoadSinglePointSurvey(surveyId1, siteVisitId1, TestHelper.TestGuid1, DateTime.Now, DateTime.Now.AddHours(1)); DbTestHelper.LoadAdoObjects((IbaUnitTestEntities iba) => { // Load species 1 into the database iba.AddToObservation_ado(Observation_ado.CreateObservation_ado(0, siteVisitId1, new Guid(TestHelper.SPECIES_1_ID), SupplementalObservation.ObservationTypeGuid)); iba.AddToObservation_ado(Observation_ado.CreateObservation_ado(0, surveyId1, new Guid(TestHelper.SPECIES_1_ID), PointCountBeyond50.ObservationTypeGuid)); }); // Finally, can exercise the system under test DataSet set = ResultsMapper.GetSpeciesCount(DateTime.Now.Year); Assert.IsNotNull(set, "DataSet is null"); Assert.AreEqual(1, set.Tables.Count, "There is not 1 table in the DataSet"); DataTable table = set.Tables[0]; Assert.AreEqual(1, table.Rows.Count, "There are not three rows in the results"); // Results are supposed to be sorted by common name. That means order of Species1, Species3, Species2. DataRow species1 = table.Rows[0]; Assert.AreEqual(TestHelper.SPECIES_1_COMMON, species1["CommonName"], "CommonName wrong row 1"); Assert.AreEqual(TestHelper.SPECIES_1_SCIENTIFIC, species1["ScientificName"], "ScientificName wrong row 1"); Assert.AreEqual("1", species1["SpeciesCount"].ToString(), "SpeciesCount wrong row 1"); Assert.AreEqual(TestHelper.SPECIES_1_ID, species1["SpeciesId"].ToString(), "SpeciesId wrong row 1"); }
public void tGetSpeciesCount_NoData() { Guid siteVisitId1 = TestHelper.TestGuid1; Guid siteVisitId2 = TestHelper.TestGuid2; Guid siteVisitId3 = TestHelper.TestGuid3; Guid surveyId1 = TestHelper.TestGuid4; Guid surveyId2 = TestHelper.TestGuid5; Guid surveyId3 = TestHelper.TestGuid6; DbTestHelper.LoadSingleSiteVisit(siteVisitId1, _siteList[0].LocationId, DateTime.Now); DbTestHelper.LoadSingleSiteVisit(siteVisitId2, _siteList[1].LocationId, DateTime.Now); DbTestHelper.LoadSingleSiteVisit(siteVisitId3, _siteList[2].LocationId, DateTime.Now); DbTestHelper.LoadSamplingPoint(surveyId1, _siteList[0].LocationId); DbTestHelper.LoadSamplingPoint(surveyId2, _siteList[1].LocationId); DbTestHelper.LoadSamplingPoint(surveyId3, _siteList[2].LocationId); DbTestHelper.LoadSinglePointSurvey(surveyId1, siteVisitId1, TestHelper.TestGuid1, DateTime.Now, DateTime.Now.AddHours(1)); DbTestHelper.LoadSinglePointSurvey(surveyId2, siteVisitId2, TestHelper.TestGuid1, DateTime.Now, DateTime.Now.AddHours(1)); DbTestHelper.LoadSinglePointSurvey(surveyId3, siteVisitId3, TestHelper.TestGuid1, DateTime.Now, DateTime.Now.AddHours(1)); // No species loaded // Finally, can exercise the system under test DataSet set = ResultsMapper.GetSpeciesCount(DateTime.Now.Year); Assert.IsNotNull(set, "DataSet is null"); Assert.AreEqual(1, set.Tables.Count, "There is not 1 table in the DataSet"); DataTable table = set.Tables[0]; Assert.IsTrue(table.Columns.Contains("CommonName"), "Does not contain CommonName column"); Assert.IsTrue(table.Columns.Contains("ScientificName"), "Does not contain ScientificName column"); Assert.IsTrue(table.Columns.Contains("SpeciesCount"), "Does not contain SpeciesCount column"); Assert.IsTrue(table.Columns.Contains("SpeciesId"), "Does not contain SpeciesId column"); Assert.AreEqual(0, table.Rows.Count, "There are not zero rows in the results"); }
public void tGetSpeciesCount_Full() { Guid siteVisitId1 = TestHelper.TestGuid1; Guid siteVisitId2 = TestHelper.TestGuid2; Guid siteVisitId3 = TestHelper.TestGuid3; Guid surveyId1 = TestHelper.TestGuid4; Guid surveyId2 = TestHelper.TestGuid5; Guid surveyId3 = TestHelper.TestGuid6; DbTestHelper.LoadSingleSiteVisit(siteVisitId1, _siteList[0].LocationId, DateTime.Now); DbTestHelper.LoadSingleSiteVisit(siteVisitId2, _siteList[1].LocationId, DateTime.Now); DbTestHelper.LoadSingleSiteVisit(siteVisitId3, _siteList[2].LocationId, DateTime.Now); DbTestHelper.LoadSingleSiteVisit(surveyId1, _siteList[2].LocationId, DateTime.Now.AddYears(-1)); // extra DbTestHelper.LoadSamplingPoint(surveyId1, _siteList[0].LocationId); DbTestHelper.LoadSamplingPoint(surveyId2, _siteList[1].LocationId); DbTestHelper.LoadSamplingPoint(surveyId3, _siteList[2].LocationId); DbTestHelper.LoadSinglePointSurvey(surveyId1, siteVisitId1, TestHelper.TestGuid1, DateTime.Now, DateTime.Now.AddHours(1)); DbTestHelper.LoadSinglePointSurvey(surveyId2, siteVisitId2, TestHelper.TestGuid1, DateTime.Now, DateTime.Now.AddHours(1)); DbTestHelper.LoadSinglePointSurvey(surveyId3, siteVisitId3, TestHelper.TestGuid1, DateTime.Now, DateTime.Now.AddHours(1)); DbTestHelper.LoadSinglePointSurvey(siteVisitId1, surveyId1, TestHelper.TestGuid1, DateTime.Now.AddYears(-1), DateTime.Now.AddYears(-1).AddHours(1)); // extra DbTestHelper.LoadAdoObjects((IbaUnitTestEntities iba) => { // Load species 1 into the database iba.AddToObservation_ado(Observation_ado.CreateObservation_ado(0, surveyId1, new Guid(TestHelper.SPECIES_1_ID), PointCountWithin50.ObservationTypeGuid)); iba.AddToObservation_ado(Observation_ado.CreateObservation_ado(0, surveyId1, new Guid(TestHelper.SPECIES_1_ID), PointCountBeyond50.ObservationTypeGuid)); // species 2 iba.AddToObservation_ado(Observation_ado.CreateObservation_ado(0, surveyId1, new Guid(TestHelper.SPECIES_2_ID), PointCountBeyond50.ObservationTypeGuid)); iba.AddToObservation_ado(Observation_ado.CreateObservation_ado(0, surveyId1, new Guid(TestHelper.SPECIES_2_ID), PointCountBeyond50.ObservationTypeGuid)); iba.AddToObservation_ado(Observation_ado.CreateObservation_ado(0, surveyId1, new Guid(TestHelper.SPECIES_2_ID), PointCountBeyond50.ObservationTypeGuid)); iba.AddToObservation_ado(Observation_ado.CreateObservation_ado(0, surveyId1, new Guid(TestHelper.SPECIES_2_ID), PointCountWithin50.ObservationTypeGuid)); // species 3 iba.AddToObservation_ado(Observation_ado.CreateObservation_ado(0, surveyId1, new Guid(TestHelper.SPECIES_3_ID), PointCountWithin50.ObservationTypeGuid)); iba.AddToObservation_ado(Observation_ado.CreateObservation_ado(0, surveyId2, new Guid(TestHelper.SPECIES_3_ID), PointCountWithin50.ObservationTypeGuid)); iba.AddToObservation_ado(Observation_ado.CreateObservation_ado(0, surveyId3, new Guid(TestHelper.SPECIES_3_ID), PointCountWithin50.ObservationTypeGuid)); // extra iba.AddToObservation_ado(Observation_ado.CreateObservation_ado(0, siteVisitId1, new Guid(TestHelper.SPECIES_1_ID), PointCountBeyond50.ObservationTypeGuid)); }); // Finally, can exercise the system under test DataSet set = ResultsMapper.GetSpeciesCount(DateTime.Now.Year); Assert.IsNotNull(set, "DataSet is null"); Assert.AreEqual(1, set.Tables.Count, "There is not 1 table in the DataSet"); DataTable table = set.Tables[0]; Assert.IsTrue(table.Columns.Contains("CommonName"), "Does not contain CommonName column"); Assert.IsTrue(table.Columns.Contains("ScientificName"), "Does not contain ScientificName column"); Assert.IsTrue(table.Columns.Contains("SpeciesCount"), "Does not contain SpeciesCount column"); Assert.IsTrue(table.Columns.Contains("SpeciesId"), "Does not contain SpeciesId column"); Assert.AreEqual(3, table.Rows.Count, "There are not three rows in the results"); // Results are supposed to be sorted by common name. That means order of Species1, Species3, Species2. DataRow species1 = table.Rows[0]; Assert.AreEqual(TestHelper.SPECIES_1_COMMON, species1["CommonName"], "CommonName wrong row 1"); Assert.AreEqual(TestHelper.SPECIES_1_SCIENTIFIC, species1["ScientificName"], "ScientificName wrong row 1"); Assert.AreEqual("2", species1["SpeciesCount"].ToString(), "SpeciesCount wrong row 1"); Assert.AreEqual(TestHelper.SPECIES_1_ID, species1["SpeciesId"].ToString(), "SpeciesId wrong row 1"); species1 = table.Rows[1]; Assert.AreEqual(TestHelper.SPECIES_3_COMMON, species1["CommonName"], "CommonName wrong row 2"); Assert.AreEqual(TestHelper.SPECIES_3_SCIENTIFIC, species1["ScientificName"], "ScientificName wrong row 2"); Assert.AreEqual("3", species1["SpeciesCount"].ToString(), "SpeciesCount wrong row 2"); Assert.AreEqual(TestHelper.SPECIES_3_ID, species1["SpeciesId"].ToString(), "SpeciesId wrong row 2"); species1 = table.Rows[2]; Assert.AreEqual(TestHelper.SPECIES_2_COMMON, species1["CommonName"], "CommonName wrong row 3"); Assert.AreEqual(TestHelper.SPECIES_2_SCIENTIFIC, species1["ScientificName"], "ScientificName wrong row 3"); Assert.AreEqual("4", species1["SpeciesCount"].ToString(), "SpeciesCount wrong row 3"); Assert.AreEqual(TestHelper.SPECIES_2_ID, species1["SpeciesId"].ToString(), "SpeciesId wrong row 3"); }
public void tGetSiteBySpecies_Full() { Guid siteVisitId1 = TestHelper.TestGuid1; Guid siteVisitId2 = TestHelper.TestGuid2; Guid siteVisitId3 = TestHelper.TestGuid3; Guid surveyId1 = TestHelper.TestGuid4; Guid surveyId2 = TestHelper.TestGuid5; Guid surveyId3 = TestHelper.TestGuid6; // Week 1 site 1, visit 1 DbTestHelper.LoadSingleSiteVisit(siteVisitId1, _siteList[0].LocationId, DateTime.Parse("2010-01-01")); // Week 2 site 1, visit 2 DbTestHelper.LoadSingleSiteVisit(siteVisitId2, _siteList[0].LocationId, DateTime.Parse("2010-01-09")); // Week 2 site 2, visit 1 DbTestHelper.LoadSingleSiteVisit(siteVisitId3, _siteList[1].LocationId, DateTime.Parse("2010-01-08")); DbTestHelper.LoadSamplingPoint(surveyId1, _siteList[0].LocationId); DbTestHelper.LoadSamplingPoint(surveyId2, _siteList[0].LocationId); DbTestHelper.LoadSamplingPoint(surveyId3, _siteList[1].LocationId); DbTestHelper.LoadSinglePointSurvey(surveyId1, siteVisitId1, TestHelper.TestGuid1, DateTime.Now, DateTime.Now.AddHours(1)); DbTestHelper.LoadSinglePointSurvey(surveyId2, siteVisitId2, TestHelper.TestGuid1, DateTime.Now, DateTime.Now.AddHours(1)); DbTestHelper.LoadSinglePointSurvey(surveyId3, siteVisitId3, TestHelper.TestGuid1, DateTime.Now, DateTime.Now.AddHours(1)); // Different year DbTestHelper.LoadSingleSiteVisit(surveyId1, _siteList[0].LocationId, DateTime.Parse("2009-06-06")); DbTestHelper.LoadSinglePointSurvey(siteVisitId1, surveyId1, TestHelper.TestGuid4, DateTime.Parse("2009-06-06 11:00 AM"), DateTime.Parse("2009-06-06 11:05 AM")); DbTestHelper.LoadAdoObjects((IbaUnitTestEntities iba) => { // Just 1 in week 1 site 1 iba.AddToObservation_ado(Observation_ado.CreateObservation_ado(0, surveyId1, new Guid(TestHelper.SPECIES_1_ID), PointCountWithin50.ObservationTypeGuid)); // Two in week 2 site 1 iba.AddToObservation_ado(Observation_ado.CreateObservation_ado(0, surveyId2, new Guid(TestHelper.SPECIES_1_ID), PointCountBeyond50.ObservationTypeGuid)); iba.AddToObservation_ado(Observation_ado.CreateObservation_ado(0, surveyId2, new Guid(TestHelper.SPECIES_1_ID), PointCountWithin50.ObservationTypeGuid)); // One beyond 50 in week 2 site 2 iba.AddToObservation_ado(Observation_ado.CreateObservation_ado(0, surveyId3, new Guid(TestHelper.SPECIES_1_ID), PointCountBeyond50.ObservationTypeGuid)); }); // Finally, can exercise the system under test using (IDataReader reader = iba.Data.Mappers.ResultsMapper.GetSiteBySpecies(new Guid(TestHelper.SPECIES_1_ID), 2010)) { // Results are supposed to be sorted by location name. Assert.IsTrue(reader.Read(), "missing row 1"); Assert.AreEqual("Location 1", reader.GetString(reader.GetOrdinal("LocationName")), "LocationName wrong row 1"); Assert.AreEqual("1", reader.GetValue(reader.GetOrdinal("Week")).ToString(), "Week wrong row 1"); Assert.AreEqual("1", reader.GetValue(reader.GetOrdinal("SpeciesCount")).ToString(), "SpeciesCount wrong row 1"); Assert.IsTrue(reader.Read(), "missing row 2"); Assert.AreEqual("Location 1", reader.GetString(reader.GetOrdinal("LocationName")), "LocationName wrong row 2"); Assert.AreEqual("2", reader.GetValue(reader.GetOrdinal("Week")).ToString(), "Week wrong row 2"); Assert.AreEqual("2", reader.GetValue(reader.GetOrdinal("SpeciesCount")).ToString(), "SpeciesCount wrong row 2"); Assert.IsTrue(reader.Read(), "missing row 3"); Assert.AreEqual("Location 2", reader.GetString(reader.GetOrdinal("LocationName")), "LocationName wrong row 3"); Assert.AreEqual("2", reader.GetValue(reader.GetOrdinal("Week")).ToString(), "Week wrong row 3"); Assert.AreEqual("1", reader.GetValue(reader.GetOrdinal("SpeciesCount")).ToString(), "SpeciesCount wrong row 3"); } }
public void t_GetCommunityBreeding() { DateTime breedingdate1 = new DateTime(2010, 07, 01); DateTime breedingdate2 = new DateTime(2010, 06, 11); DateTime breedingdate3 = new DateTime(2009, 06, 11, 9, 32, 0); List <Location_ado> siteList = DbTestHelper.LoadSites(); SiteVisit_ado visit1 = DbTestHelper.LoadSingleSiteVisit(TestHelper.TestGuid1, siteList[0].LocationId, breedingdate1); SiteVisit_ado visit2 = DbTestHelper.LoadSingleSiteVisit(TestHelper.TestGuid2, siteList[1].LocationId, breedingdate2); SiteVisit_ado extra = DbTestHelper.LoadSingleSiteVisit(TestHelper.TestGuid3, siteList[0].LocationId, breedingdate3); PointSurvey_ado surveyExtra = DbTestHelper.LoadSinglePointSurvey(TestHelper.TestGuid5, extra.EventId, TestHelper.TestGuid1, breedingdate3, breedingdate3.AddMinutes(5)); PointSurvey_ado survey1 = DbTestHelper.LoadSinglePointSurvey(TestHelper.TestGuid3, visit1.EventId, TestHelper.TestGuid1, DateTime.Now, DateTime.Now.AddHours(1)); PointSurvey_ado survey2 = DbTestHelper.LoadSinglePointSurvey(TestHelper.TestGuid4, visit2.EventId, TestHelper.TestGuid1, DateTime.Now, DateTime.Now.AddHours(1)); // To make this test interesting, there must be several factors: // A supplemental to ignore // At least one observation inside of 50m // At least one outside of 50m for each species // A site that has count of zero therefore shouldn't show up // And relative abundance cannot calculate as zero Observation_ado supplementalSite1 = Observation_ado.CreateObservation_ado(0, visit1.EventId, new Guid(TestHelper.SPECIES_1_ID), LookupConstants.ObservationTypeSupplemental); Observation_ado site1Species1Beyond = Observation_ado.CreateObservation_ado(0, survey1.EventId, new Guid(TestHelper.SPECIES_1_ID), LookupConstants.ObservationTypePointBeyond50m); Observation_ado site1Species1Less = Observation_ado.CreateObservation_ado(0, survey1.EventId, new Guid(TestHelper.SPECIES_1_ID), LookupConstants.ObservationTypePointLess50m); Observation_ado site1Species1Less2 = Observation_ado.CreateObservation_ado(0, survey1.EventId, new Guid(TestHelper.SPECIES_1_ID), LookupConstants.ObservationTypePointLess50m); Observation_ado site1Species2Beyond = Observation_ado.CreateObservation_ado(0, survey1.EventId, new Guid(TestHelper.SPECIES_2_ID), LookupConstants.ObservationTypePointBeyond50m); Observation_ado site1Species3Less = Observation_ado.CreateObservation_ado(0, survey1.EventId, new Guid(TestHelper.SPECIES_3_ID), LookupConstants.ObservationTypePointLess50m); Observation_ado site1Species3Beyond = Observation_ado.CreateObservation_ado(0, survey1.EventId, new Guid(TestHelper.SPECIES_3_ID), LookupConstants.ObservationTypePointBeyond50m); Observation_ado site2Species3Beyond = Observation_ado.CreateObservation_ado(0, survey2.EventId, new Guid(TestHelper.SPECIES_3_ID), LookupConstants.ObservationTypePointBeyond50m); Observation_ado site2Species3Less = Observation_ado.CreateObservation_ado(0, survey2.EventId, new Guid(TestHelper.SPECIES_3_ID), LookupConstants.ObservationTypePointLess50m); Observation_ado site2Species2Beyond = Observation_ado.CreateObservation_ado(0, survey2.EventId, new Guid(TestHelper.SPECIES_2_ID), LookupConstants.ObservationTypePointBeyond50m); Observation_ado site2Species2Less = Observation_ado.CreateObservation_ado(0, survey2.EventId, new Guid(TestHelper.SPECIES_2_ID), LookupConstants.ObservationTypePointLess50m); Observation_ado extraObservation = Observation_ado.CreateObservation_ado(0, surveyExtra.EventId, new Guid(TestHelper.SPECIES_1_ID), LookupConstants.ObservationTypePointBeyond50m); DbTestHelper.LoadAdoObjects((IbaUnitTestEntities iba) => { iba.AddToObservation_ado(supplementalSite1); iba.AddToObservation_ado(site1Species1Beyond); iba.AddToObservation_ado(site1Species2Beyond); iba.AddToObservation_ado(site2Species3Beyond); iba.AddToObservation_ado(site1Species1Less); iba.AddToObservation_ado(site1Species1Less2); iba.AddToObservation_ado(site2Species3Less); iba.AddToObservation_ado(site1Species3Less); iba.AddToObservation_ado(site2Species2Beyond); iba.AddToObservation_ado(site2Species2Less); iba.AddToObservation_ado(extraObservation); iba.SaveChanges(); }); DataSet resultSet = mappers.ResultsMapper.GetCommunityBreeding(2010); Assert.IsNotNull(resultSet, "Resultset is null"); Assert.AreEqual(1, resultSet.Tables.Count, "Wrong table count"); DataTable table = resultSet.Tables[0]; Assert.IsTrue(table.Columns.Contains("LocationName"), "Missing LocationName column"); Assert.IsTrue(table.Columns.Contains("Richness"), "Missing Richness column"); Assert.IsTrue(table.Columns.Contains("DiversityIndex"), "Missing DiversityIndex column"); Assert.IsTrue(table.Columns.Contains("Evenness"), "Missing Evenness column"); Assert.AreEqual(2, table.Rows.Count, "Wrong row count"); var locationQuery = from locs in table.AsEnumerable() //where locs.Field<Guid>("LocationId").Equals(siteList[0].LocationId) select new { LocationId = locs.Field <Guid>("LocationId"), LocationName = locs.Field <string>("LocationName"), Richness = locs.Field <int>("Richness"), Diversity = locs.Field <decimal>("DiversityIndex"), Evenness = locs.Field <decimal>("Evenness") }; var result = from l1 in locationQuery where l1.LocationName.Equals(siteList[0].LocationName) select l1; Assert.AreEqual(1, result.Count(), "does not contain row for location 1"); Assert.AreEqual(siteList[0].LocationId, result.First().LocationId, "wrong location ID for location 1"); Assert.AreEqual(3, result.First().Richness, "Wrong Richness for location 1"); Assert.AreEqual(0.8044m, result.First().Diversity, "Wrong DiversityIndex for location 1"); Assert.AreEqual(0.7322m, result.First().Evenness, "Wrong Evenness for location 1"); result = from l1 in locationQuery where l1.LocationName.Equals(siteList[1].LocationName) select l1; Assert.AreEqual(1, result.Count(), "does not contain row for location 2"); Assert.AreEqual(siteList[1].LocationId, result.First().LocationId, "wrong location ID for location 2"); Assert.AreEqual(2, result.First().Richness, "Wrong Richness for location 2"); Assert.AreEqual(0.5828m, result.First().Diversity, "Wrong DiversityIndex for location 2"); Assert.AreEqual(0.8409m, result.First().Evenness, "Wrong Evenness for location 2"); }