I have these lines in multiple test methods. Now, trying to create a private method to clean up but not sure how to do it. Any suggestion or pointer would be really helpful. Thanks.
var actualValiationString = string.Empty;
void messageBuilder(string validationString)
=> actualValiationString = validationString;
var validationDelegate = new Action<string>(messageBuilder);
Here's the real test methods look like:
[Theory]
[MemberData(nameof(TryGetBoolTestData))]
public void TryGetBoolShouldReturnBool(
Dictionary<string,string> metadata,
bool expectedValue,
string expectedValidationString
)
{
var actualValiationString = string.Empty;
void messageBuilder(string validationString)
=> actualValiationString = validationString;
var validationDelegate = new Action<string>(messageBuilder);
DictionaryExtensions.TryGetBool(
metadata,
MetadataKey,
out var response,
validationDelegate
);
response.Should().Be(expectedValue);
actualValiationString.Should().Be(expectedValidationString);
}
[Theory]
[MemberData(nameof(GetBoolTestDataWithDefaultValueAndAction))]
public void GetBoolWithDefaultValueAndActionShouldReturnBool(
Dictionary<string, string> metadata,
bool defaultValue,
bool expectedValue,
string expectedValidateString
)
{
var actualValiationString = string.Empty;
void messageBuilder(string validationString)
=> actualValiationString = validationString;
var validationDelegate = new Action<string>(messageBuilder);
var actualValue = DictionaryExtensions.GetBool
(
metadata,
MetadataKey,
defaultValue,
validationDelegate
);
actualValue.Should().Be(expectedValue);
actualValiationString.Should().Be(expectedValidateString);
}