public void EntityManagerAccessDuringTransactionThrows() { var job = new CreateEntityAddToListJob(); job.entities = m_Manager.BeginExclusiveEntityTransaction(); Assert.Throws <InvalidOperationException>(() => { m_Manager.CreateEntity(typeof(EcsTestData)); }); Assert.Throws <InvalidOperationException>(() => { m_Manager.Exists(new Entity()); }); }
public void CreateEntitiesChainedJob() { var job = new CreateEntityAddToListJob(); job.entities = m_Manager.BeginExclusiveEntityTransaction(); job.createdEntities = new NativeList <Entity>(0, Allocator.TempJob); m_Manager.ExclusiveEntityTransactionDependency = job.Schedule(m_Manager.ExclusiveEntityTransactionDependency); m_Manager.ExclusiveEntityTransactionDependency = job.Schedule(m_Manager.ExclusiveEntityTransactionDependency); m_Manager.EndExclusiveEntityTransaction(); Assert.AreEqual(2, m_Group.CalculateLength()); Assert.AreEqual(42, m_Group.GetComponentDataArray <EcsTestData>()[0].value); Assert.AreEqual(42, m_Group.GetComponentDataArray <EcsTestData>()[1].value); Assert.IsTrue(m_Manager.Exists(job.createdEntities[0])); Assert.IsTrue(m_Manager.Exists(job.createdEntities[1])); job.createdEntities.Dispose(); }