public void integration_test_for_user_upload_info() { var namevalues = new NameValueCollection(); namevalues[MobileParam.Key_IMSI] = TEST_IMSI; _requestRepoMock.Setup<NameValueCollection>(m => m.Header).Returns(namevalues); MobileParam mobileParam = new MobileParam(requestRepo); var realRedisService = new RedisService(); var realRedisLogger = new RedisLogger(); realRedisService.FlushAll(); realRedisLogger.Flush(); UserInteractService userInteractService = new UserInteractService(realRedisLogger, realRedisService, new UserInteractUIService(realRedisService)); //first time , add UserUploadInfo userUploadInfo = new UserUploadInfo { ActivityInfos = GetAndroidUserAppActivityInfos(), AppInfos = GetAppInfos(), AppTrafficInfos = GetAppTrafficInfos() }; userInteractService.SaveUserUploadInfos(mobileParam, userUploadInfo); //second time , update namevalues = new NameValueCollection(); namevalues[MobileParam.Key_IMSI] = TEST_IMSI; namevalues[MobileParam.Key_IsTouch] = "1"; _requestRepoMock.Setup<NameValueCollection>(m => m.Header).Returns(namevalues); mobileParam = new MobileParam(requestRepo); userInteractService.SaveUserUploadInfos(mobileParam, userUploadInfo); Assert.NotNull(realRedisService.GetValueFromHash<string>("U:9460002850533220", "com.packagename.app1")); using (var redis = RedisClientManager.GetReadOnlyClient()) { Assert.Equal(2, redis.GetListCount("Queue:AndroidUserUploadInfo:Logger")); var secondAndroidUserUploadInfo = JsonConvert.DeserializeObject<LogModel>(redis.GetItemFromList("Queue:AndroidUserUploadInfo:Logger", 1)); Assert.Equal(LogOperationType.Update, secondAndroidUserUploadInfo.Operation); Assert.Equal(6, redis.GetListCount("Queue:AndroidUserAppInfo:Logger")); Assert.Equal(4, redis.GetListCount("Queue:AndroidUserAppTrafficInfo:AndroidUserAppTrafficInfoLogger")); Assert.Equal(4, redis.GetListCount("Queue:AndroidUserAppActivityInfo:AndroidUserAppActivityInfoLogger")); } }