Я пытаюсь написать тест для метода расширения, который добавляет префикс для ключа, который отправляется в свойство индекса IConfiguration:
расширение:
public static class IConfigurationExt
{
public static string GetDomainValue(this IConfiguration configuration, string key)
{
return configuration["domain." + key];
}
}
test:
[Test]
public void GetInexKeyAsCallback()
{
string keySet = null;
Mock<IConfiguration> configurationMock = new Mock<IConfiguration>(MockBehavior.Strict);
configurationMock.SetupGet(p => p[It.IsAny<string>()])
.Callback(() => keySet = "assign key here") // <<< the part here needs the parameter
.Returns("mock");
IConfiguration configuration = configurationMock.Object;
var result = configuration.GetDomainValue("testKey");
Assert.AreEqual(expected: "domain.testKey", actual: keySet);
}
Я пытаюсь увидеть, что, когда получатель выполняется и ключ отправляется, он приходит с префиксом к свойству index в IConfiguration. Моя проблема в том, что я не могу заставить часть обратного вызова работать с таким параметром, как: .Callback<string>((key) => keySet = key)
, например.
Есть ли способ получить ключ, который был отправлен в индексированное свойство? Работает с SetupSet
, но не с SetupGet
Спасибо!