Esempio n. 1
0
        public async Task GetMeta()
        {
            var client = new PsawClient();
            var meta   = await client.GetMeta();

            Assert.True(meta.ClientAcceptsJson);
        }
Esempio n. 2
0
        public async Task GetSubmissionCommentIds()
        {
            var client = new PsawClient();

            string[] ids = await client.GetSubmissionCommentIds("a2df38");

            Assert.True(ids.Length > 2000);
        }
Esempio n. 3
0
        public async Task GetSubmission()
        {
            var client       = new PsawClient();
            var submmissions = await client.Search <SubmissionEntry>(new SearchOptions
            {
                Subreddit = "game",
                Size      = 1
            });

            Assert.Single(submmissions);
        }
Esempio n. 4
0
        public async Task GetComments()
        {
            var client   = new PsawClient();
            var comments = await client.Search <CommentEntry>(new SearchOptions
            {
                Subreddit = "game",
                Size      = 500
            });

            Assert.Equal(500, comments.Length);
            Assert.True(comments.All(c => c.Subreddit == "game"));
        }
Esempio n. 5
0
        public async Task GetSubmissions()
        {
            var client       = new PsawClient();
            var submmissions = await client.Search <SubmissionEntry>(new SearchOptions
            {
                Subreddit = "game",
                Size      = 1000
            });

            Assert.Equal(1000, submmissions.Length);
            Assert.DoesNotContain(submmissions.GroupBy(s => s.Id), g => g.Count() > 1);
        }
Esempio n. 6
0
        public async Task ProxyUsage()
        {
            var client = new PsawClient(new RequestsManagerOptions
            {
                ProxyAddress = "178.217.194.175:49850"
            });

            var meta = await client.GetMeta();

            Assert.Equal("178.217.194.175", meta.SourceIp);
            Assert.Equal("PL", meta.ClientRequestHeaders.CfIpCountry);
        }
Esempio n. 7
0
        public async Task GetSubmissionComments()
        {
            const string submissionId = "a2df38";

            var client     = new PsawClient();
            var commentIds = (await client.GetSubmissionCommentIds(submissionId)).Take(500).ToArray();

            // Only taking 500 because more would result in a [Request Line is too large (8039 > 4094)] error
            var comments = await client.Search <CommentEntry>(new SearchOptions
            {
                Ids = commentIds
            });

            Assert.Equal(500, comments.Length);
        }
Esempio n. 8
0
        public async Task RateLimit()
        {
            var client  = new PsawClient();
            var options = new SearchOptions
            {
                Subreddit = "game",
                Size      = 1
            };

            var sw = Stopwatch.StartNew();

            for (int i = 0; i < 180; i++)
            {
                await client.Search <SubmissionEntry>(options);

                _output.WriteLine(i + " done in " + sw.Elapsed.TotalMilliseconds);
            }

            // 180 requests should end in more than 2 minutes
            Assert.True(sw.Elapsed.TotalSeconds > 120);
        }