Exemple #1
0
        public async Task UpdateActiveCampaigns_WhenNewActiveCampaignsShouldBeInserted_InsertThemAndReturnTrue()
        {
            //Arrange
            _campaignClientMock.Setup(c => c.Campaigns.GetAsync(It.IsAny <CampaignsPaginationRequestModel>()))
            .ReturnsAsync(CampaignCacheServiceTestData.GetPaginatedCampaignListResponseModel());
            _dbMock.Setup(db => db.StringGetAsync($"BonusEngine:campaignId:{CampaignCacheServiceTestData.ActiveCampaignId}", It.IsAny <CommandFlags>()))
            .ReturnsAsync(value: RedisValue.Null);
            _dbMock.Setup(db => db.StringGetAsync($"BonusEngine:bonusType:{CampaignCacheServiceTestData.BonusTypeCampaigns.TypeName}", It.IsAny <CommandFlags>()))
            .ReturnsAsync(value: RedisValue.Null);
            _activeCampaignRepositoryMock.Setup(a => a.GetAll())
            .ReturnsAsync(new List <Guid>());
            _activeCampaignRepositoryMock.Setup(a => a.InsertAsync(It.IsAny <Guid>()))
            .ReturnsAsync(Guid.NewGuid());

            //Act
            var result = await _campaignCacheService.UpdateActiveCampaigns();

            //Assert
            _campaignClientMock
            .Verify(c => c.Campaigns.GetAsync(It.IsAny <CampaignsPaginationRequestModel>()), Times.Once);
            _dbMock
            .Verify(db => db.StringGetAsync($"BonusEngine:campaignId:{CampaignCacheServiceTestData.ActiveCampaignId}", It.IsAny <CommandFlags>()), Times.Once);
            _dbMock
            .Verify(db => db.StringGetAsync($"BonusEngine:bonusType:{CampaignCacheServiceTestData.BonusTypeCampaigns.TypeName}", It.IsAny <CommandFlags>()), Times.Once);
            _activeCampaignRepositoryMock
            .Verify(a => a.GetAll(), Times.Once);
            _activeCampaignRepositoryMock
            .Verify(a => a.InsertAsync(It.IsAny <Guid>()), Times.Once);
            _activeCampaignRepositoryMock
            .Verify(a => a.DeleteAsync(It.IsAny <Guid>()), Times.Never);
            Assert.True(result);
        }
Exemple #2
0
        public async Task UpdateActiveCampaigns_WhenNewActiveCampaignsShouldBeInsertedAndNotActiveShouldBeRemoved_UpdateThemAndReturnTrue()
        {
            //Arrange
            _campaignClientMock.Setup(c => c.Campaigns.GetAsync(It.IsAny <CampaignsPaginationRequestModel>()))
            .ReturnsAsync(CampaignCacheServiceTestData.GetPaginatedCampaignListResponseModel());

            _dbMock.Setup(db => db.StringGetAsync($"BonusEngine:campaignId:{CampaignCacheServiceTestData.ActiveCampaignId}", It.IsAny <CommandFlags>()))
            .ReturnsAsync(value: JsonConvert.SerializeObject(CampaignCacheServiceTestData.CampaignModel));

            _dbMock.Setup(db => db.StringGetAsync($"BonusEngine:campaignId:{CampaignCacheServiceTestData.NotActiveCampaignId}", It.IsAny <CommandFlags>()))
            .ReturnsAsync(value: JsonConvert.SerializeObject(CampaignCacheServiceTestData.CampaignModel));

            _dbMock.Setup(db => db.StringGetAsync($"BonusEngine:bonusType:{CampaignCacheServiceTestData.BonusTypeCampaigns.TypeName}", It.IsAny <CommandFlags>()))
            .ReturnsAsync(value: JsonConvert.SerializeObject(CampaignCacheServiceTestData.BonusTypeCampaigns));

            _activeCampaignRepositoryMock.Setup(a => a.GetAll())
            .ReturnsAsync(CampaignCacheServiceTestData.ActiveCampaignIdsFromDb);

            _activeCampaignRepositoryMock.Setup(a => a.InsertAsync(It.IsAny <Guid>()))
            .ReturnsAsync(Guid.NewGuid());

            //Act
            var result = await _campaignCacheService.UpdateActiveCampaigns();

            //Assert
            _campaignClientMock
            .Verify(c => c.Campaigns.GetAsync(It.IsAny <CampaignsPaginationRequestModel>()), Times.Once);
            _dbMock
            .Verify(db => db.StringGetAsync($"BonusEngine:campaignId:{CampaignCacheServiceTestData.ActiveCampaignId}", It.IsAny <CommandFlags>()), Times.Exactly(2));
            //when update existing active campaign in the cache
            _dbMock
            .Verify(db => db.KeyDeleteAsync($"BonusEngine:campaignId:{CampaignCacheServiceTestData.ActiveCampaignId}", It.IsAny <CommandFlags>()), Times.Once);
            _dbMock
            .Verify(db => db.KeyDeleteAsync($"BonusEngine:campaignId:{CampaignCacheServiceTestData.NotActiveCampaignId}", It.IsAny <CommandFlags>()), Times.Once);
            _dbMock
            .Verify(db => db.StringGetAsync($"BonusEngine:bonusType:{CampaignCacheServiceTestData.BonusTypeCampaigns.TypeName}", It.IsAny <CommandFlags>()), Times.Exactly(3));
            _activeCampaignRepositoryMock
            .Verify(a => a.GetAll(), Times.Once);
            _activeCampaignRepositoryMock
            .Verify(a => a.InsertAsync(It.IsAny <Guid>()), Times.Never);
            _activeCampaignRepositoryMock
            .Verify(a => a.DeleteAsync(It.IsAny <Guid>()), Times.Once);
            Assert.True(result);
        }