forked from mirror/Riven
61 lines
2.1 KiB
Plaintext
61 lines
2.1 KiB
Plaintext
|
#![feature(custom_test_frameworks)]
|
||
|
#![feature(async_closure)]
|
||
|
#![test_runner(my_runner)]
|
||
|
|
||
|
mod async_tests;
|
||
|
mod testutils;
|
||
|
use testutils::*;
|
||
|
|
||
|
use futures_util::future;
|
||
|
use colored::*;
|
||
|
|
||
|
use riven::consts::*;
|
||
|
use riven::endpoints::summoner_v4::Summoner;
|
||
|
|
||
|
const REGION: Region = Region::KR;
|
||
|
|
||
|
|
||
|
async_tests!{
|
||
|
my_runner {
|
||
|
league_summoner_bulk_test: async {
|
||
|
|
||
|
let leagues = (1..20)
|
||
|
.map(async move |i| {
|
||
|
let leaguelist = RIOT_API.league_v4().get_league_entries(REGION,
|
||
|
QueueType::RANKED_SOLO_5x5, Tier::GOLD, Division::III, Some(i));
|
||
|
let leaguelist = leaguelist.await
|
||
|
.map_err(|e| e.to_string())?
|
||
|
.ok_or("Failed to get challenger league".to_owned())?;
|
||
|
|
||
|
println!("League list {}: {} items.", i, leaguelist.len());
|
||
|
|
||
|
let summoners = leaguelist
|
||
|
.iter()
|
||
|
.map(async move |leagueentry| {
|
||
|
let summonerfuture = RIOT_API.summoner_v4().get_by_summoner_id(
|
||
|
REGION, &leagueentry.summoner_id);
|
||
|
summonerfuture.await
|
||
|
.map_err(|e| e.to_string())?
|
||
|
.ok_or(format!("Failed to get summoner_id {}.",
|
||
|
leagueentry.summoner_id))
|
||
|
});
|
||
|
future::join_all(summoners).await
|
||
|
.into_iter()
|
||
|
// I'm not sure where this result goes.
|
||
|
.collect::<Result<Vec<Summoner>, String>>()
|
||
|
});
|
||
|
|
||
|
let all_summoners = future::join_all(leagues).await
|
||
|
.into_iter()
|
||
|
.flat_map(|league| league)
|
||
|
.flat_map(|summoner| summoner);
|
||
|
|
||
|
for (i, summoner) in all_summoners.enumerate() {
|
||
|
println!("{}: {}", i + 1, summoner.name);
|
||
|
}
|
||
|
|
||
|
Ok(())
|
||
|
},
|
||
|
}
|
||
|
}
|