示例#1
0
        private Guid SeedDatabaseForGetByIdTesting()
        {
            using (SpiceContext ctx = SetupInMemoryDatabase())
            {
                Field field = Fields.ModelFactory.DomainModel();
                ctx.Fields.Add(field);

                Domain.Species species = Species.ModelFactory.DomainModel();
                ctx.Species.Add(species);

                Plant plant = ModelFactory.DomainModel(field, species);

                Nutrient nutrient = Tests.Nutrients.ModelFactory.DomainModel();
                ctx.Nutrients.Add(nutrient);

                AdministeredNutrient administeredNutrient = Nutrients.ModelFactory.DomainModel(nutrient, plant);
                plant.AdministeredNutrients.Add(administeredNutrient);
                ctx.AdministeredNutrients.Add(administeredNutrient);

                Event @event = Events.ModelFactory.DomainModel(plant);
                plant.Events.Add(@event);
                ctx.Events.Add(@event);
                ctx.Plants.Add(plant);
                ctx.Save();
                return(plant.Id);
            }
        }
示例#2
0
 private Plant SeedDatabaseForGetEventSummaryTesting()
 {
     using (SpiceContext ctx = SetupInMemoryDatabase())
     {
         Plant plant  = Plants.ModelFactory.DomainModel();
         Event event1 = ModelFactory.DomainModel(plant, EventType.Disease, new DateTime(2018, 1, 1, 0, 0, 0));
         Event event2 = ModelFactory.DomainModel(plant, EventType.Disease, new DateTime(2018, 2, 1, 0, 0, 0));
         Event event3 = ModelFactory.DomainModel(plant, EventType.Disease, new DateTime(2018, 3, 1, 0, 0, 0));
         Event event4 = ModelFactory.DomainModel(plant, EventType.Disease, new DateTime(2018, 4, 1, 0, 0, 0));
         Event event5 = ModelFactory.DomainModel(plant, EventType.OverWatering, new DateTime(2018, 1, 1, 0, 0, 0));
         plant.Events.Add(event1);
         plant.Events.Add(event2);
         plant.Events.Add(event3);
         plant.Events.Add(event4);
         plant.Events.Add(event5);
         ctx.Plants.Add(plant);
         ctx.Events.Add(event1);
         ctx.Events.Add(event2);
         ctx.Events.Add(event3);
         ctx.Events.Add(event4);
         ctx.Events.Add(event5);
         ctx.Save();
         return(plant);
     }
 }
        public void ShouldResolveDatabaseConfig()
        {
            var result = new SpiceContext();

            Assert.True(result.Database.IsSqlServer());
            Assert.Equal(@"Server=(localdb)\MSSQLLocalDB;Database=SpiceDB;Trusted_Connection=True;",
                         result.Database.GetDbConnection().ConnectionString);
        }
示例#4
0
 private Guid SeedDatabaseForGetByIdTesting()
 {
     using (SpiceContext ctx = SetupInMemoryDatabase())
     {
         Domain.Species species = ModelFactory.DomainModel();
         ctx.Species.Add(species);
         ctx.Save();
         return(species.Id);
     }
 }
示例#5
0
 private Guid SeedDatabaseForGetByIdTesting()
 {
     using (SpiceContext ctx = SetupInMemoryDatabase())
     {
         Nutrient nutrient = ModelFactory.DomainModel();
         ctx.Nutrients.Add(nutrient);
         ctx.Save();
         return(nutrient.Id);
     }
 }
示例#6
0
 private void SeedDatabaseForGetAllTesting()
 {
     using (SpiceContext ctx = SetupInMemoryDatabase())
     {
         ctx.Fields.Add(ModelFactory.DomainModel("Field A"));
         ctx.Fields.Add(ModelFactory.DomainModel("Field B"));
         ctx.Fields.Add(ModelFactory.DomainModel("Field C"));
         ctx.Fields.Add(ModelFactory.DomainModel("Field D"));
         ctx.Save();
     }
 }
示例#7
0
 private void SeedDatabaseForGetAllTesting()
 {
     using (SpiceContext ctx = SetupInMemoryDatabase())
     {
         ctx.Species.Add(ModelFactory.DomainModel("Species A"));
         ctx.Species.Add(ModelFactory.DomainModel("Species B"));
         ctx.Species.Add(ModelFactory.DomainModel("Species C"));
         ctx.Species.Add(ModelFactory.DomainModel("Species D"));
         ctx.Save();
     }
 }
示例#8
0
 private void SeedDatabaseForGetAllTesting()
 {
     using (SpiceContext ctx = SetupInMemoryDatabase())
     {
         ctx.Nutrients.Add(ModelFactory.DomainModel("Nutrient A"));
         ctx.Nutrients.Add(ModelFactory.DomainModel("Nutrient B"));
         ctx.Nutrients.Add(ModelFactory.DomainModel("Nutrient C"));
         ctx.Nutrients.Add(ModelFactory.DomainModel("Nutrient D"));
         ctx.Save();
     }
 }
