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());
 }
Exemple #2
0
        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);
                    }
                }
            }
        }
Exemple #3
0
 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);
 }
Exemple #4
0
 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);
 }
Exemple #5
0
        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);
            }
        }
Exemple #6
0
		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);
        }
Exemple #8
0
        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");
            }
        }
Exemple #9
0
        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);
        }
Exemple #10
0
		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");
			}
		}
Exemple #11
0
        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");
            }
        }
Exemple #12
0
		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);
					}
				}
			}
		}