package org.jbehave.example.spring.security.steps;
import java.util.List;
import org.jbehave.core.annotations.Given;
import org.jbehave.core.model.ExamplesTable;
import org.jbehave.core.steps.Parameters;
import org.jbehave.example.spring.security.dao.OrganizationDao;
import org.jbehave.example.spring.security.dao.UserDao;
import org.jbehave.example.spring.security.domain.Organization;
import org.jbehave.example.spring.security.domain.User;
import org.jbehave.example.spring.security.domain.UserBuilder;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component("userSteps")
public class UserSteps {
@Autowired
private UserDao userDao;
@Autowired
private OrganizationDao organizationDao;
@Given("a user for $orgName with username $username and password $password")
public void createUserWithUsernameAndPassword(String orgName, String username, String password) {
Organization org = organizationDao.findByName(orgName);
User user = new User();
user.setOrganization(org);
user.setUsername(username);
user.setPasswordCleartext(password);
userDao.persist(user);
}
@Given("the users for $orgName: $userTable")
public void createUsersFromTable(String orgName, ExamplesTable table) {
Organization org = organizationDao.findByName(orgName);
List<Parameters> parametersList = table.getRowsAsParameters(true);
for (Parameters parameters : parametersList) {
userDao.persist(new UserBuilder(org, parameters, table.getHeaders()).build());
}
}
@Given("user for $orgName $username is disabled")
public void setUserDisabled(String orgName, String username) {
Organization org = organizationDao.findByName(orgName);
User user = userDao.findUserByOrganizationAndUsername(org.getId(), username);
user.setEnabled(false);
userDao.persist(user);
}
@Given("user for $orgName $username is enabled")
public void setUserEnabled(String orgName, String username) {
Organization org = organizationDao.findByName(orgName);
User user = userDao.findUserByOrganizationAndUsername(org.getId(), username);
user.setEnabled(true);
userDao.persist(user);
}
@Given("user for $orgName $username is expired")
public void setUserExpired(String orgName, String username) {
Organization org = organizationDao.findByName(orgName);
User user = userDao.findUserByOrganizationAndUsername(org.getId(), username);
user.setExpired(true);
userDao.persist(user);
}
}