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