示例#9
0
 private void SeedDatabaseForGetAllTesting()
 {
     using (SpiceContext ctx = SetupInMemoryDatabase())
     {
         Field          field   = Fields.ModelFactory.DomainModel();
         Domain.Species species = Species.ModelFactory.DomainModel();
         ctx.Plants.Add(ModelFactory.DomainModel(field));
         ctx.Plants.Add(ModelFactory.DomainModel(field, species, 0, 1));
         ctx.Save();
     }
 }
示例#10
0
 private Guid SeedDatabaseForGetByIdTesting()
 {
     using (SpiceContext ctx = SetupInMemoryDatabase())
     {
         Field field = ModelFactory.DomainModel();
         Plant plant = Plants.ModelFactory.DomainModel(field);
         ctx.Fields.Add(field);
         ctx.Plants.Add(plant);
         ctx.Save();
         return(field.Id);
     }
 }
示例#11
0
 private Plant SeedDatabaseForGetByPlantTesting()
 {
     using (SpiceContext ctx = SetupInMemoryDatabase())
     {
         Plant plant  = Plants.ModelFactory.DomainModel();
         Event @event = ModelFactory.DomainModel();
         plant.Events.Add(@event);
         ctx.Plants.Add(plant);
         ctx.Save();
         return(plant);
     }
 }
示例#12
0
 private Plant SeedDatabaseForGetByPlantTesting()
 {
     using (SpiceContext ctx = SetupInMemoryDatabase())
     {
         Plant plant = Plants.ModelFactory.DomainModel();
         AdministeredNutrient administeredNutrient = ModelFactory.DomainModel();
         plant.AdministeredNutrients.Add(administeredNutrient);
         ctx.Plants.Add(plant);
         ctx.Save();
         return(plant);
     }
 }
示例#13
0
        private Guid SeedDatabaseForGetByPlantIdTesting()
        {
            using (SpiceContext ctx = SetupInMemoryDatabase())
            {
                Plant plant  = Plants.ModelFactory.DomainModel();
                Event event1 = ModelFactory.DomainModel(plant);
                Event event2 = ModelFactory.DomainModel(plant);
                Event event3 = ModelFactory.DomainModel(plant);

                plant.Events.Add(event1);
                plant.Events.Add(event2);
                plant.Events.Add(event3);
                ctx.Plants.Add(plant);
                ctx.Events.Add(event1);
                ctx.Events.Add(event2);
                ctx.Events.Add(event3);

                ctx.Save();
                return(plant.Id);
            }
        }
示例#14
0
 private Plant SeedDatabaseForGetNutrientSummaryTesting()
 {
     using (SpiceContext ctx = SetupInMemoryDatabase())
     {
         Plant    plant = Plants.ModelFactory.DomainModel();
         Nutrient water = new Nutrient {
             Name = "Water"
         };
         AdministeredNutrient administeredWater1 =
             ModelFactory.DomainModel(water, date: new DateTime(2018, 1, 1, 0, 0, 0));
         AdministeredNutrient administeredWater2 =
             ModelFactory.DomainModel(water, date: new DateTime(2018, 2, 1, 0, 0, 0));
         AdministeredNutrient administeredWater3 =
             ModelFactory.DomainModel(water, date: new DateTime(2018, 3, 1, 0, 0, 0));
         AdministeredNutrient administeredWater4 =
             ModelFactory.DomainModel(water, date: new DateTime(2018, 4, 1, 0, 0, 0));
         AdministeredNutrient administeredWater5 =
             ModelFactory.DomainModel(water, date: new DateTime(2018, 5, 1, 0, 0, 0));
         AdministeredNutrient administerdWater6 =
             ModelFactory.DomainModel(water, date: new DateTime(2019, 1, 1, 0, 0, 0));
         Nutrient fertilizer = new Nutrient {
             Name = "Fertilizer"
         };
         AdministeredNutrient administeredFertilizer =
             ModelFactory.DomainModel(fertilizer, date: new DateTime(2018, 1, 1, 0, 0, 0));
         plant.AdministeredNutrients.Add(administeredWater1);
         plant.AdministeredNutrients.Add(administeredWater2);
         plant.AdministeredNutrients.Add(administeredWater3);
         plant.AdministeredNutrients.Add(administeredWater4);
         plant.AdministeredNutrients.Add(administeredWater5);
         plant.AdministeredNutrients.Add(administerdWater6);
         plant.AdministeredNutrients.Add(administeredFertilizer);
         ctx.Plants.Add(plant);
         ctx.Nutrients.Add(water);
         ctx.Nutrients.Add(fertilizer);
         ctx.Save();
         return(plant);
     }
 }
