Moq を使用してこのオブジェクトをモックするために、どのような回避策がありますか。返されるエラー メッセージは次のとおりです。
var st = new Mock<X509SecurityToken>();
st.SetupGet(p => p.Certificate.SubjectName.Name).Returns("test1");
var target = new X509IssuerNameRegistry("test1", "test2");
var actual = target.GetIssuerName(st.Object);
Assert.AreEqual<string>("test1", actual, "Actual security token did not equal expected security token");
注: X509SecurityTokenをモックしようとしています。テスト対象のクラスは次のとおりです。
public class X509IssuerNameRegistry : IssuerNameRegistry { readonly List _trustedSubjectNames = new List();
public X509IssuerNameRegistry(params string[] trustedSubjectNames)
{
_trustedSubjectNames = new List<string>(trustedSubjectNames);
}
public override string GetIssuerName(SecurityToken securityToken)
{
var x509Token = securityToken as X509SecurityToken;
if (x509Token != null)
{
if (_trustedSubjectNames.Contains(x509Token.Certificate.SubjectName.Name))
{
return x509Token.Certificate.SubjectName.Name;
}
}
throw new SecurityTokenException("Untrusted issuer.");
}
}
これ(Moqを使用)の回避策はありますか、それともこれを達成するために別のモックフレームワークに目を向けるべきですか?