Example #1
0
        public void When_getting_and_renting_items_from_the_pool_with_null_reset()
        {
            Func <SomeObject> factory = () => new SomeObject {
                Name = "Foo", Number = 1
            };

            using (IEasyPool <SomeObject> pool = new EasyPool <SomeObject>(factory, null, 5))
            {
                pool.Count.ShouldBe((uint)0);

                var obj1 = pool.Rent();

                obj1.ShouldNotBeNull();
                obj1.Name.ShouldBe("Foo");
                obj1.Number.ShouldBe(1);

                pool.Count.ShouldBe((uint)0);

                pool.Return(obj1).ShouldBeTrue();

                pool.Count.ShouldBe((uint)1);

                var obj2 = pool.Rent();

                obj2.ShouldNotBeNull();
                obj2.ShouldBe(obj1);

                obj2.Name.ShouldBe("Foo");
                obj2.Number.ShouldBe(1);
            }
        }
Example #2
0
        public void When_returning_more_than_max_pool_size()
        {
            Func <SomeObject> factory  = () => new SomeObject();
            const int         MaxCount = 1;

            using (IEasyPool <SomeObject> pool = new EasyPool <SomeObject>(factory, null, MaxCount))
            {
                pool.Count.ShouldBe((uint)0);

                var obj1 = new SomeObject();

                pool.Return(obj1).ShouldBeTrue();

                pool.Count.ShouldBe((uint)1);

                var obj2 = new SomeObject();

                pool.Return(obj2).ShouldBeFalse();

                pool.Count.ShouldBe((uint)1);

                var pooledObj = pool.Rent();
                pooledObj.ShouldBe(obj1);

                pool.Count.ShouldBe((uint)0);
            }
        }
Example #3
0
        public void When_disposing_the_pool()
        {
            Func <SomeObject>      factory  = () => new SomeObject();
            const int              MaxCount = 1;
            IEasyPool <SomeObject> pool     = new EasyPool <SomeObject>(factory, null, MaxCount);
            var obj1 = new SomeObject();

            pool.Return(obj1).ShouldBeTrue();
            pool.Count.ShouldBe((uint)1);

            pool.Dispose();
            pool.Count.ShouldBe((uint)0);
        }
Example #4
0
    void Awake()
    {
        if (Instance != null)
        {
            Destroy(gameObject);
        }

        Instance = this;

        thisTransform = transform;
        pooledObjects = new GameObject[poolSize];
        AddObjectsToPool();
    }