Skip to content

Commit c57d283

Browse files
committed
Expand unit tests
1 parent ebaa532 commit c57d283

File tree

1 file changed

+65
-41
lines changed

1 file changed

+65
-41
lines changed

src/embed_tests/ClassManagerTests.cs

Lines changed: 65 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -83,13 +83,13 @@ public string JoinToString(string thisIsAStringParameter,
8383
int thisIsAnIntParameter,
8484
float thisIsAFloatParameter,
8585
double thisIsADoubleParameter,
86-
decimal thisIsADecimalParameter,
86+
decimal? thisIsADecimalParameter,
8787
bool thisIsABoolParameter,
88-
DateTime thisIsADateTimeParameter)
88+
DateTime thisIsADateTimeParameter = default)
8989
{
9090
// Join all parameters into a single string separated by "-"
9191
return string.Join("-", thisIsAStringParameter, thisIsACharParameter, thisIsAnIntParameter, thisIsAFloatParameter,
92-
thisIsADoubleParameter, thisIsADecimalParameter, thisIsABoolParameter, string.Format("{0:MMddyyyy}", thisIsADateTimeParameter));
92+
thisIsADoubleParameter, thisIsADecimalParameter ?? 123.456m, thisIsABoolParameter, string.Format("{0:MMddyyyy}", thisIsADateTimeParameter));
9393
}
9494
}
9595

@@ -342,59 +342,83 @@ private static IEnumerable<TestCaseData> SnakeCasedNamedArgsTestCases
342342
// 1.1. Original method name:
343343
var args = Array.Empty<object>();
344344
var namedArgs = new Dictionary<string, object>()
345-
{
346-
{ "thisIsAStringParameter", stringParam },
347-
{ "thisIsACharParameter", charParam },
348-
{ "thisIsAnIntParameter", intParam },
349-
{ "thisIsAFloatParameter", floatParam },
350-
{ "thisIsADoubleParameter", doubleParam },
351-
{ "thisIsADecimalParameter", decimalParam },
352-
{ "thisIsABoolParameter", boolParam },
353-
{ "thisIsADateTimeParameter", dateTimeParam }
354-
};
355-
yield return new TestCaseData("JoinToString", args, namedArgs);
345+
{
346+
{ "thisIsAStringParameter", stringParam },
347+
{ "thisIsACharParameter", charParam },
348+
{ "thisIsAnIntParameter", intParam },
349+
{ "thisIsAFloatParameter", floatParam },
350+
{ "thisIsADoubleParameter", doubleParam },
351+
{ "thisIsADecimalParameter", decimalParam },
352+
{ "thisIsABoolParameter", boolParam },
353+
{ "thisIsADateTimeParameter", dateTimeParam }
354+
};
355+
var expectedResult = "string-c-1-2-3-4.0-True-01052013";
356+
yield return new TestCaseData("JoinToString", args, namedArgs, expectedResult);
356357

357358
// 1.2. Snake-cased method name:
358359
namedArgs = new Dictionary<string, object>()
359-
{
360-
{ "this_is_a_string_parameter", stringParam },
361-
{ "this_is_a_char_parameter", charParam },
362-
{ "this_is_an_int_parameter", intParam },
363-
{ "this_is_a_float_parameter", floatParam },
364-
{ "this_is_a_double_parameter", doubleParam },
365-
{ "this_is_a_decimal_parameter", decimalParam },
366-
{ "this_is_a_bool_parameter", boolParam },
367-
{ "this_is_a_date_time_parameter", dateTimeParam }
368-
};
369-
yield return new TestCaseData("join_to_string", args, namedArgs);
360+
{
361+
{ "this_is_a_string_parameter", stringParam },
362+
{ "this_is_a_char_parameter", charParam },
363+
{ "this_is_an_int_parameter", intParam },
364+
{ "this_is_a_float_parameter", floatParam },
365+
{ "this_is_a_double_parameter", doubleParam },
366+
{ "this_is_a_decimal_parameter", decimalParam },
367+
{ "this_is_a_bool_parameter", boolParam },
368+
{ "this_is_a_date_time_parameter", dateTimeParam }
369+
};
370+
yield return new TestCaseData("join_to_string", args, namedArgs, expectedResult);
370371

