public void HouseTypeLoadCreationAndSave2Test() { using (var db = new DatabaseSetup(Utili.GetCurrentMethodAndClass())) { db.ClearTable(House.TableName); db.ClearTable(HouseTypeDevice.TableName); db.ClearTable(HouseHousehold.TableName); var houses = new CategoryDBBase <House>("blub"); houses.CreateNewItem(db.ConnectionString); var devices = new ObservableCollection <RealDevice>(); var deviceCategories = new ObservableCollection <DeviceCategory>(); var timeBasedProfiles = new ObservableCollection <TimeBasedProfile>(); var timeLimits = new ObservableCollection <TimeLimit>(); var loadTypes = db.LoadLoadTypes(); var variables = db.LoadVariables(); var energyStorages = db.LoadEnergyStorages(loadTypes, variables); var trafoDevices = db.LoadTransformationDevices(loadTypes, variables); var dateprofiles = db.LoadDateBasedProfiles(); var generators = db.LoadGenerators(loadTypes, dateprofiles); var houseTypes = new ObservableCollection <HouseType>(); var locations = db.LoadLocations(devices, deviceCategories, loadTypes); var deviceActionGroups = db.LoadDeviceActionGroups(); var deviceActions = db.LoadDeviceActions(timeBasedProfiles, devices, loadTypes, deviceActionGroups); HouseType.LoadFromDatabase(houseTypes, db.ConnectionString, devices, deviceCategories, timeBasedProfiles, timeLimits, loadTypes, trafoDevices, energyStorages, generators, false, locations, deviceActions, deviceActionGroups, variables); houseTypes.Count.Should().BeGreaterOrEqualTo(1); db.Cleanup(); } }
public void MakeNewDesireTest() { using (var db = new DatabaseSetup(Utili.GetCurrentMethodAndClass())) { var cat = new CategoryDBBase <Desire>("Desires"); cat.CreateNewItem(db.ConnectionString); db.Cleanup(); } }
public void HouseholdTemplateTest2() { using (var db = new DatabaseSetup(Utili.GetCurrentMethodAndClass())) { db.ClearTable(HouseholdTemplate.TableName); db.ClearTable(HHTemplateEntry.TableName); db.ClearTable(HHTemplateEntryPerson.TableName); var cat = new CategoryDBBase <HouseholdTemplate>("Household Generator"); var timeBasedProfiles = db.LoadTimeBasedProfiles(); var desires = db.LoadDesires(); var persons = db.LoadPersons(); var realDevices = db.LoadRealDevices(out var deviceCategories, out _, out var loadTypes, timeBasedProfiles); var dateBasedProfiles = db.LoadDateBasedProfiles(); var timeLimits = db.LoadTimeLimits(dateBasedProfiles); var deviceActionGroups = db.LoadDeviceActionGroups(); var deviceActions = db.LoadDeviceActions(timeBasedProfiles, realDevices, loadTypes, deviceActionGroups); var locations = db.LoadLocations(realDevices, deviceCategories, loadTypes); var variables = db.LoadVariables(); var affordances = db.LoadAffordances(timeBasedProfiles, out _, deviceCategories, realDevices, desires, loadTypes, timeLimits, deviceActions, deviceActionGroups, locations, variables); var traittags = db.LoadTraitTags(); var traits = db.LoadHouseholdTraits(locations, affordances, realDevices, deviceCategories, timeBasedProfiles, loadTypes, timeLimits, desires, deviceActions, deviceActionGroups, traittags, variables); var vacations = db.LoadVacations(); var templateTags = db.LoadHouseholdTags(); var datebasedProfiles = db.LoadDateBasedProfiles(); HouseholdTemplate.LoadFromDatabase(cat.It, db.ConnectionString, traits, false, persons, traittags, vacations, templateTags, datebasedProfiles); (cat.MyItems.Count).Should().Be(0); var gen = cat.CreateNewItem(db.ConnectionString); var entry = gen.AddEntry(traittags[0], 0, 10); entry.AddPerson(persons[0]); cat.SaveToDB(); var generators = new ObservableCollection <HouseholdTemplate>(); HouseholdTemplate.LoadFromDatabase(generators, db.ConnectionString, traits, false, persons, traittags, vacations, templateTags, datebasedProfiles); (generators.Count).Should().Be(1); (generators[0].Entries.Count).Should().Be(1); (generators[0].Entries[0].Persons.Count).Should().Be(1); db.Cleanup(); } }
public void HouseLoadCreationAndSave2Test() { Config.ShowDeleteMessages = false; Logger.Threshold = Severity.Error; using (var db = new DatabaseSetup(Utili.GetCurrentMethodAndClass())) { db.ClearTable(House.TableName); db.ClearTable(HouseTypeDevice.TableName); db.ClearTable(HouseHousehold.TableName); var houses = new CategoryDBBase <House>("blub"); houses.CreateNewItem(db.ConnectionString); var houses1 = new ObservableCollection <House>(); var devices = new ObservableCollection <RealDevice>(); var deviceCategories = new ObservableCollection <DeviceCategory>(); var timeBasedProfiles = new ObservableCollection <TimeBasedProfile>(); var timeLimits = new ObservableCollection <TimeLimit>(); var persons = new ObservableCollection <Person>(); var temperaturProfiles = new ObservableCollection <TemperatureProfile>(); var loadTypes = db.LoadLoadTypes(); var variables = db.LoadVariables(); var geoLocs = db.LoadGeographicLocations(out _, timeLimits); var energyStorages = db.LoadEnergyStorages(loadTypes, variables); var trafoDevices = db.LoadTransformationDevices(loadTypes, variables); var dateprofiles = db.LoadDateBasedProfiles(); var generators = db.LoadGenerators(loadTypes, dateprofiles); var locations = db.LoadLocations(devices, deviceCategories, loadTypes); var deviceActionGroups = db.LoadDeviceActionGroups(); var deviceActions = db.LoadDeviceActions(timeBasedProfiles, devices, loadTypes, deviceActionGroups); var houseTypes = db.LoadHouseTypes(devices, deviceCategories, timeBasedProfiles, timeLimits, loadTypes, trafoDevices, energyStorages, generators, locations, deviceActions, deviceActionGroups, variables); var householdTraits = new ObservableCollection <HouseholdTrait>(); var deviceSelections = new ObservableCollection <DeviceSelection>(); var vacations = db.LoadVacations(); var householdTags = db.LoadHouseholdTags(); var traitTags = db.LoadTraitTags(); var modularHouseholds = db.LoadModularHouseholds(householdTraits, deviceSelections, persons, vacations, householdTags, traitTags); db.LoadTransportation(locations, out var transportationDeviceSets, out var travelRouteSets, out var _, out var _, loadTypes, out var chargingStationSets); House.LoadFromDatabase(houses1, db.ConnectionString, temperaturProfiles, geoLocs, houseTypes, modularHouseholds, chargingStationSets, transportationDeviceSets, travelRouteSets, false); (houses1.Count).Should().Be(1); db.Cleanup(); } }
public void TraitTagTest() { using (var db = new DatabaseSetup(Utili.GetCurrentMethodAndClass())) { db.ClearTable(TraitTag.TableName); var cat = new CategoryDBBase <TraitTag>("Household Trait Tags"); TraitTag.LoadFromDatabase(cat.It, db.ConnectionString, false); (cat.MyItems.Count).Should().Be(0); cat.CreateNewItem(db.ConnectionString); cat.SaveToDB(); var tags = new ObservableCollection <TraitTag>(); TraitTag.LoadFromDatabase(tags, db.ConnectionString, false); (tags.Count).Should().Be(1); db.Cleanup(); } }
public void DesireTest() { using (var db = new DatabaseSetup(Utili.GetCurrentMethodAndClass())) { db.ClearTable(Desire.TableName); var cat = new CategoryDBBase <Desire>("Desires"); Desire.LoadFromDatabase(cat.MyItems, db.ConnectionString, false); (cat.MyItems.Count).Should().Be(0); cat.CreateNewItem(db.ConnectionString); cat.SaveToDB(); var desires = new ObservableCollection <Desire>(); Desire.LoadFromDatabase(desires, db.ConnectionString, false); (desires.Count).Should().Be(1); db.Cleanup(); } }
public void TemplatePersonTest() { using (var db = new DatabaseSetup(Utili.GetCurrentMethodAndClass())) { db.ClearTable(TemplatePerson.TableName); db.ClearTable(TemplatePersonTrait.TableName); var cat = new CategoryDBBase <TemplatePerson>("TemplatePersons"); var timeBasedProfiles = db.LoadTimeBasedProfiles(); var devices = db.LoadRealDevices(out ObservableCollection <DeviceCategory> deviceCategories, out ObservableCollection <VLoadType> loadTypes, timeBasedProfiles); var locations = db.LoadLocations(devices, deviceCategories, loadTypes); var desires = db.LoadDesires(); var dateBasedProfiles = db.LoadDateBasedProfiles(); var timeLimits = db.LoadTimeLimits(dateBasedProfiles); var deviceActionGroups = db.LoadDeviceActionGroups(); var deviceActions = db.LoadDeviceActions(timeBasedProfiles, devices, loadTypes, deviceActionGroups); var variables = db.LoadVariables(); var affordances = db.LoadAffordances(timeBasedProfiles, out _, deviceCategories, devices, desires, loadTypes, timeLimits, deviceActions, deviceActionGroups, locations, variables); var traitTags = db.LoadTraitTags(); var traits = db.LoadHouseholdTraits(locations, affordances, devices, deviceCategories, timeBasedProfiles, loadTypes, timeLimits, desires, deviceActions, deviceActionGroups, traitTags, variables); var selections = db.LoadDeviceSelections(deviceCategories, devices, deviceActions, deviceActionGroups); var persons = db.LoadPersons(); var vacations = db.LoadVacations(); var tags = db.LoadHouseholdTags(); var chhs = db.LoadModularHouseholds(traits, selections, persons, vacations, tags, traitTags); TemplatePerson.LoadFromDatabase(cat.It, db.ConnectionString, traits, false, chhs, persons); (cat.MyItems.Count).Should().Be(0); cat.CreateNewItem(db.ConnectionString); cat.SaveToDB(); var templatePerson = new ObservableCollection <TemplatePerson>(); TemplatePerson.LoadFromDatabase(templatePerson, db.ConnectionString, traits, false, chhs, persons); (templatePerson.Count).Should().Be(1); db.Cleanup(); } }
public void RealDeviceTest() { using (var db = new DatabaseSetup(Utili.GetCurrentMethodAndClass())) { db.ClearTable(RealDevice.TableName); db.ClearTable(RealDeviceLoadType.TableName); var rdcat = new CategoryDBBase <RealDevice>("blub"); var rd = rdcat.CreateNewItem(db.ConnectionString); var profiles = db.LoadTimeBasedProfiles(); var alldevices = db.LoadRealDevices(out var deviceCategories, out var dcNone, out var loadTypes, profiles); (alldevices.Count).Should().Be(1); alldevices.Clear(); rdcat.DeleteItem(rd); RealDevice.LoadFromDatabase(alldevices, deviceCategories, dcNone, db.ConnectionString, loadTypes, profiles, false); (alldevices.Count).Should().Be(0); db.Cleanup(); } }
public void LocationTest() { using (var db = new DatabaseSetup(Utili.GetCurrentMethodAndClass())) { db.ClearTable(Location.TableName); var cat = new CategoryDBBase <Location>("Locations"); var profiles = db.LoadTimeBasedProfiles(); var devices = db.LoadRealDevices(out var deviceCategories, out var loadTypes, profiles); Location.LoadFromDatabase(cat.MyItems, db.ConnectionString, devices, deviceCategories, loadTypes, false); (cat.MyItems.Count).Should().Be(0); var loc = cat.CreateNewItem(db.ConnectionString); cat.SaveToDB(); loc.AddDevice(devices[0]); loc.SaveToDB(); var locations = new ObservableCollection <Location>(); Location.LoadFromDatabase(locations, db.ConnectionString, devices, deviceCategories, loadTypes, false); (locations.Count).Should().Be(1); (locations[0].LocationDevices.Count).Should().Be(1); db.Cleanup(); } }
public Simulator([NotNull] string connectionString, bool ignoreMissingTables = false) { ConnectionString = connectionString; MyGeneralConfig = new GeneralConfig(ConnectionString); CategoryOrDevice.Add("Device"); CategoryOrDevice.Add("Device Category"); Categories = new ObservableCollection <object>(); LoadTypes = new CategoryDBBase <VLoadType>("Load types"); Categories.Add(LoadTypes); Holidays = new CategoryDBBase <Holiday>("Holidays"); Categories.Add(Holidays); GeographicLocations = new CategoryDBBase <GeographicLocation>("Geographic Locations / Cities"); Categories.Add(GeographicLocations); TemperatureProfiles = new CategoryDBBase <TemperatureProfile>("Temperature Profiles"); Categories.Add(TemperatureProfiles); DateBasedProfiles = new CategoryDBBase <DateBasedProfile>("Date Based Profiles"); Categories.Add(DateBasedProfiles); Vacations = new CategoryDBBase <Vacation>("Vacations"); Categories.Add(Vacations); Desires = new CategoryDBBase <Desire>("Desires"); Categories.Add(Desires); Locations = new CategoryDBBase <Location>("Locations"); Categories.Add(Locations); Persons = new CategoryDBBase <Person>("Persons"); Categories.Add(Persons); DeviceCategories = new CategoryDeviceCategory(); Categories.Add(DeviceCategories); RealDevices = new CategoryDBBase <RealDevice>("Devices"); Categories.Add(RealDevices); DeviceActions = new CategoryDBBase <DeviceAction>("Device Actions"); Categories.Add(DeviceActions); DeviceActionGroups = new CategoryDBBase <DeviceActionGroup>("Device Action Groups"); Categories.Add(DeviceActionGroups); DeviceTaggingSets = new CategoryDBBase <DeviceTaggingSet>("Device Tagging Set"); Categories.Add(DeviceTaggingSets); Timeprofiles = new CategoryDBBase <TimeBasedProfile>("Time Profiles"); Categories.Add(Timeprofiles); TimeLimits = new CategoryDBBase <TimeLimit>("Time Limits"); Categories.Add(TimeLimits); Variables = new CategoryDBBase <Variable>("Variables"); Categories.Add(Variables); Affordances = new CategoryAffordance("Affordances"); Categories.Add(Affordances); SubAffordances = new CategoryDBBase <SubAffordance>("Sub-Affordances"); Categories.Add(SubAffordances); AffordanceTaggingSets = new CategoryDBBase <AffordanceTaggingSet>("Affordance Tagging Set"); Categories.Add(AffordanceTaggingSets); TraitTags = new CategoryDBBase <TraitTag>("Household Trait Tags"); Categories.Add(TraitTags); HouseholdTraits = new CategoryDBBase <HouseholdTrait>("Household Traits"); Categories.Add(HouseholdTraits); HouseholdTags = new CategoryDBBase <HouseholdTag>("Household Template Tags"); Categories.Add(HouseholdTags); HouseholdTemplates = new CategoryDBBase <HouseholdTemplate>("Household Templates"); Categories.Add(HouseholdTemplates); DeviceSelections = new CategoryDBBase <DeviceSelection>("Device Selections"); Categories.Add(DeviceSelections); TemplatePersons = new CategoryDBBase <TemplatePerson>("Template Persons"); Categories.Add(TemplatePersons); ModularHouseholds = new CategoryDBBase <ModularHousehold>("Modular Households"); Categories.Add(ModularHouseholds); TransformationDevices = new CategoryDBBase <TransformationDevice>("Transformation Devices"); Categories.Add(TransformationDevices); EnergyStorages = new CategoryDBBase <EnergyStorage>("Energy Storages"); Categories.Add(EnergyStorages); Generators = new CategoryDBBase <Generator>("Externally Controlled Generators"); Categories.Add(Generators); HouseTypes = new CategoryDBBase <HouseType>("House Types"); Categories.Add(HouseTypes); Houses = new CategoryDBBase <House>("Houses"); Categories.Add(Houses); HouseholdPlans = new CategoryDBBase <HouseholdPlan>("Household Plans"); Categories.Add(HouseholdPlans); SettlementTemplates = new CategoryDBBase <SettlementTemplate>("Settlement Templates"); Categories.Add(SettlementTemplates); Settlements = new CategorySettlement(); Categories.Add(Settlements); Sites = new CategoryDBBase <Site>("Sites"); Categories.Add(Sites); TransportationDeviceCategories = new CategoryDBBase <TransportationDeviceCategory>("Transportation Device Categories"); Categories.Add(TransportationDeviceCategories); TransportationDevices = new CategoryDBBase <TransportationDevice>("Transportation Devices"); Categories.Add(TransportationDevices); TransportationDeviceSets = new CategoryDBBase <TransportationDeviceSet>("Transportation Devices Sets"); Categories.Add(TransportationDeviceSets); TravelRoutes = new CategoryDBBase <TravelRoute>("Travel Routes"); Categories.Add(TravelRoutes); TravelRouteSets = new CategoryDBBase <TravelRouteSet>("Travel Route Sets"); Categories.Add(TravelRouteSets); ChargingStationSets = new CategoryDBBase <ChargingStationSet>("Charging Station Sets"); Categories.Add(ChargingStationSets); Categories.Add(new OtherCategory("Calculation")); Categories.Add(new OtherCategory("Settings")); CalculationOutcomes = new CategoryOutcome(); Categories.Add(CalculationOutcomes); try { if (!ignoreMissingTables) { DatabaseVersionChecker.CheckVersion(ConnectionString); } LoadFromDB(ignoreMissingTables); } catch (Exception e) { if (Config.IsInUnitTesting) { Logger.Exception(e); } throw; } Logger.Info("Loaded the Database"); foreach (dynamic category in Categories) { if (category.LoadingNumber == -1) { throw new LPGException("Loading of the database failed due to invalid loading number for " + category.Name + " of " + category.LoadingNumber + "."); } } }