示例#15
0
        private Domain.Species SeedDatabaseForGetSpeciesSummaryTesting()
        {
            using (SpiceContext ctx = SetupInMemoryDatabase())
            {
                // test data overview: three plants of one species growing on three different fields
                Domain.Species species = ModelFactory.DomainModel();
                Plant          plant1  = Plants.ModelFactory.DomainModel(species: species);
                Plant          plant2  = Plants.ModelFactory.DomainModel(species: species);
                Plant          plant3  = Plants.ModelFactory.DomainModel(species: species);

                // two nutrients - water and fertilizer
                Nutrient water      = Nutrients.ModelFactory.DomainModel("Water");
                Nutrient fertilizer = Nutrients.ModelFactory.DomainModel("Fertilizer", dosageUnits: "g");

                // plant #1 was watered 3 times with 1ml of water and fertilized once with 1 gram of fertilizer
                AdministeredNutrient waterPlant11 =
                    Plants.Nutrients.ModelFactory.DomainModel(water, plant1, new DateTime(2017, 01, 01, 0, 0, 0));
                AdministeredNutrient waterPlant12 =
                    Plants.Nutrients.ModelFactory.DomainModel(water, plant1, new DateTime(2018, 01, 01, 0, 0, 0));
                AdministeredNutrient waterPlant13 =
                    Plants.Nutrients.ModelFactory.DomainModel(water, plant1, new DateTime(2019, 01, 01, 0, 0, 0));
                AdministeredNutrient fertilizerPlant1 =
                    Plants.Nutrients.ModelFactory.DomainModel(fertilizer, plant1, new DateTime(2018, 01, 01, 0, 0, 0));
                plant1.AdministeredNutrients.Add(waterPlant11);
                plant1.AdministeredNutrients.Add(waterPlant12);
                plant1.AdministeredNutrients.Add(waterPlant13);
                plant1.AdministeredNutrients.Add(fertilizerPlant1);

                // plant #2 was watered 2 times with 1ml of water and fertilized twice with 1 gram of fertilizer
                AdministeredNutrient waterPlant21 =
                    Plants.Nutrients.ModelFactory.DomainModel(water, plant2, new DateTime(2017, 01, 01, 0, 0, 0));
                AdministeredNutrient waterPlant22 =
                    Plants.Nutrients.ModelFactory.DomainModel(water, plant2, new DateTime(2018, 01, 02, 0, 0, 0));
                AdministeredNutrient fertilizerPlant21 =
                    Plants.Nutrients.ModelFactory.DomainModel(fertilizer, plant2, new DateTime(2018, 02, 01, 0, 0, 0));
                AdministeredNutrient fertilizerPlant22 =
                    Plants.Nutrients.ModelFactory.DomainModel(fertilizer, plant2, new DateTime(2019, 01, 01, 0, 0, 0));
                plant2.AdministeredNutrients.Add(waterPlant21);
                plant2.AdministeredNutrients.Add(waterPlant22);
                plant2.AdministeredNutrients.Add(fertilizerPlant21);
                plant2.AdministeredNutrients.Add(fertilizerPlant22);

                // plant #3 was not watered and was fertilized four times with 1 gram of fertilizer
                AdministeredNutrient fertilizerPlant31 =
                    Plants.Nutrients.ModelFactory.DomainModel(fertilizer, plant3, new DateTime(2017, 01, 01, 0, 0, 0));
                AdministeredNutrient fertilizerPlant32 =
                    Plants.Nutrients.ModelFactory.DomainModel(fertilizer, plant3, new DateTime(2018, 01, 01, 0, 0, 0));
                AdministeredNutrient fertilizerPlant33 =
                    Plants.Nutrients.ModelFactory.DomainModel(fertilizer, plant3, new DateTime(2018, 02, 02, 0, 0, 0));
                AdministeredNutrient fertilizerPlant34 =
                    Plants.Nutrients.ModelFactory.DomainModel(fertilizer, plant3, new DateTime(2019, 01, 01, 0, 0, 0));
                plant3.AdministeredNutrients.Add(fertilizerPlant31);
                plant3.AdministeredNutrients.Add(fertilizerPlant32);
                plant3.AdministeredNutrients.Add(fertilizerPlant33);
                plant3.AdministeredNutrients.Add(fertilizerPlant34);

                // Water used in 2017: 2
                // Water used in 2018: 2
                // Water used in 2019: 1
                // Fertilizer used in 2017: 1
                // Fertilizer used in 2018: 4
                // Fertilizer used in 2019: 2
                // Total used water: 5 ml
                // Total used fertilizer: 7 g
                ctx.Species.Add(species);
                ctx.Nutrients.Add(water);
                ctx.Nutrients.Add(fertilizer);
                ctx.Plants.Add(plant1);
                ctx.Plants.Add(plant2);
                ctx.Plants.Add(plant3);
                ctx.Save();

                return(species);
            }
        }