public void PoolStateChangedTest()
        {
            Boolean l_Executed = false;

            PoolWatcher l_Pool = new PoolWatcher();

            l_Pool.OnPoolStateChanged += (p_Pool, p_Args) =>
            {
                Assert.Equal(PoolWatcherPoolTrend.NothingChanged, p_Args.OldState.Trend);
                Assert.False(p_Args.OldState.LimitReached);
                Assert.Equal(PoolWatcherPoolTrend.NothingChanged, p_Args.NewState.Trend);
                Assert.True(p_Args.NewState.LimitReached);
                l_Executed = true;
            };

            StreamManagerPool        l_Manager = new StreamManagerArrayPool("1", 1, 2);
            List <StreamManagerPool> l_List    = new List <StreamManagerPool>();

            l_List.Add(l_Manager);

            Assert.False(l_Executed);
            l_Pool.Watch(l_List);
            Assert.False(l_Executed);

            MemoryBlock l_MemoryBlock = l_Manager.GetBlock();

            l_Pool.Watch(l_List);
            Assert.NotNull(l_MemoryBlock);

            MemoryBlock l_MemoryBlock2 = l_Manager.GetBlock();

            l_Pool.Watch(l_List);
            Assert.NotNull(l_MemoryBlock2);

            MemoryBlock l_MemoryBlock3 = l_Manager.GetBlock();

            l_Pool.Watch(l_List);
            Assert.NotNull(l_MemoryBlock3);

            Assert.True(l_Executed);
        }
Beispiel #2
0
        public void FallBackIgnoreFreeSpaceTest()
        {
            StreamManagerArrayPool l_FallBack = new StreamManagerArrayPool("Fallback", 1, 0);

            List <PoolChooserPolicyPoolItem> l_Items = new List <PoolChooserPolicyPoolItem>();
            PoolChooserPolicyPoolItem        l_Item  = new PoolChooserPolicyPoolItem();

            l_Item.Start = 0;
            l_Item.End   = 10;
            l_Item.Pool  = new StreamManagerArrayPool("1", 1, 1);
            l_Items.Add(l_Item);
            l_Item       = new PoolChooserPolicyPoolItem();
            l_Item.Start = 11;
            l_Item.End   = 20;
            l_Item.Pool  = new StreamManagerArrayPool("2", 1, 0);
            l_Items.Add(l_Item);

            IgnoreFreeSpacePoolChooserPolicy l_Chooser = new IgnoreFreeSpacePoolChooserPolicy(l_Items, l_FallBack);
            StreamManagerPool l_Pool = l_Chooser.FindBestPool(25, 25);

            Assert.Equal(l_FallBack, l_Pool);
            Assert.True(l_Chooser.PoolHasFreeBlocks(l_Pool));
        }