I am trying to run Trader Example to implement ExampleTable for Parameterized Tabular Data. I am getting an error of "No runnable methods".
my story:
Scenario: To print tabular data
Given the traders:
name |
rank |
Larry |
Stooge 3 |
Moe |
Stooge 1 |
Curly |
Stooge 2 |
When a wildcard search ".*y" is executed"
Then the traders returned are:
name |
rank |
Larry |
Stooge 3 |
Curly |
Stooge 2 |
package com.BaseStory;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import org.jbehave.core.annotations.Given;
import org.jbehave.core.annotations.Then;
import org.jbehave.core.annotations.When;
import org.jbehave.core.model.ExamplesTable;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import static org.junit.Assert.*;
import model.Stock;
import model.Trader;
import model.Stock.AlertStatus;
import service.TradingService;
public class TraderSteps {
private TradingService service;
private Stock stock;
private Trader trader;
private List<Trader> traders = new ArrayList<Trader>();
private List<Trader> searchedTraders;
@Given("the traders: %tradersTable")
public void theTraders(ExamplesTable tradersTable) {
traders.clear();
traders.addAll(toTraders(tradersTable));
}
@When("a wildcard search \"%regex\" is executed")
public void aWildcardSearchIsExecuted(String regex) {
searchedTraders = new ArrayList<Trader>();
for (Trader trader : traders) {
if ( trader.getName().matches(regex) ){
searchedTraders.add(trader);
}
}
}
@Then("the traders returned are: %tradersTable")
public void theTradersReturnedAre(ExamplesTable tradersTable) {
List<Trader> expected = toTraders(tradersTable);
assertEquals(expected.toString(), searchedTraders.toString());
}
private List<Trader> toTraders(ExamplesTable table) {
List<Trader> traders = new ArrayList<Trader>();
List<Map<String, String>> rows = table.getRows();
for (Map<String, String> row : rows) {
String name = row.get("name");
String rank = row.get("rank");
traders.add(service.newTrader(name, rank));
}
Collections.sort(traders);
return traders;
}
}
|