371372
// 2. Some args and some kwargs:
372373

373374
// 2.1. Original method name:
374375
args = new object[] { stringParam, charParam, intParam, floatParam };
375376
namedArgs = new Dictionary<string, object>()
376-
{
377-
{ "thisIsADoubleParameter", doubleParam },
378-
{ "thisIsADecimalParameter", decimalParam },
379-
{ "thisIsABoolParameter", boolParam },
380-
{ "thisIsADateTimeParameter", dateTimeParam }
381-
};
382-
yield return new TestCaseData("JoinToString", args, namedArgs);
377+
{
378+
{ "thisIsADoubleParameter", doubleParam },
379+
{ "thisIsADecimalParameter", decimalParam },
380+
{ "thisIsABoolParameter", boolParam },
381+
{ "thisIsADateTimeParameter", dateTimeParam }
382+
};
383+
yield return new TestCaseData("JoinToString", args, namedArgs, expectedResult);
383384

384385
// 2.2. Snake-cased method name:
385386
namedArgs = new Dictionary<string, object>()
386-
{
387-
{ "this_is_a_double_parameter", doubleParam },
388-
{ "this_is_a_decimal_parameter", decimalParam },
389-
{ "this_is_a_bool_parameter", boolParam },
390-
{ "this_is_a_date_time_parameter", dateTimeParam }
391-
};
392-
yield return new TestCaseData("join_to_string", args, namedArgs);
387+
{
388+
{ "this_is_a_double_parameter", doubleParam },
389+
{ "this_is_a_decimal_parameter", decimalParam },
390+
{ "this_is_a_bool_parameter", boolParam },
391+
{ "this_is_a_date_time_parameter", dateTimeParam }
392+
};
393+
yield return new TestCaseData("join_to_string", args, namedArgs, expectedResult);
394+
395+
// 3. Nullable args:
396+
namedArgs = new Dictionary<string, object>()
397+
{
398+
{ "thisIsADoubleParameter", doubleParam },
399+
{ "thisIsADecimalParameter", null },
400+
{ "thisIsABoolParameter", boolParam },
401+
{ "thisIsADateTimeParameter", dateTimeParam }
402+
};
403+
expectedResult = "string-c-1-2-3-123.456-True-01052013";
404+
yield return new TestCaseData("JoinToString", args, namedArgs, expectedResult);
405+
406+
// 4. Parameters with default values:
407+
namedArgs = new Dictionary<string, object>()
408+
{
409+
{ "this_is_a_double_parameter", doubleParam },
410+
{ "this_is_a_decimal_parameter", decimalParam },
411+
{ "this_is_a_bool_parameter", boolParam },
412+
// Purposefully omitting the DateTime parameter so the default value is used
413+
};
414+
expectedResult = "string-c-1-2-3-4.0-True-01010001";
415+
yield return new TestCaseData("join_to_string", args, namedArgs, expectedResult);
393416
}
394417
}
395418

396419
[TestCaseSource(nameof(SnakeCasedNamedArgsTestCases))]
397-
public void CanCallSnakeCasedMethodWithSnakeCasedNamedArguments(string methodName, object[] args, Dictionary<string, object> namedArgs)
420+
public void CanCallSnakeCasedMethodWithSnakeCasedNamedArguments(string methodName, object[] args, Dictionary<string, object> namedArgs,
421+
string expectedResult)
398422
{
399423
using var obj = new SnakeCaseNamesTesClass().ToPython();
400424

@@ -407,7 +431,7 @@ public void CanCallSnakeCasedMethodWithSnakeCasedNamedArguments(string methodNam
407431

408432
var result = obj.InvokeMethod(methodName, pyArgs, pyNamedArgs).As<string>();
409433

410-
Assert.AreEqual("string-c-1-2-3-4.0-True-01052013", result);
434+
Assert.AreEqual(expectedResult, result);
411435
}
412436

413437
[Test]

0 commit comments

Comments
 (0)