umock-c
umock-c copied to clipboard
Allow conditional function chaining on STRICT_EXPECTED_CALL
Current code might do something like this:
static void setup(int* optional_value)
{
if (optional_value != NULL)
{
STRICT_EXPECTED_CALL(foo(IGNORED_ARG))
.CopyOutArgumentBuffer_result(optional_value, sizeof(optional_value));
}
else
{
STRICT_EXPECTED_CALL(foo(IGNORED_ARG));
}
}
Would be nice to reduce that to something like:
static void setup(int* optional_value)
{
STRICT_EXPECTED_CALL(foo(IGNORED_ARG))
.If(optional_value != NULL)
.CopyOutArgumentBuffer_result(optional_value, sizeof(optional_value));
// perhaps needs .EndIf()
}
Alternatively, something like this could work:
static void setup(int* optional_value)
{
HELPER_TO_GET_TYPE x = STRICT_EXPECTED_CALL(foo(IGNORED_ARG));
if (optional_value != NULL)
{
x.CopyOutArgumentBuffer_result(optional_value, sizeof(optional_value));
}
}
Or maybe:
static void setup(int* optional_value)
{
STRICT_EXPECTED_CALL(foo(IGNORED_ARG)).SaveExpectation(x);
if (optional_value != NULL)
{
x.CopyOutArgumentBuffer_result(optional_value, sizeof(optional_value));
}
}