public void Users_AssignedDevices_AreLostWhenUserIsRemoved() { var device1 = InputSystem.AddDevice <Gamepad>(); var device2 = InputSystem.AddDevice <Gamepad>(); var user = new TestUser(); InputUser.Add(user); user.AssignInputDevice(device1); user.AssignInputDevice(device2); InputUser.Remove(user); Assert.That(user.GetAssignedInputDevices(), Has.Count.Zero); }
public void Users_HaveIndices() { var user1 = new TestUser(); var user2 = new TestUser(); Assert.That(user1.GetUserIndex(), Is.EqualTo(-1)); InputUser.Add(user1); InputUser.Add(user2); Assert.That(user1.GetUserIndex(), Is.EqualTo(0)); Assert.That(user2.GetUserIndex(), Is.EqualTo(1)); InputUser.Remove(user1); Assert.That(user1.GetUserIndex(), Is.EqualTo(-1)); Assert.That(user2.GetUserIndex(), Is.EqualTo(0)); }
public void Users_CanAddAndRemoveUsers() { var user1 = new TestUser(); var user2 = new TestUser(); InputUser.Add(user1); InputUser.Add(user2); Assert.That(InputUser.all, Has.Count.EqualTo(2)); // Plus default user. Assert.That(InputUser.all, Has.Exactly(1).SameAs(user1)); Assert.That(InputUser.all, Has.Exactly(1).SameAs(user2)); InputUser.Remove(user1); Assert.That(InputUser.all, Has.Count.EqualTo(1)); Assert.That(InputUser.all, Has.None.SameAs(user1)); Assert.That(InputUser.all, Has.Exactly(1).SameAs(user2)); }
public void Users_HaveUniqueIds() { var user1 = new TestUser(); var user2 = new TestUser(); Assert.That(user1.GetUserId(), Is.EqualTo(InputUser.kInvalidId)); Assert.That(user2.GetUserId(), Is.EqualTo(InputUser.kInvalidId)); InputUser.Add(user1); InputUser.Add(user2); Assert.That(user1.GetUserId(), Is.Not.EqualTo(InputUser.kInvalidId)); Assert.That(user2.GetUserId(), Is.Not.EqualTo(InputUser.kInvalidId)); Assert.That(user1.GetUserId(), Is.Not.EqualTo(user2.GetUserId())); InputUser.Remove(user1); Assert.That(user1.GetUserId(), Is.EqualTo(InputUser.kInvalidId)); }
public void Users_CanHavePlatformHandles() { var user = new TestUser(); Assert.That(user.GetUserHandle(), Is.Null); InputUser.Add(user); Assert.That(user.GetUserHandle(), Is.Null); user.SetUserHandle(new InputUserHandle("test", 1)); Assert.That(user.GetUserHandle(), Is.EqualTo(new InputUserHandle("test", 1))); user.SetUserHandle(null); Assert.That(user.GetUserHandle(), Is.Null); user.SetUserHandle(new InputUserHandle("test", 1)); InputUser.Remove(user); Assert.That(user.GetUserHandle(), Is.Null); }
public void Users_CanBeMonitoredForChanges() { InputUser.Add(new TestUser()); // Noise. InputUser.Add(new TestUser()); // Noise. var user = new TestUser(); IInputUser receivedUser = null; InputUserChange?receivedChange = null; InputUser.onChange += (usr, change) => { Assert.That(receivedChange == null); receivedUser = usr; receivedChange = change; }; // Added. InputUser.Add(user); Assert.That(receivedUser, Is.SameAs(user)); Assert.That(receivedChange, Is.EqualTo(InputUserChange.Added)); receivedUser = null; receivedChange = null; // NameChanged. user.SetUserName("NewName"); Assert.That(receivedUser, Is.SameAs(user)); Assert.That(receivedChange, Is.EqualTo(InputUserChange.NameChanged)); receivedUser = null; receivedChange = null; // HandleChanged. user.SetUserHandle(new InputUserHandle("test", 1)); Assert.That(receivedUser, Is.SameAs(user)); Assert.That(receivedChange, Is.EqualTo(InputUserChange.HandleChanged)); receivedUser = null; receivedChange = null; // Same name, no notification. user.SetUserName("NewName"); Assert.That(receivedChange, Is.Null); // DevicesChanged. var device = InputSystem.AddDevice <Gamepad>(); user.AssignInputDevice(device); Assert.That(receivedUser, Is.SameAs(user)); Assert.That(receivedChange, Is.EqualTo(InputUserChange.DevicesChanged)); receivedUser = null; receivedChange = null; // Same device, no notification. user.AssignInputDevice(device); Assert.That(receivedChange, Is.Null); // DevicesChanges, removed. user.ClearAssignedInputDevices(); Assert.That(receivedUser, Is.SameAs(user)); Assert.That(receivedChange, Is.EqualTo(InputUserChange.DevicesChanged)); receivedUser = null; receivedChange = null; // ControlSchemeChanged. user.AssignControlScheme("gamepad"); Assert.That(receivedUser, Is.SameAs(user)); Assert.That(receivedChange, Is.EqualTo(InputUserChange.ControlSchemeChanged)); receivedUser = null; receivedChange = null; // Same control scheme, no notification. user.AssignControlScheme("gamepad"); Assert.That(receivedChange, Is.Null); // Removed. InputUser.Remove(user); Assert.That(receivedUser, Is.SameAs(user)); Assert.That(receivedChange, Is.EqualTo(InputUserChange.Removed)); ////TODO: actions ////TODO: activate, passivate }