public void TestGetOrCreateType()
        {
            var mockComponentActorFactory = new Mock <ComponentActorFactory <Utils.TestComponent> >(Sys);

            mockComponentActorFactory.Setup(f => f.GetProps(It.IsAny <Utils.TestComponent>())).Returns(Props.Create(() => new FactoryTestActor()));
            var mockComponent = new Mock <EntityComponent>();

            IComponentActorFactory componentActorFactory = mockComponentActorFactory.Object;

            var testComponentCorrect = new Utils.TestComponent();

            IActorRef actorRef = componentActorFactory.GetOrCreateActorForComponent(testComponentCorrect);

            Assert.NotNull(actorRef);
            Assert.Equal(actorRef, componentActorFactory.GetOrCreateActorForComponent(testComponentCorrect));
            Assert.Throws <ArgumentException>(() => componentActorFactory.GetOrCreateActorForComponent(mockComponent.Object));
        }
Example #2
0
        private void HandleMessageToEntityComponent(IMessageToEntityComponentFirstOfType message)
        {
            EntityComponent entityComponent = entity.FirstOrDefault(c => c.GetType() == message.ComponentType);

            componentActorFactory.GetOrCreateActorForComponent(entityComponent)?.Tell(message.Message, Sender);
        }