1616 * limitations under the License.
1717 */
1818
19+ use Mockery as m ;
1920use Mockery \Adapter \Phpunit \MockeryPHPUnitIntegration ;
2021use Monolog \Handler \TestHandler ;
2122use Monolog \Logger ;
2627use OpenConext \EngineBlock \Metadata \MfaEntityCollection ;
2728use PHPUnit \Framework \TestCase ;
2829use SAML2 \Assertion ;
29- use SAML2 \Response ;
30+ use SAML2 \AuthnRequest ;
31+ use SAML2 \Response as SAMLResponse ;
3032
3133class EngineBlock_Test_Corto_Filter_Command_ValidateMfaAuthnContextClassRefTest extends TestCase
3234{
@@ -42,22 +44,42 @@ class EngineBlock_Test_Corto_Filter_Command_ValidateMfaAuthnContextClassRefTest
4244 */
4345 private $ logger ;
4446
47+ /**
48+ * @var EngineBlock_Saml2_AuthnRequestAnnotationDecorator
49+ */
50+ private $ request ;
51+ private $ server ;
52+
4553 public function setUp ()
4654 {
4755 $ this ->handler = new TestHandler ();
4856 $ this ->logger = new Logger ('Test ' , array ($ this ->handler ));
57+ $ assertion = new Assertion ();
58+
59+ $ request = new AuthnRequest ();
60+ $ response = new SAMLResponse ();
61+ $ response ->setAssertions (array ($ assertion ));
62+
63+ $ this ->request = new EngineBlock_Saml2_AuthnRequestAnnotationDecorator ($ request );
64+
65+ $ this ->sp = new ServiceProvider ('Test SP ' );
66+ $ this ->server = m::mock (EngineBlock_Corto_ProxyServer::class);
67+ $ this ->server
68+ ->shouldReceive ('findOriginalServiceProvider ' )
69+ ->andReturn ($ this ->sp )
70+ ;
4971 }
5072
5173 public function testNoConfiguredMfaCombinationShouldPass ()
5274 {
53- $ this ->expectNotToPerformAssertions ();
54-
5575 $ response = $ this ->createTestResponse ('urn:oasis:names:tc:SAML:2.0:ac:classes:Password ' );
5676
5777 $ verifier = new EngineBlock_Corto_Filter_Command_ValidateMfaAuthnContextClassRef ($ this ->logger );
5878 $ verifier ->setResponse ($ response );
5979 $ verifier ->setIdentityProvider (new IdentityProvider ('MFA IdP ' ));
60- $ verifier ->setServiceProvider (new ServiceProvider ('Test SP ' ));
80+ $ verifier ->setServiceProvider ($ this ->sp );
81+ $ verifier ->setRequest ($ this ->request );
82+ $ verifier ->setProxyServer ($ this ->server );
6183
6284 $ verifier ->execute ();
6385 }
@@ -71,7 +93,9 @@ public function testMatchedAuthnContextClassRefShouldPass()
7193 $ verifier = new EngineBlock_Corto_Filter_Command_ValidateMfaAuthnContextClassRef ($ this ->logger );
7294 $ verifier ->setResponse ($ response );
7395 $ verifier ->setIdentityProvider ($ identityProvider );
74- $ verifier ->setServiceProvider (new ServiceProvider ('Test SP ' ));
96+ $ verifier ->setServiceProvider ($ this ->sp );
97+ $ verifier ->setRequest ($ this ->request );
98+ $ verifier ->setProxyServer ($ this ->server );
7599
76100 $ verifier ->execute ();
77101
@@ -87,7 +111,9 @@ public function testMatchedAuthnMethodsReferenceAttributeShouldPass()
87111 $ verifier = new EngineBlock_Corto_Filter_Command_ValidateMfaAuthnContextClassRef ($ this ->logger );
88112 $ verifier ->setResponse ($ response );
89113 $ verifier ->setIdentityProvider ($ identityProvider );
90- $ verifier ->setServiceProvider (new ServiceProvider ('Test SP ' ));
114+ $ verifier ->setServiceProvider ($ this ->sp );
115+ $ verifier ->setRequest ($ this ->request );
116+ $ verifier ->setProxyServer ($ this ->server );
91117
92118 $ verifier ->execute ();
93119
@@ -107,7 +133,9 @@ public function testMatchedAuthnMethodsReferenceAttributeWithMultipleValuesShoul
107133 $ verifier = new EngineBlock_Corto_Filter_Command_ValidateMfaAuthnContextClassRef ($ this ->logger );
108134 $ verifier ->setResponse ($ response );
109135 $ verifier ->setIdentityProvider ($ identityProvider );
110- $ verifier ->setServiceProvider (new ServiceProvider ('Test SP ' ));
136+ $ verifier ->setServiceProvider ($ this ->sp );
137+ $ verifier ->setRequest ($ this ->request );
138+ $ verifier ->setProxyServer ($ this ->server );
111139
112140 $ verifier ->execute ();
113141
@@ -127,7 +155,9 @@ public function testMatchedAuthnclassrefAndAuthnMethodsReferenceAttributeWithMul
127155 $ verifier = new EngineBlock_Corto_Filter_Command_ValidateMfaAuthnContextClassRef ($ this ->logger );
128156 $ verifier ->setResponse ($ response );
129157 $ verifier ->setIdentityProvider ($ identityProvider );
130- $ verifier ->setServiceProvider (new ServiceProvider ('Test SP ' ));
158+ $ verifier ->setServiceProvider ($ this ->sp );
159+ $ verifier ->setRequest ($ this ->request );
160+ $ verifier ->setProxyServer ($ this ->server );
131161
132162 $ verifier ->execute ();
133163
@@ -151,7 +181,9 @@ public function testNotMatchedAuthnContextClassRefShouldThrowException()
151181 $ verifier = new EngineBlock_Corto_Filter_Command_ValidateMfaAuthnContextClassRef ($ this ->logger );
152182 $ verifier ->setResponse ($ response );
153183 $ verifier ->setIdentityProvider ($ identityProvider );
154- $ verifier ->setServiceProvider (new ServiceProvider ('Test SP ' ));
184+ $ verifier ->setServiceProvider ($ this ->sp );
185+ $ verifier ->setRequest ($ this ->request );
186+ $ verifier ->setProxyServer ($ this ->server );
155187
156188 $ verifier ->execute ();
157189 }
@@ -171,7 +203,9 @@ public function testNotMatchedAuthnMethodsReferenceAttributeWithMultipleValuesSh
171203 $ verifier = new EngineBlock_Corto_Filter_Command_ValidateMfaAuthnContextClassRef ($ this ->logger );
172204 $ verifier ->setResponse ($ response );
173205 $ verifier ->setIdentityProvider ($ identityProvider );
174- $ verifier ->setServiceProvider (new ServiceProvider ('Test SP ' ));
206+ $ verifier ->setServiceProvider ($ this ->sp );
207+ $ verifier ->setRequest ($ this ->request );
208+ $ verifier ->setProxyServer ($ this ->server );
175209
176210 $ verifier ->execute ();
177211
@@ -187,7 +221,9 @@ public function testMatchedTransparentAuthnContextClassRefShouldPass()
187221 $ verifier = new EngineBlock_Corto_Filter_Command_ValidateMfaAuthnContextClassRef ($ this ->logger );
188222 $ verifier ->setResponse ($ response );
189223 $ verifier ->setIdentityProvider ($ identityProvider );
190- $ verifier ->setServiceProvider (new ServiceProvider ('Test SP ' ));
224+ $ verifier ->setServiceProvider ($ this ->sp );
225+ $ verifier ->setRequest ($ this ->request );
226+ $ verifier ->setProxyServer ($ this ->server );
191227
192228 $ verifier ->execute ();
193229
@@ -227,7 +263,7 @@ private function createTestResponse($authnContextClassRef, $authMethodsReference
227263 ]);
228264 }
229265
230- $ response = new Response ();
266+ $ response = new SAMLResponse ();
231267 $ response ->setAssertions (array ($ assertion ));
232268
233269 return new EngineBlock_Saml2_ResponseAnnotationDecorator ($ response );
0 commit comments