public void DisposeOnCompletion_WithStructuralChanges_Disposes() { m_Manager.CreateEntity(typeof(EcsTestFloatData)); var c = new SupportsDisposeOnCompletion(Allocator.Temp); try { Assert.DoesNotThrow(() => TestSystem.DisposeOnCompletion_WithStructuralChanges(c)); Assert.IsTrue(c.HasBeenDisposed(), "Dispose has not been called"); } finally { c.Release(); } }
public void DisposeOnCompletion_DisposesAtEnd([Values] ScheduleType scheduleType) { m_Manager.CreateEntity(typeof(EcsTestFloatData)); var c = new SupportsDisposeOnCompletion(Allocator.Temp); try { Assert.DoesNotThrow(() => TestSystem.DisposeOnCompletion(c, scheduleType)); Assert.IsTrue(c.HasBeenDisposed(), "Dispose has not been called"); } finally { c.Release(); } }
public void DisposeOnCompletion(SupportsDisposeOnCompletion c, ScheduleType scheduleType) { switch (scheduleType) { case ScheduleType.Run: Entities.WithDisposeOnCompletion(c).ForEach((ref EcsTestFloatData _) => { c.CheckCanRead(); }).Run(); break; case ScheduleType.Schedule: Entities.WithDisposeOnCompletion(c).ForEach((ref EcsTestFloatData _) => { c.CheckCanRead(); }).Schedule(default).Complete(); break; case ScheduleType.ScheduleParallel: Entities.WithReadOnly(c).WithDisposeOnCompletion(c).ForEach((ref EcsTestFloatData _) => { c.CheckCanRead(); }).ScheduleParallel(default).Complete(); break; } }
public void DisposeOnCompletion_WithStructuralChanges(SupportsDisposeOnCompletion c) { Entities.WithStructuralChanges().WithDisposeOnCompletion(c).ForEach((ref EcsTestFloatData _) => { c.CheckCanRead(); }).Run(); }