public async Task RegisterAsyncOptionRemoveTest() { //arrange var dbConnection = new UnitTestDbConnection(); Database.SetInitializer(new CreateFreshDbInitializer()); var bcb = new BuiltinCommandBuilder(dbConnection); var builtinCommand = new BuiltinCommand { Name = "Unit Test Builtin Command", UniqueIdentifier = "BUILTIN_COMMAND1", }; var option1 = new CommandOption { Name = "Option 1" }; var option2 = new CommandOption { Name = "Option 2" }; builtinCommand.Options.Add(option1); builtinCommand.Options.Add(option2); using (var context = new ZvsContext(dbConnection)) { context.BuiltinCommands.Add(builtinCommand); await context.SaveChangesAsync(); } builtinCommand.Options.Remove(option2); //act var result = await bcb.RegisterAsync(builtinCommand, CancellationToken.None); BuiltinCommand setting; using (var context = new ZvsContext(dbConnection)) { setting = await context.BuiltinCommands .Include(o => o.Options) .FirstOrDefaultAsync(o => o.UniqueIdentifier == builtinCommand.UniqueIdentifier); } //assert Console.WriteLine(result.Message); Assert.IsFalse(result.HasError, result.Message); Assert.IsNotNull(setting, "Expected new builtin command setting saved to DB"); Assert.IsTrue(setting.Options.Count == 1, "Expected 1 option!"); Assert.IsTrue(setting.Options[0].Name == option1.Name); }
public async Task RegisterAsyncAddedCommandOptionsTest() { //arrange var dbConnection = new StubIEntityContextConnection { NameOrConnectionStringGet = () => "dcb-RegisterAsyncAddedCommandOptionsTest" }; Database.SetInitializer(new CreateFreshDbInitializer()); var dvb = new DeviceCommandBuilder(dbConnection); var device = UnitTesting.CreateFakeDevice(); var deviceCommand = new DeviceCommand { Name = "Unit Testing Command", }; var option1 = new CommandOption { Name = "Option 1" }; var option2 = new CommandOption { Name = "Option 2" }; deviceCommand.Options.Add(option1); deviceCommand.Options.Add(option2); using (var context = new ZvsContext(dbConnection)) { device.Commands.Add(deviceCommand); context.Devices.Add(device); await context.SaveChangesAsync(); } var option3 = new CommandOption { Name = "Option 3" }; deviceCommand.Options.Add(option3); //act var result = await dvb.RegisterAsync(device.Id, deviceCommand, CancellationToken.None); Console.WriteLine(result.Message); List<DeviceCommand> deviceCommands; using (var context = new ZvsContext(dbConnection)) { deviceCommands = await context.DeviceCommands .Include(o => o.Options) .Include(o => o.Device) .Where(o => o.Id == deviceCommand.Id) .ToListAsync(); } //assert Assert.IsFalse(result.HasError, result.Message); Assert.IsTrue(deviceCommands.Count == 1, "Device has an unexpected number of commands"); Assert.IsTrue(deviceCommands[0].Options.Count == 3, "Option not removed as expected"); Assert.IsTrue(deviceCommands[0].Options[2].Name == option3.Name, "Option mismatch"); }
public async Task RegisterAsyncRemvoedCommandOptionDeviceTypeTest() { //arrange var dbConnection = new UnitTestDbConnection(); Database.SetInitializer(new CreateFreshDbInitializer()); var dtb = new DeviceTypeBuilder(dbConnection); var adapter = UnitTesting.CreateFakeAdapter(); var dt = new DeviceType { AdapterId = adapter.Id, UniqueIdentifier = "UNIT_TEST_DEVICE_TYPE1", Name = "Unit Test Device Type" }; var dtc = new DeviceTypeCommand { UniqueIdentifier = "DTC1", Name = "Test Device Type Command" }; var option1 = new CommandOption { Name = "Option 1" }; var option2 = new CommandOption { Name = "Option 2" }; dt.Commands.Add(dtc); adapter.DeviceTypes.Add(dt); dtc.Options.Add(option1); dtc.Options.Add(option2); using (var context = new ZvsContext(dbConnection)) { context.Adapters.Add(adapter); await context.SaveChangesAsync(); } dtc.Options.Remove(option1); //act var result = await dtb.RegisterAsync(adapter.AdapterGuid, dt, CancellationToken.None); using (var context = new ZvsContext(dbConnection)) { var dtc1 = context.DeviceTypeCommands .Include(o => o.Options) .First(); //assert Console.WriteLine(result.Message); Assert.IsFalse(result.HasError); Assert.IsTrue(dtc1.Options.Count == 1, "Expected 2 options"); } }