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); }
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)); }