public async Task GetPlayerSummary_DoesNotThrow(string gamertag) { var query = new GetSummary(gamertag) .SkipCache(); var result = await Global.Session.Query(query); Assert.IsInstanceOf(typeof(PlayerSummary), result); }
public async Task GetPlayerSummary_InvalidGamertag(string gamertag) { var query = new GetSummary(gamertag) .SkipCache(); await Global.Session.Query(query); Assert.Fail("An exception should have been thrown"); }
public async Task GetPlayerSummary_IsSerializable(string gamertag) { var query = new GetSummary(gamertag) .SkipCache(); var result = await Global.Session.Query(query); SerializationUtility <PlayerSummary> .AssertRoundTripSerializationIsPossible(result); }
public async Task Query_DoesNotThrow(string gamertag) { var query = new GetSummary(gamertag) .SkipCache(); var result = await _mockSession.Query(query); Assert.IsInstanceOf(typeof(PlayerSummary), result); Assert.AreEqual(_response, result); }
public void Apply(OpenApiOperation operation, OperationFilterContext context) { if (!(context.ApiDescription.ActionDescriptor is ControllerActionDescriptor controllerActionDescriptor)) { return; } var actionName = controllerActionDescriptor.ActionName; var resourceName = controllerActionDescriptor.ControllerName; switch (actionName) { case { } name when name.Contains("GetBy"): GetBySummary.Apply(ref operation, resourceName, actionName); break; case "Get" when operation.Parameters.Count == 2: GetAllSummary.Apply(ref operation, resourceName); break; case "Get" when controllerActionDescriptor.Parameters.Count == 1: GetSummary.Apply(ref operation, resourceName); break; case "Post": PostSummary.Apply(ref operation, resourceName); break; case "Put": PutSummary.Apply(ref operation, resourceName); break; case "Delete": DeleteSummary.Apply(ref operation, resourceName); break; case "GetTrash": GetTrashSummary.Apply(ref operation, resourceName); break; } operation.Responses["403"] = new OpenApiResponse { Description = "If administrator has blocked access to the requested action." }; operation.Responses["401"] = new OpenApiResponse { Description = "If user is not registered or logged in" }; }
public async Task GetPlayerSummary_SchemaIsValid(string gamertag) { var jSchema = JSchema.Parse(File.ReadAllText(Schema), new JSchemaReaderSettings { Resolver = new JSchemaUrlResolver(), BaseUri = new Uri(Path.GetFullPath(Schema)) }); var query = new GetSummary(gamertag) .SkipCache(); var jArray = await Global.Session.Get <JObject>(query.Uri); SchemaUtility.AssertSchemaIsValid(jSchema, jArray); }
public async Task GetPlayerSummary_ModelMatchesSchema(string gamertag) { var schema = JSchema.Parse(File.ReadAllText(Schema), new JSchemaReaderSettings { Resolver = new JSchemaUrlResolver(), BaseUri = new Uri(Path.GetFullPath(Schema)) }); var query = new GetSummary(gamertag) .SkipCache(); var result = await Global.Session.Query(query); var json = JsonConvert.SerializeObject(result); var jContainer = JsonConvert.DeserializeObject <JObject>(json); SchemaUtility.AssertSchemaIsValid(schema, jContainer); }
public void Uri_MatchesExpected(string player) { var query = new GetSummary(player); Assert.AreEqual($"https://www.haloapi.com/stats/hw2/players/{player}/stats", query.Uri); }