public async Task ErrorHandler_ShouldRetry_ForTimeout_IfCancelled()
        {
            RiotClientSettings settings = RiotClient.DefaultSettings();

            settings.ThrowOnError       = true;
            settings.RetryOnTimeout     = true;
            settings.MaxRequestAttempts = 2;

            var         eventCount = 0;
            IRiotClient client     = new RiotClient(settings, PlatformId.NA1);

            client.ConnectionFailed += (s, e) => { Assert.Fail("Connection failed"); };
            client.RequestTimedOut  += (s, e) => { ++eventCount; };
            client.ResourceNotFound += (s, e) => { Assert.Fail("Not found"); };
            client.ResponseError    += (s, e) => { Assert.Fail("Response contained an error"); };
            client.ServerError      += (s, e) => { Assert.Fail("Response contained a server error"); };

            var cts = new CancellationTokenSource();
            Task <ShardStatus> task = client.GetShardDataAsync(token: cts.Token);

            cts.Cancel();

            try
            {
                ShardStatus result = await task;
            }
            catch (Exception ex) when(!(ex is AssertionException))
            {
            }
            Assert.That(eventCount, Is.EqualTo(1), "Event was raised wrong number of times.");
        }
        public async Task ErrorHandler_ShouldReturnNull_ForTimeout()
        {
            RiotClientSettings settings = RiotClient.DefaultSettings();

            settings.RetryOnTimeout = false;
            settings.ThrowOnError   = false;

            var         eventCount = 0;
            IRiotClient client     = new RiotClient(settings, PlatformId.NA1);

            client.ConnectionFailed += (s, e) => { Assert.Fail("Connection failed"); };
            client.RequestTimedOut  += (s, e) => { ++eventCount; };
            client.ResourceNotFound += (s, e) => { Assert.Fail("Not found"); };
            client.ResponseError    += (s, e) => { Assert.Fail("Response contained an error"); };
            client.ServerError      += (s, e) => { Assert.Fail("Response contained a server error"); };

            var cts = new CancellationTokenSource();
            Task <ShardStatus> task = client.GetShardDataAsync(token: cts.Token);

            cts.Cancel();

            ShardStatus result = await task;

            Assert.That(result, Is.Null);
            Assert.That(eventCount, Is.EqualTo(1), "Event was raised wrong number of times.");
        }
Пример #3
0
        public async Task GetShardDataAsyncTest_WithPlatformIdParameter()
        {
            IRiotClient client = new RiotClient();
            ShardStatus shard  = await client.GetShardDataAsync(PlatformId.KR);

            Assert.That(shard, Is.Not.Null);
            Assert.That(shard.Name, Is.EqualTo("Republic of Korea"));
            Assert.That(shard.Slug, Is.EqualTo("kr"));
            Assert.That(shard.RegionTag, Is.EqualTo("kr1"));
        }
Пример #4
0
        public async Task GetShardDataAsyncTest_WithDefaultPlatformId()
        {
            RiotClient.DefaultPlatformId = PlatformId.EUN1;
            IRiotClient client = new RiotClient();
            ShardStatus shard  = await client.GetShardDataAsync();

            Assert.That(shard, Is.Not.Null);
            Assert.That(shard.Name, Is.EqualTo("EU Nordic & East"));
            Assert.That(shard.Slug, Is.EqualTo("eune"));
            Assert.That(shard.RegionTag, Is.EqualTo("eun1"));
            Assert.That(shard.Hostname, Is.Not.Null.And.Not.Empty);
            Assert.That(shard.Services, Is.Not.Null.And.Not.Empty);
            Assert.That(shard.Locales, Is.Not.Null.And.Not.Empty);
        }