public async Task <IButtplugDevice> CreateDevice(IButtplugLogManager aLogManager, IButtplugDeviceImpl aDevice) { var device = new ButtplugDevice(aLogManager, _protocolType, aDevice); // Run initialization now, just to make sure we're ready to go when we hand the device back. // TODO should probably find a better cancellation token for this. Or like, any at all. await device.InitializeAsync(CancellationToken.None).ConfigureAwait(false); return(device); }
public async Task TestBaseDevice() { var logMgr = new ButtplugLogManager(); var devImpl = new TestDeviceImpl(logMgr, "Device"); var dev = new ButtplugDevice(logMgr, new TestProtocol(logMgr, devImpl), devImpl) { Index = 2, }; await dev.InitializeAsync(default(CancellationToken)); (await dev.ParseMessageAsync(new StopDeviceCmd(2), default(CancellationToken))).Should().BeOfType <Ok>(); dev.Awaiting(async aDevice => await dev.ParseMessageAsync(new RotateCmd(2, new List <RotateCmd.RotateSubcommand>()), default(CancellationToken))).Should().Throw <ButtplugDeviceException>(); dev.Disconnect(); dev.Awaiting(async aDevice => await aDevice.ParseMessageAsync(new StopDeviceCmd(2), default(CancellationToken))).Should().Throw <ButtplugDeviceException>(); }