Example #1
0
    public void Matches_ReturnsFalse_IfDeclaredMetadataIs201_AndActualMetadataIs200()
    {
        // Arrange
        var declaredMetadata = DeclaredApiResponseMetadata.ForProducesResponseType(201, AttributeData, Mock.Of <IMethodSymbol>());
        var actualMetadata   = new ActualApiResponseMetadata(ReturnExpression, 200, null);

        // Act
        var matches = declaredMetadata.Matches(actualMetadata);

        // Assert
        Assert.False(matches);
    }
Example #2
0
    public void Matches_ReturnsTrue_IfDeclaredMetadataAndActualMetadataHaveSameStatusCode()
    {
        // Arrange
        var declaredMetadata = DeclaredApiResponseMetadata.ForProducesResponseType(302, AttributeData, Mock.Of <IMethodSymbol>());
        var actualMetadata   = new ActualApiResponseMetadata(ReturnExpression, 302, null);

        // Act
        var matches = declaredMetadata.Matches(actualMetadata);

        // Assert
        Assert.True(matches);
    }
Example #3
0
    public void Matches_ReturnsTrue_IfDeclaredMetadataIsImplicit_AndActualMetadataReturns200()
    {
        // Arrange
        var declaredMetadata = DeclaredApiResponseMetadata.ImplicitResponse;
        var actualMetadata   = new ActualApiResponseMetadata(ReturnExpression, 200, null);

        // Act
        var matches = declaredMetadata.Matches(actualMetadata);

        // Assert
        Assert.True(matches);
    }
Example #4
0
    public void Matches_ReturnsFalse_IfDeclaredMetadataIsDefault_AndActualMetadataIsNotErrorStatusCode()
    {
        // Arrange
        var declaredMetadata = DeclaredApiResponseMetadata.ForProducesDefaultResponse(AttributeData, Mock.Of <IMethodSymbol>());
        var actualMetadata   = new ActualApiResponseMetadata(ReturnExpression, 204, null);

        // Act
        var matches = declaredMetadata.Matches(actualMetadata);

        // Assert
        Assert.False(matches);
    }
    internal bool Matches(ActualApiResponseMetadata actualMetadata)
    {
        if (actualMetadata.IsDefaultResponse)
        {
            return(IsImplicit || StatusCode == 200 || StatusCode == 201);
        }
        else if (actualMetadata.StatusCode == StatusCode)
        {
            return(true);
        }
        else if (actualMetadata.StatusCode >= 400 && IsDefault)
        {
            // ProducesDefaultResponse matches any failure code
            return(true);
        }

        return(false);
    }
    internal static bool TryGetDeclaredMetadata(
        IList <DeclaredApiResponseMetadata> declaredApiResponseMetadata,
        ActualApiResponseMetadata actualMetadata,
        out DeclaredApiResponseMetadata result)
    {
        for (var i = 0; i < declaredApiResponseMetadata.Count; i++)
        {
            var declaredMetadata = declaredApiResponseMetadata[i];

            if (declaredMetadata.Matches(actualMetadata))
            {
                result = declaredMetadata;
                return(true);
            }
        }

        result = default;
        return(false);
    }
 internal static bool Contains(IList <DeclaredApiResponseMetadata> declaredApiResponseMetadata, ActualApiResponseMetadata actualMetadata)
 {
     return(TryGetDeclaredMetadata(declaredApiResponseMetadata, actualMetadata, out _));
 }