Example #1
0
        public void GetApiConvention_ReturnsNull_IfNoConventionMatches()
        {
            // Arrange
            var method    = typeof(GetApiConvention_ReturnsNull_IfNoConventionMatchesController).GetMethod(nameof(GetApiConvention_ReturnsNull_IfNoConventionMatchesController.NoMatch));
            var attribute = new ApiConventionTypeAttribute(typeof(DefaultApiConventions));

            // Act
            var result = ApiConventionResult.TryGetApiConvention(method, new[] { attribute }, out var conventionResult);

            // Assert
            Assert.False(result);
            Assert.Null(conventionResult);
        }
Example #2
0
        public void GetApiConvention_ReturnsResultFromConvention()
        {
            // Arrange
            var method = typeof(GetApiConvention_ReturnsResultFromConventionController)
                         .GetMethod(nameof(GetApiConvention_ReturnsResultFromConventionController.Match));
            var attribute = new ApiConventionTypeAttribute(typeof(GetApiConvention_ReturnsResultFromConventionType));

            // Act
            var result = ApiConventionResult.TryGetApiConvention(method, new[] { attribute }, out var conventionResult);

            // Assert
            Assert.True(result);
            Assert.Collection(
                conventionResult.ResponseMetadataProviders.OrderBy(o => o.StatusCode),
                r => Assert.Equal(201, r.StatusCode),
                r => Assert.Equal(403, r.StatusCode));
        }
Example #3
0
        public void GetApiConvention_PostAction_MatchesDefaultConvention()
        {
            // Arrange
            var method = typeof(DefaultConventionController)
                         .GetMethod(nameof(DefaultConventionController.PostUser));
            var attributes = new[] { new ApiConventionTypeAttribute(typeof(DefaultApiConventions)) };

            // Act
            var result = ApiConventionResult.TryGetApiConvention(method, attributes, out var conventionResult);

            // Assert
            Assert.True(result);
            Assert.Collection(
                conventionResult.ResponseMetadataProviders.OrderBy(o => o.StatusCode),
                r => Assert.Equal(201, r.StatusCode),
                r => Assert.Equal(400, r.StatusCode));
        }
Example #4
0
        public void GetApiConvention_UsesApiConventionMethod()
        {
            // Arrange
            var method = typeof(DefaultConventionController)
                         .GetMethod(nameof(DefaultConventionController.EditUser));
            var conventions = new[]
            {
                new ApiConventionTypeAttribute(typeof(DefaultApiConventions)),
            };

            // Act
            var result = ApiConventionResult.TryGetApiConvention(method, conventions, out var conventionResult);

            // Assert
            Assert.True(result);
            Assert.Collection(
                conventionResult.ResponseMetadataProviders.OrderBy(o => o.StatusCode),
                r => Assert.IsAssignableFrom <IApiDefaultResponseMetadataProvider>(r),
                r => Assert.Equal(201, r.StatusCode),
                r => Assert.Equal(400, r.StatusCode));
        }
Example #5
0
        public void GetApiConvention_ReturnsResultFromFirstMatchingConvention()
        {
            // Arrange
            var method = typeof(GetApiConvention_ReturnsResultFromFirstMatchingConventionController)
                         .GetMethod(nameof(GetApiConvention_ReturnsResultFromFirstMatchingConventionController.Get));
            var attributes = new[]
            {
                new ApiConventionTypeAttribute(typeof(GetApiConvention_ReturnsResultFromConventionType)),
                new ApiConventionTypeAttribute(typeof(DefaultApiConventions)),
            };

            // Act
            var result = ApiConventionResult.TryGetApiConvention(method, attributes, result: out var conventionResult);

            // Assert
            Assert.True(result);
            Assert.Collection(
                conventionResult.ResponseMetadataProviders.OrderBy(o => o.StatusCode),
                r => Assert.Equal(200, r.StatusCode),
                r => Assert.Equal(202, r.StatusCode),
                r => Assert.Equal(404, r.StatusCode));
        }