Beispiel #1
0
        public void it_should_acknowledge_restricted_resource()
        {
            var apiDescriptionBuilder = new ApiDescriptionBuilder <TestController>(
                _descriptionBuilder,
                _xmlDocProvider.Object,
                new[] { _typeDescriptionBuilder.Object },
                new IServerBehaviorAttributeVisitor[0],
                _namedGraphSelectorFactory.Object);

            apiDescriptionBuilder.BuildDescription(_apiDocumentation.Object, null);

            var statusCodes = _apiDocumentation.Object.SupportedClasses.First().GetSupportedOperations().First(operation => operation.Operation.Label == "Update").Operation.StatusCodes;

            statusCodes.Should().Contain((int)HttpStatusCode.Unauthorized);
        }
Beispiel #2
0
        public void it_should_build_the_api_documentation_using_a_Shacl_profile()
        {
            Mock <ITypeDescriptionBuilder> shaclTypeDescriptionBuilder = SetupTypeDescriptionBuilder(_entityContext, EntityConverter.Shacl);
            var apiDescriptionBuilder = new ApiDescriptionBuilder <TestController>(
                _descriptionBuilder,
                _xmlDocProvider.Object,
                new[] { _typeDescriptionBuilder.Object, shaclTypeDescriptionBuilder.Object },
                new IServerBehaviorAttributeVisitor[0],
                _namedGraphSelectorFactory.Object);

            apiDescriptionBuilder.BuildDescription(_apiDocumentation.Object, new[] { EntityConverter.Shacl });

            _typeDescriptionBuilder.VerifyGet(instance => instance.SupportedProfiles, Times.Once);
            shaclTypeDescriptionBuilder.VerifyGet(instance => instance.SupportedProfiles, Times.Once);
            _typeDescriptionBuilder.Verify(instance => instance.BuildTypeDescription(It.IsAny <DescriptionContext>()), Times.Never);
        }
Beispiel #3
0
        public void it_should_build_the_api_documentation()
        {
            var apiDescriptionBuilder = new ApiDescriptionBuilder <TestController>(
                _descriptionBuilder,
                _xmlDocProvider.Object,
                new[] { _typeDescriptionBuilder.Object },
                new IServerBehaviorAttributeVisitor[0],
                _namedGraphSelectorFactory.Object);

            apiDescriptionBuilder.BuildDescription(_apiDocumentation.Object, null);

            _apiDocumentation.Object.EntryPoints.Should().HaveCount(0);
            _apiDocumentation.Object.SupportedClasses.Should().HaveCount(1);
            _apiDocumentation.Object.SupportedClasses.First().SupportedOperations.Should().HaveCount(1);
            _apiDocumentation.Object.SupportedClasses.First().SupportedOperations.First().Method.Should().HaveCount(1);
            _apiDocumentation.Object.SupportedClasses.First().SupportedOperations.First().Method.First().Should().Be("POST");
        }
Beispiel #4
0
        public void it_should_list_possible_status_codes()
        {
            var apiDescriptionBuilder = new ApiDescriptionBuilder <TestController>(
                _descriptionBuilder,
                _xmlDocProvider.Object,
                new[] { _typeDescriptionBuilder.Object },
                new IServerBehaviorAttributeVisitor[0],
                _namedGraphSelectorFactory.Object);

            apiDescriptionBuilder.BuildDescription(_apiDocumentation.Object, null);

            var statusCodes = _apiDocumentation.Object.SupportedClasses.First().GetSupportedOperations().First(operation => operation.Operation.Label == "Delete").Operation.StatusCodes;

            statusCodes.Should().Contain((int)HttpStatusCode.NoContent);
            statusCodes.Should().Contain((int)HttpStatusCode.NotFound);
            statusCodes.Should().Contain((int)HttpStatusCode.BadRequest);
            statusCodes.Should().Contain((int)HttpStatusCode.Forbidden);
        }