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);
        }
示例#5
0
        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);
        }