@@ -57,6 +57,11 @@ class SessionSpecificationBuilderTest extends TestCase
57
57
*/
58
58
private $ subject ;
59
59
60
+ /**
61
+ * @var object
62
+ */
63
+ private $ identityProfileRequirements ;
64
+
60
65
public function setup (): void
61
66
{
62
67
$ this ->sdkConfigMock = $ this ->createMock (SdkConfig::class);
@@ -75,7 +80,16 @@ public function setup(): void
75
80
$ this ->requiredDocumentMock ->method ('jsonSerialize ' )->willReturn ((object )['requiredDocument ' ]);
76
81
77
82
$ this ->ibvOptionsMock = $ this ->createMock (IbvOptions::class);
83
+
78
84
$ this ->subject = (object )[1 => 'some ' ];
85
+
86
+ $ this ->identityProfileRequirements = (object )[
87
+ 'trust_framework ' => 'UK_TFIDA ' ,
88
+ 'scheme ' => [
89
+ 'type ' => 'DBS ' ,
90
+ 'objective ' => 'STANDARD '
91
+ ]
92
+ ];
79
93
}
80
94
81
95
/**
@@ -380,4 +394,61 @@ public function shouldReturnCorrectJsonStringWithSubject()
380
394
json_encode ($ sessionSpecification )
381
395
);
382
396
}
397
+
398
+ /**
399
+ * @test
400
+ * @covers \Yoti\DocScan\Session\Create\SessionSpecification::getIdentityProfileRequirements
401
+ * @covers \Yoti\DocScan\Session\Create\SessionSpecification::__construct
402
+ * @covers \Yoti\DocScan\Session\Create\SessionSpecificationBuilder::withIdentityProfileRequirements
403
+ * @covers \Yoti\DocScan\Session\Create\SessionSpecificationBuilder::build
404
+ */
405
+ public function shouldBuildWithIdentityProfileRequirements ()
406
+ {
407
+ $ sessionSpecificationResult = (new SessionSpecificationBuilder ())
408
+ ->withIdentityProfileRequirements ($ this ->identityProfileRequirements )
409
+ ->build ();
410
+
411
+ $ this ->assertEquals (
412
+ $ this ->identityProfileRequirements ,
413
+ $ sessionSpecificationResult ->getIdentityProfileRequirements ()
414
+ );
415
+ }
416
+
417
+ /**
418
+ * @test
419
+ * @covers \Yoti\DocScan\Session\Create\SessionSpecification::getIdentityProfileRequirements
420
+ * @covers \Yoti\DocScan\Session\Create\SessionSpecification::__construct
421
+ * @covers \Yoti\DocScan\Session\Create\SessionSpecificationBuilder::withIdentityProfileRequirements
422
+ * @covers \Yoti\DocScan\Session\Create\SessionSpecificationBuilder::build
423
+ */
424
+ public function shouldNotImplicitlySetAValueForIdentityProfileRequirements ()
425
+ {
426
+ $ sessionSpecificationResult = (new SessionSpecificationBuilder ())
427
+ ->build ();
428
+
429
+ $ this ->assertNull ($ sessionSpecificationResult ->getIdentityProfileRequirements ());
430
+ }
431
+
432
+ /**
433
+ * @test
434
+ * @covers \Yoti\DocScan\Session\Create\SessionSpecification::jsonSerialize
435
+ * @covers \Yoti\DocScan\Session\Create\SessionSpecificationBuilder::withIdentityProfileRequirements
436
+ * @covers \Yoti\DocScan\Session\Create\SessionSpecificationBuilder::build
437
+ */
438
+ public function shouldReturnCorrectJsonStringWithIdentityProfileRequirements ()
439
+ {
440
+ $ sessionSpecification = (new SessionSpecificationBuilder ())
441
+ ->withIdentityProfileRequirements ($ this ->identityProfileRequirements )
442
+ ->build ();
443
+
444
+ $ this ->assertJsonStringEqualsJsonString (
445
+ json_encode ([
446
+ 'requested_checks ' => [],
447
+ 'requested_tasks ' => [],
448
+ 'required_documents ' => [],
449
+ 'identity_profile_requirements ' => $ this ->identityProfileRequirements ,
450
+ ]),
451
+ json_encode ($ sessionSpecification )
452
+ );
453
+ }
383
454
}
0 commit comments