package org.jbehave.example.spring.security.steps; import java.util.List; import java.util.Map; import org.jbehave.core.annotations.Alias; import org.jbehave.core.annotations.Given; import org.jbehave.core.annotations.When; import org.jbehave.core.model.ExamplesTable; import org.jbehave.example.spring.security.dao.OrganizationDao; import org.jbehave.example.spring.security.domain.AuthenticationPolicy; import org.jbehave.example.spring.security.domain.AuthenticationPolicyBuilder; import org.jbehave.example.spring.security.domain.Organization; import org.jbehave.example.spring.security.service.OrganizationManager; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @Component("organizationSteps") public class OrganizationSteps { @Autowired private OrganizationDao organizationDao; @Autowired private OrganizationManager organizationManager; @Given("an organization named $orgNames") @Alias("organizations named $orgNames") public void createOrganizationWithName(List<String> orgNames) { for (String orgName : orgNames) { Organization org = new Organization(); org.setName(orgName); org.setAuthenticationPolicy(new AuthenticationPolicy()); organizationDao.persist(org); } } @Given("a default authentication policy for $orgName") public void updateOrganizationWithDefaultAuthPolicy(String orgName) { Organization org = organizationDao.findByName(orgName); org.setAuthenticationPolicy(new AuthenticationPolicy()); organizationDao.persist(org); } @Given("authentication policy for $orgName: $authPolicyTable") public void updateOrganizationWithDefaultAuthPolicy(String orgName, ExamplesTable table) { Organization org = organizationDao.findByName(orgName); Map<String, String> row = table.getRow(0); org.setAuthenticationPolicy(new AuthenticationPolicyBuilder(row).build()); organizationDao.persist(org); } @When("current organization is $orgName") public void setCurrentOrganization(String orgName) { Organization org = organizationDao.findByName(orgName); organizationManager.setOrganization(org); } }