commit 50b47f5f2222b8ec849a4002fd1389f157f4c95f
Author:     Alex Lehmann <alexl...@gmail.com>
AuthorDate: Tue Jan 24 21:08:33 2012 +0100
Commit:     Alex Lehmann <alexl...@gmail.com>
CommitDate: Tue Jan 24 21:08:33 2012 +0100

    JBEHAVE-711 empty lines in example tables should be ignored
    add check for empty line as test case

diff --git 
a/jbehave-core/src/main/java/org/jbehave/core/model/ExamplesTable.java 
b/jbehave-core/src/main/java/org/jbehave/core/model/ExamplesTable.java
index 30a0921..784165e 100755
--- a/jbehave-core/src/main/java/org/jbehave/core/model/ExamplesTable.java
+++ b/jbehave-core/src/main/java/org/jbehave/core/model/ExamplesTable.java
@@ -153,8 +153,8 @@ public class ExamplesTable {
         String[] rows = splitInRows(stripProperties(tableAsString.trim()));
         for (int row = 0; row < rows.length; row++) {
             String rowAsString = rows[row];
-            if (rowAsString.startsWith(ignorableSeparator)) {
-                // skip rows that start with ignorable separator
+            if (rowAsString.startsWith(ignorableSeparator) || 
rowAsString.length()==0) {
+                // skip empty lines and rows that start with ignorable 
separator
                 continue;
             } else if (row == 0) {
                 List<String> columns = columnsFor(rowAsString, 
headerSeparator);
@@ -196,7 +196,7 @@ public class ExamplesTable {
 
     private List<String> columnsFor(String row, String separator) {
         List<String> columns = new ArrayList<String>();
-        // use split limit -1 to ensure that empty strings will not be 
discarted
+        // use split limit -1 to ensure that empty strings will not be 
discarded
         for (String column : row.split(buildRegex(separator), -1)) {
             columns.add(valueOf(column));
         }
diff --git 
a/jbehave-core/src/test/java/org/jbehave/core/model/ExamplesTableBehaviour.java 
b/jbehave-core/src/test/java/org/jbehave/core/model/ExamplesTableBehaviour.java
index d5450fc..c3a7037 100755
--- 
a/jbehave-core/src/test/java/org/jbehave/core/model/ExamplesTableBehaviour.java
+++ 
b/jbehave-core/src/test/java/org/jbehave/core/model/ExamplesTableBehaviour.java
@@ -352,6 +352,15 @@ public class ExamplesTableBehaviour {
         assertThat(out.toString(), equalTo(tableAsString));        
     }
 
+    @Test
+    public void shouldIgnoreEmptyLines() throws Exception {
+      // ignore blank line
+      String tableWithEmptyLine = "|one|two|\n|a|b|\n\n|c|d|\n";
+      ExamplesTable table = new ExamplesTable(tableWithEmptyLine);
+      assertThat(table.getRowCount(), equalTo(2));
+      assertThat(table.asString(), equalTo("|one|two|\n|a|b|\n|c|d|\n"));
+    }
+
     public Date convertDate(String value) throws ParseException {
         return new SimpleDateFormat("dd/MM/yyyy").parse(value);
     }



Reply via email to