public AGSComboBoxComponent(IUIFactory factory, IGameEvents gameEvents) { _uiFactory = factory; _itemButtons = new List<IButton>(); _items = new AGSBindingList<object>(10); _items.OnListChanged.Subscribe(onListChanged); gameEvents.OnRepeatedlyExecute.Subscribe((_, __) => refreshDropDownLayout()); }
public void ObjectBoolProperties_Test(string propertyName, bool isObj, bool?isParent, bool?isGrandParent, bool result) { Mock <IGameState> state = _mocks.GameState(); AGSBindingList <IRoom> rooms = new AGSBindingList <IRoom> (10); state.Setup(s => s.Rooms).Returns(rooms); Action <IObject, bool> setBool = (propertyName == "Visible") ? _setVisible : _setEnabled; Predicate <IObject> getBool = propertyName == "Visible" ? _getVisible : _getEnabled; AGSConcurrentHashSet <IObject> ui = new AGSConcurrentHashSet <IObject>(); foreach (IObject obj in GetImplementors(_mocks, state)) { state.Setup(s => s.UI).Returns(ui); ui.Add(obj); setBool(obj, isObj); if (!isParent.HasValue) { bool actual = getBool(obj); Assert.AreEqual(result, actual); continue; } foreach (IObject parent in GetImplementors(_mocks, state)) { state.Setup(s => s.UI).Returns(ui); ui.Add(parent); obj.TreeNode.SetParent(parent.TreeNode); setBool(parent, isParent.Value); if (!isGrandParent.HasValue) { bool actual = getBool(obj); Assert.AreEqual(result, actual); continue; } foreach (IObject grandparent in GetImplementors(_mocks, state)) { state.Setup(s => s.UI).Returns(ui); ui.Add(grandparent); parent.TreeNode.SetParent(grandparent.TreeNode); setBool(grandparent, isGrandParent.Value); bool actual = getBool(obj); Assert.AreEqual(result, actual); } } } }
public Mock <IGameState> GameState() { if (_gameState == null) { _gameState = new Mock <IGameState> (); _gameState.Setup(m => m.Player).Returns(Player().Object); _gameState.Setup(m => m.Room).Returns(() => Player().Object.Room); _gameState.Setup(m => m.Rooms).Returns(() => { var rooms = new AGSBindingList <IRoom>(1); rooms.Add(Player().Object.Room); return(rooms); }); _gameState.Setup(m => m.Viewport).Returns(Viewport().Object); _gameState.Setup(m => m.SecondaryViewports).Returns(new AGSBindingList <IViewport>(0)); Viewport().Setup(v => v.RoomProvider).Returns(_gameState.Object); _gameState.Setup(m => m.Cutscene).Returns(Cutscene().Object); } return(_gameState); }
public Mock <IRoom> Room(bool newInstance = false) { if (_room == null || newInstance) { AGSBindingList <IArea> areas = new AGSBindingList <IArea>(5); AGSConcurrentHashSet <IObject> roomObjects = new AGSConcurrentHashSet <IObject> (); _room = new Mock <IRoom> (); _room.Setup(m => m.Background).Returns(Object().Object); _room.Setup(m => m.Objects).Returns(roomObjects); _room.Setup(m => m.ShowPlayer).Returns(true); _room.Setup(m => m.Events).Returns(RoomEvents().Object); _room.Setup(m => m.Areas).Returns(areas); } return(_room); }
public async Task ChangeRoom_ToNullRoom_Test() { Mock <IGameState> state = _mocks.GameState(); AGSBindingList <IRoom> rooms = new AGSBindingList <IRoom> (10); state.Setup(s => s.Rooms).Returns(rooms); state.Setup(s => s.Player).Returns(_mocks.Player().Object); foreach (IObject obj in GetImplementors(_mocks, state)) { rooms.Clear(); IRoom oldRoom = _mocks.Room(true).Object; rooms.Add(oldRoom); await testChangeRoom(obj, oldRoom, null); } }
public void ChangeRoom_WhenNotInRoom_Test() { Mock<IGameState> state = _mocks.GameState(); AGSBindingList<IRoom> rooms = new AGSBindingList<IRoom> (10); state.Setup(s => s.Rooms).Returns(rooms); foreach (IObject obj in GetImplementors(_mocks, state)) { rooms.Clear(); IRoom room = _mocks.Room(true).Object; rooms.Add(room); obj.ChangeRoom(room); Assert.AreEqual(room, obj.Room, "Room not changed for " + obj.Hotspot ?? "null"); Assert.IsNull(obj.PreviousRoom, "Prev room not null for " + obj.Hotspot ?? "null"); } }
public void Init() { _mocks = Mocks.Init(); _resolver = Mocks.GetResolver(); _resolver.Build(); _areas = new AGSBindingList <IArea>(1); _roomObjects = new AGSConcurrentHashSet <IObject>(); _uiObjects = new AGSConcurrentHashSet <IObject>(); var room = _mocks.Room(); room.Setup(m => m.Objects).Returns(_roomObjects); room.Setup(m => m.Areas).Returns(_areas); room.Setup(m => m.Background).Returns(() => null); _mocks.GameState().Setup(s => s.UI).Returns(_uiObjects); }
public async Task ChangeRoom_WhenNotInRoom_Test() { Mock <IGameState> state = _mocks.GameState(); AGSBindingList <IRoom> rooms = new AGSBindingList <IRoom> (10); state.Setup(s => s.Rooms).Returns(rooms); foreach (IObject obj in GetImplementors(_mocks, state)) { rooms.Clear(); IRoom room = _mocks.Room(true).Object; rooms.Add(room); await obj.ChangeRoomAsync(room); Assert.AreEqual(room, obj.Room, "Room not changed for " + obj.Hotspot ?? "null"); Assert.IsNull(obj.PreviousRoom, "Prev room not null for " + obj.Hotspot ?? "null"); } }
public void Init() { _mocks = Mocks.Init(); _transitions = new Mock <IAGSRoomTransitions>(); _resolver = Mocks.GetResolver(); _resolver.Build(); _areas = new AGSBindingList <IArea>(1); _roomObjects = new AGSConcurrentHashSet <IObject>(); _uiObjects = new AGSConcurrentHashSet <IObject>(); _events = _resolver.Container.Resolve <IGameEvents>(); //new AGSGameEvents(null, new AGSEvent(), null, null, null, null, _resolver); var room = _mocks.Room(); room.Setup(m => m.Objects).Returns(_roomObjects); room.Setup(m => m.Areas).Returns(_areas); room.Setup(m => m.Background).Returns(() => null); _mocks.GameState().Setup(s => s.UI).Returns(_uiObjects); }
public void ChangeRoom_ToSameRoom_Test() { Mock<IGameState> state = new Mock<IGameState> (); AGSBindingList<IRoom> rooms = new AGSBindingList<IRoom> (10); state.Setup(s => s.Rooms).Returns(rooms); state.Setup(s => s.Player).Returns(_mocks.Player().Object); foreach (IObject obj in GetImplementors(_mocks, state)) { rooms.Clear(); IRoom oldRoom = _mocks.Room(true).Object; IRoom newRoom = oldRoom; rooms.Add(oldRoom); rooms.Add(newRoom); obj.ChangeRoom(oldRoom); obj.ChangeRoom(newRoom); Assert.AreEqual(newRoom, obj.Room, "Room not changed for " + obj.Hotspot ?? "null"); Assert.AreEqual(oldRoom, obj.PreviousRoom, "Prev room incorrect for " + obj.Hotspot ?? "null"); } }
public async Task ChangeRoom_ToNullRoom_Test() { Mock <IGameState> state = _mocks.GameState(); AGSBindingList <IRoom> rooms = new AGSBindingList <IRoom> (10); state.Setup(s => s.Rooms).Returns(rooms); state.Setup(s => s.Player).Returns(_mocks.Player().Object); foreach (IObject obj in GetImplementors(_mocks, state)) { rooms.Clear(); IRoom oldRoom = _mocks.Room(true).Object; IRoom newRoom = null; rooms.Add(oldRoom); await obj.ChangeRoomAsync(oldRoom); await obj.ChangeRoomAsync(newRoom); Assert.AreEqual(newRoom, obj.Room, "Room not changed for " + obj.Hotspot ?? "null"); Assert.AreEqual(oldRoom, obj.PreviousRoom, "Prev room incorrect for " + obj.Hotspot ?? "null"); } }
public void ObjectBoolProperties_Test(string propertyName, bool isObj, bool? isParent, bool? isGrandParent, bool result) { Mock<IGameState> state = new Mock<IGameState> (); AGSBindingList<IRoom> rooms = new AGSBindingList<IRoom> (10); state.Setup(s => s.Rooms).Returns(rooms); Action<IObject, bool> setBool = (propertyName == "Visible") ? _setVisible : _setEnabled; Predicate<IObject> getBool = propertyName == "Visible" ? _getVisible : _getEnabled; foreach (IObject obj in GetImplementors(_mocks, state)) { setBool(obj, isObj); if (!isParent.HasValue) { bool actual = getBool(obj); Assert.AreEqual(result, actual); continue; } foreach (IObject parent in GetImplementors(_mocks, state)) { obj.TreeNode.SetParent(parent.TreeNode); setBool(parent, isParent.Value); if (!isGrandParent.HasValue) { bool actual = getBool(obj); Assert.AreEqual(result, actual); continue; } foreach (IObject grandparent in GetImplementors(_mocks, state)) { parent.TreeNode.SetParent(grandparent.TreeNode); setBool(grandparent, isGrandParent.Value); bool actual = getBool(obj); Assert.AreEqual(result, actual); } } } }