public async Task FetchData_WhenSinceIdisMax_ThenNoDataFetched()

in Twitter/ConnectorTest/JobProcessorTwitterTest.cs [68:94]


        public async Task FetchData_WhenSinceIdisMax_ThenNoDataFetched()
        {
            var tweets = JsonConvert.DeserializeObject<List<Tweet>>(File.ReadAllText(@"FakeTweets.json"));
            var max = tweets.Select(t => long.Parse(t.Tweetid)).ToList<long>().Max().ToString();
            downloader.Setup(x => x.GetWebContent<List<Tweet>, ErrorsTwitter>(It.Is<string>(s => s == $"https://api.twitter.com/1.1/statuses/user_timeline.json?include_entities=true&count=200&include_rts=true&sinceId={max}"), It.IsAny<AuthenticationHeaderValue>()))
                .ReturnsAsync(JsonConvert.DeserializeObject<List<Tweet>>("[]"));
            ConnectorTask connectorTask = new ConnectorTask
            {
                TenantId = "tenantId",
                JobId = "j1",
                TaskId = "t1",
                StartTime = DateTime.UtcNow.AddMonths(-2),
                EndTime = DateTime.UtcNow,
                DirtyEntities = null,
                BlobSasUri = "dummyUri"
            };

            SourceInfoTwitter sourceInfo = new SourceInfoTwitter()
            {
                SinceId = max,
            };
            jobProcessor = new JobProcessorTwitter(downloader.Object, uploader.Object, new TwitterSchemaToItemMapper());
            var listTweets = await jobProcessor.FetchData(connectorTask, JsonConvert.SerializeObject(sourceInfo));
            Assert.IsTrue(listTweets.Count == 0);
            downloader.Verify(m => m.GetWebContent<List<Tweet>, ErrorsTwitter>(It.IsAny<string>(), It.IsAny<AuthenticationHeaderValue>()), Times.Once);
            uploader.Verify(x => x.UploadItem(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<Item>()), Times.Never);
        }