public async Task FetchData_WhenSinceIdisZero_ThenDataFetched()

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