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); }
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)); }
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)); }
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)); }
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)); }