public void Matches_ReturnsTrue_IfDeclaredMetadataIsDefault_AndActualMetadataIsErrorStatusCode(int actualStatusCode) { // Arrange var declaredMetadata = DeclaredApiResponseMetadata.ForProducesDefaultResponse(AttributeData, Mock.Of <IMethodSymbol>()); var actualMetadata = new ActualApiResponseMetadata(ReturnExpression, actualStatusCode, null); // Act var matches = declaredMetadata.Matches(actualMetadata); // Assert Assert.True(matches); }
public void Matches_ReturnsFalse_IfDeclaredMetadataIsDefault_AndActualMetadataIsDefaultResponse() { // Arrange var declaredMetadata = DeclaredApiResponseMetadata.ForProducesDefaultResponse(AttributeData, Mock.Of <IMethodSymbol>()); var actualMetadata = new ActualApiResponseMetadata(ReturnStatement, null); // Act var matches = declaredMetadata.Matches(actualMetadata); // Assert Assert.False(matches); }
private static IList <DeclaredApiResponseMetadata> GetResponseMetadataFromMethodAttributes(ApiControllerSymbolCache symbolCache, IMethodSymbol methodSymbol) { var metadataItems = new List <DeclaredApiResponseMetadata>(); var responseMetadataAttributes = methodSymbol.GetAttributes(symbolCache.ProducesResponseTypeAttribute, inherit: true); foreach (var attribute in responseMetadataAttributes) { var statusCode = GetStatusCode(attribute); var metadata = DeclaredApiResponseMetadata.ForProducesResponseType(statusCode, attribute, attributeSource: methodSymbol); metadataItems.Add(metadata); } var producesDefaultResponse = methodSymbol.GetAttributes(symbolCache.ProducesDefaultResponseTypeAttribute, inherit: true).FirstOrDefault(); if (producesDefaultResponse != null) { metadataItems.Add(DeclaredApiResponseMetadata.ForProducesDefaultResponse(producesDefaultResponse, methodSymbol)); } return(metadataItems); }