public void IfEntityMatches_RemovesNodeFromList() { var family = new ComponentMatchingFamily <Node <MockComponentA> >(); var entity1 = new MockEntity <MockComponentA>(); family.EntityAdded(entity1); family.EntityRemoved(entity1); Assert.IsEmpty(family.Nodes); }
public void WhenEntityRemoved_NodeReturnedToPool() { var pool = Substitute.For <INodePool <Node <MockComponentA> > >(); var family = new ComponentMatchingFamily <Node <MockComponentA> >(pool); var node = new Node <MockComponentA>(); pool.UnPool().Returns(node); var entity1 = new MockEntity <MockComponentA>(); family.EntityAdded(entity1); family.EntityRemoved(entity1); pool.Received().UnPool(); pool.Received().Pool(node); }
public void IfEntityOfSameTypeButDifferentInstanceIsRemoved_CorrectInstanceIsRemoved() { var family = new ComponentMatchingFamily <Node <MockComponentA> >(); var entity1 = new MockEntity <MockComponentA>(); family.EntityAdded(entity1); var entity2 = new MockEntity <MockComponentA>(); family.EntityAdded(entity2); Assert.IsTrue(family.Nodes.Count() == 2); family.EntityRemoved(entity1); Assert.IsTrue(family.Nodes.Count() == 1); Assert.IsTrue(family.Nodes.First().Component1 == entity2.Components[0]); }