public void RewindDataIndex_InitialiseCache()
        {
            Mock <IDateTimeProvider> dateTimeProviderMock = new Mock <IDateTimeProvider>();
            Mock <ICoinView>         coinViewMock         = new Mock <ICoinView>();

            this.SetupMockCoinView(coinViewMock);

            RewindDataIndexCache rewindDataIndexCache = new RewindDataIndexCache(dateTimeProviderMock.Object, this.Network);

            rewindDataIndexCache.Initialize(20, coinViewMock.Object);

            var items = rewindDataIndexCache.GetMemberValue("items") as ConcurrentDictionary <OutPoint, int>;

            items.Should().HaveCount(22);
            this.CheckCache(items, 20, 10);
        }
        public async Task RewindDataIndex_InitialiseCache_BelowMaxREprg()
        {
            Mock <IDateTimeProvider> dateTimeProviderMock = new Mock <IDateTimeProvider>();
            Mock <ICoinView>         coinViewMock         = new Mock <ICoinView>();

            this.SetupMockCoinView(coinViewMock);

            RewindDataIndexCache rewindDataIndexCache = new RewindDataIndexCache(dateTimeProviderMock.Object, this.Network);

            await rewindDataIndexCache.InitializeAsync(5, coinViewMock.Object);

            var items = rewindDataIndexCache.GetMemberValue("items") as ConcurrentDictionary <string, int>;

            items.Should().HaveCount(10);
            this.CheckCache(items, 5, 1);
        }
        public void RewindDataIndex_InitialiseCache()
        {
            Mock <IDateTimeProvider> dateTimeProviderMock = new Mock <IDateTimeProvider>();
            Mock <ICoinView>         coinViewMock         = new Mock <ICoinView>();

            this.SetupMockCoinView(coinViewMock);

            Mock <IFinalizedBlockInfoRepository> finalizedBlockInfoRepositoryMock = new Mock <IFinalizedBlockInfoRepository>();

            finalizedBlockInfoRepositoryMock.Setup(s => s.GetFinalizedBlockInfo()).Returns(new HashHeightPair());

            RewindDataIndexCache rewindDataIndexCache = new RewindDataIndexCache(dateTimeProviderMock.Object, this.Network, finalizedBlockInfoRepositoryMock.Object, new Checkpoints());

            rewindDataIndexCache.Initialize(20, coinViewMock.Object);

            var items = rewindDataIndexCache.GetMemberValue("items") as ConcurrentDictionary <OutPoint, int>;

            items.Should().HaveCount(22);
            this.CheckCache(items, 20, 10);
        }
Example #4
0
        public void RewindDataIndex_Save()
        {
            Mock <IDateTimeProvider> dateTimeProviderMock = new Mock <IDateTimeProvider>();
            Mock <ICoinView>         coinViewMock         = new Mock <ICoinView>();

            this.SetupMockCoinView(coinViewMock);

            RewindDataIndexCache rewindDataIndexCache = new RewindDataIndexCache(dateTimeProviderMock.Object, this.Network);

            rewindDataIndexCache.Initialize(20, coinViewMock.Object);

            rewindDataIndexCache.Save(new Dictionary <string, int>()
            {
                { $"{ new uint256(21) }-{ 0 }", 21 }
            });
            var items = rewindDataIndexCache.GetMemberValue("items") as ConcurrentDictionary <string, int>;

            items.Should().HaveCount(23);
            this.CheckCache(items, 21, 10);
        }
        public void RewindDataIndex_Save()
        {
            var dateTimeProviderMock = new Mock <IDateTimeProvider>();
            var coinViewMock         = new Mock <ICoinView>();

            this.SetupMockCoinView(coinViewMock);

            var finalizedBlockInfoRepositoryMock = new Mock <IFinalizedBlockInfoRepository>();

            finalizedBlockInfoRepositoryMock.Setup(s => s.GetFinalizedBlockInfo()).Returns(new HashHeightPair());

            var rewindDataIndexCache = new RewindDataIndexCache(dateTimeProviderMock.Object, this.Network, finalizedBlockInfoRepositoryMock.Object, new Checkpoints());

            rewindDataIndexCache.Initialize(20, coinViewMock.Object);

            rewindDataIndexCache.SaveAndEvict(21, new Dictionary <OutPoint, int>()
            {
                { new OutPoint(new uint256(21), 0), 21 }
            });
            var items = rewindDataIndexCache.GetMemberValue("items") as ConcurrentDictionary <OutPoint, int>;

            items.Should().HaveCount(21);
            this.CheckCache(items, 21, 1);
        }