public void InitializationCycle()
        {
            var reference = new DummyPoolable();
            reference.Value10 = reference;

            PoolUtility.GetPoolInitializer(reference);
        }
        public void InitializeContent()
        {
            var reference = new DummyPoolable { Value5 = new DummyContent { Value1 = 1f, Value2 = "Boba" } };
            var instance = new DummyPoolable();
            var initializer = PoolUtility.GetPoolInitializer(reference);

            initializer.InitializeFields(instance);

            Assert.That(instance.Value5.Equals(reference.Value5));
        }
        public void InitializeArrayOrList()
        {
            var reference = new DummyPoolable { Value6 = new[] { 0, 1, 2 }, Value7 = new List<char> { 'a', 'b', 'c' } };
            var instance = new DummyPoolable();
            var initializer = PoolUtility.GetPoolInitializer(reference);

            initializer.InitializeFields(instance);

            Assert.That(instance.Value6.ContentEquals(reference.Value6));
            Assert.That(instance.Value7.ContentEquals(reference.Value7));
        }
        public void IgnoreValues()
        {
            var reference = new DummyPoolable { Value3 = true, Value4 = ScriptableObject.CreateInstance<DummyScriptable>() };
            var instance = new DummyPoolable();
            var initializer = PoolUtility.GetPoolInitializer(reference);

            initializer.InitializeFields(instance);

            Assert.That(instance.Value3, Is.False);
            Assert.That(instance.Value4, Is.Null);
        }
        public void InitializeArrayOrListContent()
        {
            var reference = new DummyPoolable
            {
                Value8 = new[] { new DummyContent { Value1 = 1f, Value2 = "Boba" } },
                Value9 = new List<DummyContent> { new DummyContent { Value1 = 2f, Value2 = "Fett" } }
            };

            var instance = new DummyPoolable();
            var initializer = PoolUtility.GetPoolInitializer(reference);

            initializer.InitializeFields(instance);

            Assert.That(instance.Value8.ContentEquals(reference.Value8));
            Assert.That(instance.Value9.ContentEquals(reference.Value9));
        }
        public void InitializeValue()
        {
            var reference = new DummyPoolable { Value1 = 1f, Value2 = "Boba" };
            var instance = new DummyPoolable();
            var initializer = PoolUtility.GetPoolInitializer(reference);

            initializer.InitializeFields(instance);

            Assert.That(instance.Value1, Is.EqualTo(reference.Value1));
            Assert.That(instance.Value2, Is.EqualTo(reference.Value2));
        }