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); }