public async Task GetMatches_MissingPlayer() { var query = new GetMatches(); await Global.Session.Query(query); Assert.Fail("An exception should have been thrown"); }
public void GetConstructedUri_NoParamaters_MatchesExpected() { var query = new GetMatches(); var uri = query.GetConstructedUri(); Assert.AreEqual($"stats/h5/players/{null}/matches{null}", uri); }
public void GetConstructedUri_NoParamaters_MatchesExpected() { var query = new GetMatches(); var uri = query.GetConstructedUri(); Assert.AreEqual(string.Format(BaseUri, null, null), uri); }
public void GetConstructedUri_NoParameters_MatchesExpected() { var query = new GetMatches(); var uri = query.GetConstructedUri(); Assert.AreEqual($"stats/h5/players/{null}/matches{null}", uri); }
public void GetConstructedUri_Skip_MatchesExpected(int skip) { var query = new GetMatches() .Skip(skip); var uri = query.GetConstructedUri(); Assert.AreEqual(string.Format(BaseUri, null, $"?start={skip}"), uri); }
public void GetConstructedUri_InGameModes_MatchesExpected(Enumeration.GameMode gameMode1, Enumeration.GameMode gameMode2) { var query = new GetMatches() .InGameModes(new List<Enumeration.GameMode> {gameMode1, gameMode2}); var uri = query.GetConstructedUri(); Assert.AreEqual(string.Format(BaseUri, null, $"?modes={gameMode1},{gameMode2}"), uri); }
public void GetConstructedUri_InGameMode_MatchesExpected(Enumeration.GameMode gameMode) { var query = new GetMatches() .InGameMode(gameMode); var uri = query.GetConstructedUri(); Assert.AreEqual(string.Format(BaseUri, null, $"?modes={gameMode}" ), uri); }
public void GetConstructedUri_ForPlayer_MatchesExpected(string gamertag) { var query = new GetMatches() .ForPlayer(gamertag); var uri = query.GetConstructedUri(); Assert.AreEqual(string.Format(BaseUri, gamertag, null), uri); }
public async Task GetMatches_IsSerializable(string gamertag) { var query = new GetMatches() .ForPlayer(gamertag); var result = await Global.Session.Query(query); SerializationUtility <MatchSet> .AssertRoundTripSerializationIsPossible(result); }
public async Task GetMatches_DoesNotThrow(string gamertag) { var query = new GetMatches() .ForPlayer(gamertag); var result = await Global.Session.Query(query); Assert.IsInstanceOf(typeof(MatchSet), result); }
public void GetConstructedUri_Take_MatchesExpected(int take) { var query = new GetMatches() .Take(take); var uri = query.GetConstructedUri(); Assert.AreEqual($"stats/h5/players/{null}/matches?count={take}", uri); }
public async Task GetMatches_InvalidGamertag(string gamertag) { var query = new GetMatches() .ForPlayer(gamertag); await Global.Session.Query(query); Assert.Fail("An exception should have been thrown"); }
public void GetConstructedUri_ForPlayer_MatchesExpected(string gamertag) { var query = new GetMatches() .ForPlayer(gamertag); var uri = query.GetConstructedUri(); Assert.AreEqual($"stats/h5/players/{gamertag}/matches{null}", uri); }
public void GetConstructedUri_InGameMode_MatchesExpected(Enumeration.GameMode gameMode) { var query = new GetMatches() .InGameMode(gameMode); var uri = query.GetConstructedUri(); Assert.AreEqual($"stats/h5/players/{null}/matches?modes={gameMode}", uri); }
public async Task <MatchSet> GetMatchesForPlayer(string gamertag, int start = 0, int count = 10, params Enumeration.GameMode[] gameModes) { var query = new GetMatches().ForPlayer(gamertag).Skip(start).Take(count); if (gameModes != null && gameModes.Length > 0) { if (gameModes.Length == 1) { query.InGameMode(gameModes[0]); } else { query.InGameModes(gameModes.ToList()); } } var matches = await _session.Query(query); foreach (var match in matches.Results) { match.Map = await _metadataRepository.GetMap(match.MapId); if (match.MapVariant != null && match.MapVariant.ResourceType == Enumeration.ResourceType.MapVariant && match.MapVariant.OwnerType == Enumeration.OwnerType.Official) { match.MapVariantInfo = await _metadataRepository.GetMapVariant(match.MapVariant.ResourceId); } match.GameBaseVariant = await _metadataRepository.GetGameBaseVariant(match.GameBaseVariantId); if (match.GameVariant != null && match.GameVariant.ResourceType == Enumeration.ResourceType.GameVariant && match.GameVariant.OwnerType == Enumeration.OwnerType.Official) { match.GameVariantInfo = await _metadataRepository.GetGameVariant(match.GameVariant.ResourceId); } if (match.HopperId.HasValue) { match.Playlist = await _metadataRepository.GetPlaylist(match.HopperId.Value); } if (match.SeasonId.HasValue) { match.Season = await _metadataRepository.GetSeason(match.SeasonId); } if (match.Teams != null) { foreach (var team in match.Teams) { team.TeamColor = await _metadataRepository.GetTeamColor(team.Id); } } } return(matches); }
public void GetConstructedUri_InGameModes_MatchesExpected(Enumeration.GameMode gameMode1, Enumeration.GameMode gameMode2) { var query = new GetMatches() .InGameModes(new List<Enumeration.GameMode> {gameMode1, gameMode2}); var uri = query.GetConstructedUri(); Assert.AreEqual($"stats/h5/players/{null}/matches?modes={gameMode1},{gameMode2}", uri); }
public async Task GetMatches(string gamertag) { var query = new GetMatches() .ForPlayer(gamertag); var result = await Session.Query(query); Assert.IsInstanceOf(typeof (MatchSet), result); }
public void GetConstructedUri_Skip_MatchesExpected(int skip) { var query = new GetMatches() .Skip(skip); var uri = query.GetConstructedUri(); Assert.AreEqual($"stats/h5/players/{null}/matches?start={skip}", uri); }
public async Task Query_DoesNotThrow() { var query = new GetMatches() .ForPlayer("Player"); var result = await _mockSession.Query(query); Assert.IsInstanceOf(typeof(MatchSet), result); Assert.AreEqual(_matchSet, result); }
public void GetConstructedUri_InGameModes_MatchesExpected(Enumeration.GameMode gameMode1, Enumeration.GameMode gameMode2) { var query = new GetMatches() .InGameModes(new List <Enumeration.GameMode> { gameMode1, gameMode2 }); var uri = query.GetConstructedUri(); Assert.AreEqual($"stats/h5/players/{null}/matches?modes={gameMode1},{gameMode2}", uri); }
public async Task GetMatches_InGameMode(string gamertag, int gameMode) { var query = new GetMatches() .InGameMode((Enumeration.GameMode)gameMode) .ForPlayer(gamertag); var result = await Session.Query(query); Assert.IsInstanceOf(typeof(MatchSet), result); Assert.IsTrue(result.Results.All(r => r.Id.GameMode == (Enumeration.GameMode)gameMode)); }
public void GetConstructedUri_Complex_MatchesExpected(string gamertag, Enumeration.GameMode gameMode, int skip, int take) { var query = new GetMatches() .ForPlayer(gamertag) .InGameMode(gameMode) .Skip(skip) .Take(take); var uri = query.GetConstructedUri(); Assert.AreEqual($"stats/h5/players/{gamertag}/matches?modes={gameMode}&start={skip}&count={take}", uri); }
public static void Validate(this GetMatches getMatches) { var validationResult = new ValidationResult(); if (!getMatches.Player.IsValidGamertag()) { validationResult.Messages.Add("GetMatches query requires a valid Gamertag (Player) to be set."); } if (getMatches.Parameters.ContainsKey("modes")) { var modes = getMatches.Parameters["modes"].Split(','); foreach (var mode in modes) { var defined = Enum.IsDefined(typeof(Enumeration.GameMode), mode); if (!defined) { validationResult.Messages.Add($"GetMatches optional parameter 'Game Mode' is invalid: {mode}."); } } } if (getMatches.Parameters.ContainsKey("start")) { int start; var parsed = int.TryParse(getMatches.Parameters["start"], out start); if (!parsed || start < 0) { validationResult.Messages.Add($"GetMatches optional parameter 'Take' is invalid: {start}."); } } if (getMatches.Parameters.ContainsKey("count")) { int count; var parsed = int.TryParse(getMatches.Parameters["count"], out count); if (!parsed || count < 1 || count > 25) { validationResult.Messages.Add($"GetMatches optional parameter 'Take' is invalid: {count}."); } } if (!validationResult.Success) { throw new ValidationException(validationResult.Messages); } }
public async Task GetMatches_SchemaIsValid(string gamertag) { var weaponsSchema = JSchema.Parse(File.ReadAllText(Config.MatchesJsonSchemaPath), new JSchemaReaderSettings { Resolver = new JSchemaUrlResolver(), BaseUri = new Uri(Path.GetFullPath(Config.MatchesJsonSchemaPath)) }); var query = new GetMatches() .ForPlayer(gamertag); var jArray = await Global.Session.Get <JObject>(query.GetConstructedUri()); SchemaUtility.AssertSchemaIsValid(weaponsSchema, jArray); }
public void TestMethod1() { //arrange string str1 = "hello"; string str2 = "he 1llo"; //execute GetMatches match = new GetMatches(); int distance = match.LevenshteinDistance(str1, str2); //assert Debug.WriteLine(distance); Assert.AreEqual(16, distance); }
public async Task GetMatches_InGameModes(string gamertag) { var gameModes = new List<Enumeration.GameMode> { Enumeration.GameMode.Arena, Enumeration.GameMode.Warzone }; var query = new GetMatches() .InGameModes(gameModes) .ForPlayer(gamertag); var result = await Session.Query(query); Assert.IsInstanceOf(typeof(MatchSet), result); Assert.IsTrue(result.Results.All(r => r.Id.GameMode == Enumeration.GameMode.Arena || r.Id.GameMode == Enumeration.GameMode.Warzone)); }
/// <summary> /// Creates an array of frames from a string expression. The expression must be similar to the following format: /// "0,3,7-11,2,5" /// Whitespace is permitted, and commas are optional. /// <param name="input">A string formatted as above, describing the frames to generate.</param> /// </summary> public static int[] ParseFrames(string input) { // Make sure the pattern matches, and alert the user if it doesn't var parse = SyntaxCheck.Match(input); if (!parse.Success) { throw new Exception(string.Format("Invalid format: {0}", input)); } // Get all numbers/ranges in the input string. var frames = new List <int>(); foreach (Match match in GetMatches.Matches(input)) { var range = GetRange.Match(match.Value); if (range.Success) { int from = int.Parse(range.Groups[1].Value); int to = int.Parse(range.Groups[2].Value); // Support ascending and descending ranges if (from < to) { while (from <= to) { frames.Add(from++); } } else { while (from >= to) { frames.Add(from--); } } } else { frames.Add(int.Parse(match.Value)); } } return(frames.ToArray()); }
public async Task GetMatches_ModelMatchesSchema(string gamertag) { var schema = JSchema.Parse(File.ReadAllText(Config.MatchesJsonSchemaPath), new JSchemaReaderSettings { Resolver = new JSchemaUrlResolver(), BaseUri = new Uri(Path.GetFullPath(Config.MatchesJsonSchemaPath)) }); var query = new GetMatches() .ForPlayer(gamertag); var result = await Global.Session.Query(query); var json = JsonConvert.SerializeObject(result); var jContainer = JsonConvert.DeserializeObject <JObject>(json); SchemaUtility.AssertSchemaIsValid(schema, jContainer); }
public async Task GetMatches_MissingPlayer() { var query = new GetMatches(); try { await Session.Query(query); Assert.Fail("An exception should have been thrown"); } catch (HaloApiException e) { Assert.AreEqual((int)Enumeration.StatusCode.NotFound, e.HaloApiError.StatusCode); } catch (System.Exception e) { Assert.Fail("Unexpected exception of type {0} caught: {1}", e.GetType(), e.Message); } }
public async Task GetCampaignMatchDetails(string gamertag) { var getMatchesQuery = new GetMatches() .InGameMode(Enumeration.GameMode.Campaign) .ForPlayer(gamertag); var matches = await Session.Query(getMatchesQuery); Assert.IsTrue(matches.Results.Any()); foreach (var match in matches.Results) { var getCampaignMatchDetailsQuery = new GetCampaignMatchDetails() .ForMatchId(match.Id.MatchId); var result = await Session.Query(getCampaignMatchDetailsQuery); Assert.IsInstanceOf(typeof(CampaignMatch), result); } }
public async Task GetMatches_InvalidGamertag(string gamertag) { var query = new GetMatches() .ForPlayer(gamertag); try { await Session.Query(query); Assert.Fail("An exception should have been thrown"); } catch (HaloApiException e) { Assert.AreEqual((int)Enumeration.StatusCode.BadRequest, e.HaloApiError.StatusCode); } catch (System.Exception e) { Assert.Fail("Unexpected exception of type {0} caught: {1}", e.GetType(), e.Message); } }
public void GetConstructedUri_Take_MatchesExpected(int take) { var query = new GetMatches() .Take(take); var uri = query.GetConstructedUri(); Assert.AreEqual(string.Format(BaseUri, null, $"?count={take}"), uri); }
public async Task GetMatches_DoesNotThrow(string gamertag) { var query = new GetMatches() .ForPlayer(gamertag) .SkipCache(); var result = await Global.Session.Query(query); Assert.IsInstanceOf(typeof(MatchSet), result); }
public async Task Query_DoesNotThrow() { var query = new GetMatches(); var result = await _mockSession.Query(query); Assert.IsInstanceOf(typeof(MatchSet), result); Assert.AreEqual(_matchSet, result); }
public async Task GetMatches_SchemaIsValid(string gamertag) { var weaponsSchema = JSchema.Parse(File.ReadAllText(Config.MatchesJsonSchemaPath), new JSchemaReaderSettings { Resolver = new JSchemaUrlResolver(), BaseUri = new Uri(Path.GetFullPath(Config.MatchesJsonSchemaPath)) }); var query = new GetMatches() .ForPlayer(gamertag); var jArray = await Global.Session.Get<JObject>(query.GetConstructedUri()); SchemaUtility.AssertSchemaIsValid(weaponsSchema, jArray); }
public async Task GetMatches_ModelMatchesSchema(string gamertag) { var schema = JSchema.Parse(File.ReadAllText(Config.MatchesJsonSchemaPath), new JSchemaReaderSettings { Resolver = new JSchemaUrlResolver(), BaseUri = new Uri(Path.GetFullPath(Config.MatchesJsonSchemaPath)) }); var query = new GetMatches() .ForPlayer(gamertag); var result = await Global.Session.Query(query); var json = JsonConvert.SerializeObject(result); var jContainer = JsonConvert.DeserializeObject<JObject>(json); SchemaUtility.AssertSchemaIsValid(schema, jContainer); }
public async Task GetMatches_IsSerializable(string gamertag) { var query = new GetMatches() .ForPlayer(gamertag); var result = await Global.Session.Query(query); SerializationUtility<MatchSet>.AssertRoundTripSerializationIsPossible(result); }