public void Extension_ShouldCreateSingleton()
        {
            var b = new BeginInitCommandBuffer(TestWorld);

            b.CreateSingleton <TestComponent>();
            BufferSystem.Update();
            Assert.AreEqual(1, GetSingletonQuery <TestComponent>().CalculateEntityCount());
        }
        public void BufferedCommandShouldExecuteNextFrame()
        {
            var b = new BeginInitCommandBuffer(TestWorld);

            b.Buffer.AddComponent <TestComponent>(b.Buffer.CreateEntity());
            BufferSystem.Update();
            Assert.AreEqual(1, GetSingletonQuery <TestComponent>().CalculateEntityCount());
        }
        public void Extension_ShouldCreateSingletonWithCorrectData()
        {
            var b = new BeginInitCommandBuffer(TestWorld);

            b.CreateSingleton(new TestComponentWithData {
                Index = 5
            });
            BufferSystem.Update();
            Assert.AreEqual(5, GetSingletonQuery <TestComponentWithData>().GetSingleton <TestComponentWithData>().Index);
        }
        public void WhenNewBufferIsCreate_ShouldInvokeCallback()
        {
            bool success = false;
            var  b       = new BeginInitCommandBuffer(TestWorld);

            b.NewBuffer += () => success = true;
            b.CreateSingleton(new TestComponentWithData {
                Index = 5
            });
            Assert.IsTrue(success);
        }
        public void ShouldRunOverMultipleFramesFine()
        {
            var b = new BeginInitCommandBuffer(TestWorld);

            b.Buffer.AddComponent <TestComponent>(b.Buffer.CreateEntity());
            BufferSystem.Update();
            Assert.AreEqual(1, GetSingletonQuery <TestComponent>().CalculateEntityCount());
            BufferSystem.Update();
            Assert.AreEqual(1, GetSingletonQuery <TestComponent>().CalculateEntityCount());
            BufferSystem.Update();
            Assert.AreEqual(1, GetSingletonQuery <TestComponent>().CalculateEntityCount());
            b.Buffer.AddComponent <TestComponent>(b.Buffer.CreateEntity());
            BufferSystem.Update();
            Assert.AreEqual(2, GetSingletonQuery <TestComponent>().CalculateEntityCount());
        }