in Twitter/ConnectorTest/JobProcessorTwitterTest.cs [36:65]
public async Task FetchData_WhenSinceIdisZero_ThenDataFetched()
{
var tweets = JsonConvert.DeserializeObject<List<Tweet>>(File.ReadAllText(@"FakeTweets.json"));
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&tweet_mode=extended"), It.IsAny<AuthenticationHeaderValue>()))
.ReturnsAsync(tweets);
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&tweet_mode=extended"), It.IsAny<AuthenticationHeaderValue>()))
.ReturnsAsync(JsonConvert.DeserializeObject<List<Tweet>>("[]"));
ConnectorTask connectorTask = new ConnectorTask
{
TenantId = "tenantId",
JobId = "j1",
TaskId = "t1",
StartTime = new DateTime(2018, 12, 01),
EndTime = new DateTime(2019, 05, 01),
DirtyEntities = null,
BlobSasUri = "dummyUri"
};
SourceInfoTwitter sourceInfo = new SourceInfoTwitter()
{
SinceId = "0",
};
jobProcessor = new JobProcessorTwitter(downloader.Object, uploader.Object, new TwitterSchemaToItemMapper());
var listTweets = await jobProcessor.FetchData(connectorTask, JsonConvert.SerializeObject(sourceInfo));
tweets.RemoveAll(t => DateTime.Compare(DateTime.ParseExact(t.CreatedAt, "ddd MMM dd HH:mm:ss +ffff yyyy", new System.Globalization.CultureInfo("en-US")), connectorTask.StartTime) < 0);
tweets.RemoveAll(t => DateTime.Compare(DateTime.ParseExact(t.CreatedAt, "ddd MMM dd HH:mm:ss +ffff yyyy", new System.Globalization.CultureInfo("en-US")), connectorTask.EndTime) > 0);
Assert.AreEqual(listTweets.Count, tweets.Count);
mockRepo.VerifyAll();
}