Ejemplo n.º 1
0
        public void DeviceSelectionTest()
        {
            using (var db = new DatabaseSetup(Utili.GetCurrentMethodAndClass()))
            {
                db.ClearTable(DeviceSelection.TableName);
                db.ClearTable(DeviceSelectionItem.TableName);
                db.ClearTable(DeviceSelectionDeviceAction.TableName);
                var timeBasedProfiles = db.LoadTimeBasedProfiles();
                var devices           = db.LoadRealDevices(out var deviceCategories, out _, out var loadTypes,
                                                           timeBasedProfiles);

                var deviceSelections = new ObservableCollection <DeviceSelection>();
                var groups           = db.LoadDeviceActionGroups();
                var deviceActions    = db.LoadDeviceActions(timeBasedProfiles, devices,
                                                            loadTypes, groups);
                DeviceSelection.LoadFromDatabase(deviceSelections, db.ConnectionString, deviceCategories, devices,
                                                 deviceActions, groups, false);

                var ds = new DeviceSelection("blub", null, "bla", db.ConnectionString, Guid.NewGuid().ToStrGuid());
                ds.SaveToDB();
                ds.AddItem(deviceCategories[0], devices[0]);

                ds.AddAction(groups[0], deviceActions[0]);
                ds.SaveToDB();
                (ds.Items.Count).Should().Be(1);
                (ds.Actions.Count).Should().Be(1);

                // loading test
                deviceSelections = new ObservableCollection <DeviceSelection>();
                DeviceSelection.LoadFromDatabase(deviceSelections, db.ConnectionString, deviceCategories, devices,
                                                 deviceActions, groups, false);

                ds = deviceSelections[0];
                (ds.Actions.Count).Should().Be(1);
                (ds.Items.Count).Should().Be(1);
                ds.DeleteItemFromDB(ds.Items[0]);
                ds.DeleteActionFromDB(ds.Actions[0]);
                (ds.Items.Count).Should().Be(0);
                (ds.Actions.Count).Should().Be(0);

                // deleting and loading
                deviceSelections = new ObservableCollection <DeviceSelection>();
                DeviceSelection.LoadFromDatabase(deviceSelections, db.ConnectionString, deviceCategories, devices,
                                                 deviceActions, groups, false);
                (ds.Items.Count).Should().Be(0);
                ds = deviceSelections[0];
                ds.DeleteFromDB();

                // deleting
                deviceSelections = new ObservableCollection <DeviceSelection>();
                DeviceSelection.LoadFromDatabase(deviceSelections, db.ConnectionString, deviceCategories, devices,
                                                 deviceActions, groups, false);
                (deviceSelections.Count).Should().Be(0);
                db.Cleanup();
            }
        }