Created
February 6, 2012 15:52
-
-
Save ctataryn/1752795 to your computer and use it in GitHub Desktop.
jBehave Transaction Problem
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@Component | |
public class PlayerSteps { | |
@Resource | |
private PlayerManagementService service; | |
@Resource(name="dwDataSource") | |
private DataSource dataSource; | |
private Player player; | |
private Player retrievedPlayer; | |
private ExamplesTable playersTable; | |
private List<Player> players; | |
private void insertPlayers(List<Player> players) { | |
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource); | |
for (Player p : players) { | |
PersonName name = p.getName(); | |
PersonAddress address = p.getAddress(); | |
jdbcTemplate.update("SET IDENTITY_INSERT Player ON"); | |
jdbcTemplate.update("insert into player (player_id, first_name, last_name, street, city, province, postal_code, created_by_user, last_updated_by_user) " + | |
"values (?, ?, ?, ?, ?, ?, ?, ?, ?)", | |
new Object[] {p.getId(),name.getFirstName(), name.getLastName(), address.getStreet1(), address.getCity(), | |
address.getProvince(), address.getPostal(), "test", "test" }); | |
} | |
} | |
@Given("the following players: $playersTable") | |
public void thePlayers(ExamplesTable playersTable) { | |
this.playersTable = playersTable; | |
this.players = new ArrayList<Player>(); | |
for (Map<String, String> row : playersTable.getRows()) { | |
Player player = new DataWarehousePlayer(Integer.valueOf(row.get("id"))); | |
PersonName name = new PersonName(); | |
name.setFirstName(row.get("fname")); | |
name.setLastName(row.get("lname")); | |
player.setName(name); | |
PersonAddress address = new PersonAddress(); | |
address.setStreet1(row.get("street")); | |
address.setCity(row.get("city")); | |
address.setProvince(row.get("province")); | |
address.setPostal(row.get("postal")); | |
player.setAddress(address); | |
players.add(player); | |
} | |
insertPlayers(players); | |
} | |
@When("a player identified by the ID $playerId is retrieved") | |
public void retrievePlayerById(Integer playerId) { | |
retrievedPlayer = service.getPlayerById(playerId); | |
assertThat(retrievedPlayer, notNullValue()); | |
} | |
@Then("the player retrieved has attributes matching exactly those which they were defined with") | |
public void checkRetrievedPlayerAttributes() { | |
for (Player player : players) { | |
assertThat(player.getId(), equalTo(retrievedPlayer.getId())); | |
assertThat(player.getName().getFirstName(), equalTo(retrievedPlayer.getName().getFirstName())); | |
assertThat(player.getName().getLastName(), equalTo(retrievedPlayer.getName().getLastName())); | |
assertThat(player.getAddress().getCity(), equalTo(retrievedPlayer.getAddress().getCity())); | |
assertThat(player.getAddress().getPostal(), equalTo(retrievedPlayer.getAddress().getPostal())); | |
assertThat(player.getAddress().getProvince(), equalTo(retrievedPlayer.getAddress().getProvince())); | |
assertThat(player.getAddress().getStreet1(), equalTo(retrievedPlayer.getAddress().getStreet1())); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment