public void ClearsReactiveSystemAfterExecute() { _system = new ReactiveSystemSpy(_context.CreateCollector(_matcherAb)); _system.executeAction = entities => { entities[0].ReplaceComponentA(Component.A); }; var e = CreateEntityAb(); _system.Execute(); _system.Clear(); _system.Execute(); AssertEntities(_system, e); }
public void FiltersEntities() { _system = new ReactiveSystemSpy(_context.CreateCollector(_matcherAb), e => ((NameAgeComponent)e.GetComponent(MyTestComponentsLookup.ComponentA)).age > 42); _context.CreateEntity() .AddComponentA() .AddComponentC(); var eAb1 = _context.CreateEntity(); eAb1.AddComponentB(); eAb1.AddComponent(MyTestComponentsLookup.ComponentA, new NameAgeComponent { age = 10 }); var eAb2 = _context.CreateEntity(); eAb2.AddComponentB(); eAb2.AddComponent(MyTestComponentsLookup.ComponentA, new NameAgeComponent { age = 50 }); var didExecute = 0; _system.executeAction = entities => { didExecute += 1; Assert.AreEqual(3, eAb2.RetainCount); // retained by context, group and collector }; _system.Execute(); Assert.AreEqual(1, didExecute); _system.Execute(); Assert.AreEqual(1, _system.Entities.Length); Assert.AreEqual(eAb2, _system.Entities[0]); Assert.AreEqual(2, eAb1.RetainCount); // retained by context and group Assert.AreEqual(2, eAb2.RetainCount); }
public void InitializesExecutesCleansUpAndTearsDownSystem() { var system = new ReactiveSystemSpy(_ctx.CreateCollector(Matcher <MyTestEntity> .AllOf(MyTestComponentsLookup.ComponentA))); _ctx.CreateEntity().AddComponentA(); Assert.AreEqual(0, system.DidInitialize); system.Initialize(); Assert.AreEqual(1, system.DidInitialize); Assert.AreEqual(0, system.DidExecute); system.Execute(); Assert.AreEqual(1, system.DidExecute); Assert.AreEqual(0, system.DidCleanup); system.Cleanup(); Assert.AreEqual(1, system.DidCleanup); Assert.AreEqual(0, system.DidTearDown); system.TearDown(); Assert.AreEqual(1, system.DidTearDown); }
public void ReactiveSystemDesNotExecuteWhenZeroEntitiesCollectedOnAdded() { SetupReactiveSystemAdded(); _system.Execute(); AssertEntities(_system, null); }