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)); }
private void HandleMessageToEntityComponent(IMessageToEntityComponentFirstOfType message) { EntityComponent entityComponent = entity.FirstOrDefault(c => c.GetType() == message.ComponentType); componentActorFactory.GetOrCreateActorForComponent(entityComponent)?.Tell(message.Message, Sender); }