Beispiel #1
0
        public void TestInit()
        {
            var actorRefFactoryMock = new Mock <IActorRefFactory>();
            //actorRefFactoryMock.Setup(f => f.ActorOf(It.IsAny<Props>(), It.IsAny<string>())).Returns((Props props, string name) => ActorRefs.Nobody);
            var scene = new Scene();
            var mockServiceRegistry = new Mock <Xenko.Core.IServiceRegistry>();
            var sceneInstance       = new SceneInstance(mockServiceRegistry.Object, scene);
            var system = new Systems.ConstructionSystem(sceneInstance, actorRefFactoryMock.Object);

            Assert.Equal("Construction", system.Name);
            system.Initialize();
            var building = new Systems.Construction.Building()
            {
                Name = "Test",
            };

            system.AddBuilding(building);

            Assert.NotNull(system.GetBuilding(building.Name));
        }
        public void TestMessagesFromComponent()
        {
            var scene = new Scene();
            ConstructionSystem system = SetupMock(scene);
            var building = new Systems.Construction.Building()
            {
                Name   = "Test",
                Stages =
                {
                    new Systems.Construction.Building.Stage()
                    {
                        NeededResources = new Dictionary <string, int>
                        {
                            { "Wood", 2 }
                        },
                        Steps = 2,
                    },
                }
            };

            system.AddBuilding(building);
            var component = new ConstructionSite()
            {
                Building = "Test",
            };
            var entity = new Entity
            {
                component,
            };

            scene.Entities.Add(entity);

            Assert.NotNull(entity.Get <ConstructionSite>());
            Assert.Null(entity.Get <Components.Building>());
            system.Actor.Tell(new Systems.Construction.Messages.ConstructionFinished(entity.Id, component.Building));
            ExpectNoMsg(500);
            Assert.Null(entity.Get <ConstructionSite>());
            Components.Building entBuilding = entity.Get <Components.Building>();
            Assert.NotNull(building);
            Assert.Equal(component.Building, entBuilding.Name);
        }