Skip to content

Commit 2a5d70a

Browse files
committed
add unit test for null parameter key handling
1 parent 5010114 commit 2a5d70a

1 file changed

Lines changed: 31 additions & 1 deletion

File tree

APIMatic.Core.Test/Request/ParameterTests.cs

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
using APIMatic.Core.Request;
1+
using System.Collections.Generic;
2+
using System.Linq;
3+
using APIMatic.Core.Request;
24
using APIMatic.Core.Request.Parameters;
35
using NUnit.Framework;
46

@@ -48,5 +50,33 @@ public void DuplicateQueryKeys_Should_UseLastOneInRequestBuilder()
4850
Assert.That(requestBuilder.queryParameters.TryGetValue("status", out var value), Is.True);
4951
Assert.That(value, Is.EqualTo("approved"));
5052
}
53+
54+
[Test]
55+
public void AdditionalForms_WhenKeyIsNull_ShouldAssignInnerFieldsCorrectly()
56+
{
57+
// Arrange
58+
var parameters = new Parameter.Builder();
59+
var fieldParameters = new Dictionary<string, object>
60+
{
61+
["inner_field"] = "inner_field",
62+
};
63+
64+
parameters
65+
.AdditionalForms(additionalForms => additionalForms.Setup(fieldParameters));
66+
67+
var requestBuilder = new RequestBuilder(LazyGlobalConfiguration.Value, ServerUrl);
68+
69+
// Act
70+
parameters.Validate().Apply(requestBuilder);
71+
72+
// Assert
73+
var formParam = requestBuilder.formParameters.FirstOrDefault(p => p.Key == "inner_field");
74+
75+
Assert.Multiple(() =>
76+
{
77+
Assert.That(formParam, Is.Not.Null, "Expected form parameter with key 'inner_field'");
78+
Assert.That(formParam.Value, Is.EqualTo("inner_field"), "Expected value mismatch for 'inner_field'");
79+
});
80+
}
5181
}
5282
}

0 commit comments

Comments
 (0)