/** @test */ public function builder_is_returned_after_setting_a_set_of_rules() { $builder = new \Stormpath\Saml\AttributeStatementMappingRulesBuilder(); $rule = new \Stormpath\Saml\AttributeStatementMappingRuleBuilder(); $rule->setName('test'); $rule->setNameFormat('urn:oasis:names:tc:SAML:1.1:nameid-format:email'); $rule->setAccountAttributes(['email', 'username']); $rules = $rule->build(); $this->assertInstanceOf('Stormpath\\Saml\\AttributeStatementMappingRulesBuilder', $builder->setAttributeStatementMappingRules([$rules])); }
/** @test */ public function a_provider_can_save_an_attribute_statement_mapping_rule() { $samlProvider = \Stormpath\Resource\SamlProvider::instantiate(['ssoLoginUrl' => 'http://google.com/login', 'ssoLogoutUrl' => 'http://google.com/logout', 'encodedX509SigningCert' => self::getDummyCertForSaml(), 'requestSignatureAlgorithm' => 'RSA-SHA1']); $directory = \Stormpath\Resource\Directory::create(['name' => makeUniqueName('DirectoryTest samlProvider'), 'provider' => $samlProvider]); $providerHref = $directory->provider->href; $provider = SamlProvider::get($providerHref); $ruleBuilder = new \Stormpath\Saml\AttributeStatementMappingRuleBuilder(); $rule = $ruleBuilder->setName('test1')->setAccountAttributes(['customData.test1'])->build(); $rule2 = $ruleBuilder->setName('test2')->setAccountAttributes(['customData.test2'])->build(); $rulesBuilder = new \Stormpath\Saml\AttributeStatementMappingRulesBuilder(); $rulesBuilder->setAttributeStatementMappingRules([$rule, $rule2]); $rules = $rulesBuilder->build(); $provider->setAttributeStatementMappingRules($rules); $provider->save(); $provider = SamlProvider::get($providerHref); $mappingRules = $provider->getAttributeStatementMappingRules(); $this->assertCount(2, $mappingRules->items); foreach ($mappingRules->items as $item) { $this->assertInstanceOf('Stormpath\\Saml\\AttributeStatementMappingRule', $item); } $this->assertEquals('test2', $mappingRules->items[1]->name); $directory->delete(); }