Ejemplo n.º 1
0
        public void should_not_allocate_in_bulk_when_views_not_in_use()
        {
            var mockViewHandler = Substitute.For <IViewHandler>();
            var pool            = new ViewPool(5, mockViewHandler);

            var viewObject = new ViewObjectContainer(null);

            pool.PooledObjects.Add(viewObject);

            pool.AllocateInstance();

            mockViewHandler.Received(0).CreateView();
            mockViewHandler.Received(1).SetActiveState(Arg.Any <object>(), true);
            Assert.Equal(1, pool.PooledObjects.Count);
            Assert.Equal(1, pool.PooledObjects.Count(x => x.IsInUse));
        }
Ejemplo n.º 2
0
        public void should_not_destroy_on_deallocation()
        {
            var mockViewHandler = Substitute.For <IViewHandler>();
            var pool            = new ViewPool(5, mockViewHandler);

            var actualView = new object();
            var viewObject = new ViewObjectContainer(actualView)
            {
                IsInUse = true
            };

            pool.PooledObjects.Add(viewObject);

            pool.ReleaseInstance(actualView);

            mockViewHandler.Received(0).DestroyView(actualView);
            mockViewHandler.Received(1).SetActiveState(actualView, false);
            Assert.Equal(1, pool.PooledObjects.Count);
            Assert.Equal(1, pool.PooledObjects.Count(x => x.IsInUse == false));
        }
Ejemplo n.º 3
0
        public void should_empty_pool()
        {
            var mockViewHandler = Substitute.For <IViewHandler>();

            var pool = new ViewPool(5, mockViewHandler);

            for (var i = 0; i < 10; i++)
            {
                var viewObject = new ViewObjectContainer(null);

                if (i < 5)
                {
                    viewObject.IsInUse = true;
                }

                pool.PooledObjects.Add(viewObject);
            }

            pool.EmptyPool();

            mockViewHandler.Received(10).DestroyView(Arg.Any <object>());
            Assert.Empty(pool.PooledObjects);
        }
Ejemplo n.º 4
0
        public void should_only_deallocate_unsued_views()
        {
            var mockViewHandler = Substitute.For <IViewHandler>();

            var pool = new ViewPool(5, mockViewHandler);

            for (var i = 0; i < 10; i++)
            {
                var viewObject = new ViewObjectContainer(null);

                if (i < 5)
                {
                    viewObject.IsInUse = true;
                }

                pool.PooledObjects.Add(viewObject);
            }

            pool.DeAllocate(10);

            mockViewHandler.Received(5).DestroyView(Arg.Any <object>());
            Assert.Equal(5, pool.PooledObjects.Count);
            Assert.All(pool.PooledObjects, x => Assert.True(x.IsInUse));
        }