commit 96bee35b2a8b5449ff1815fd47d402b05b13f895
Author: Mauro Talevi <[email protected]>
AuthorDate: Sat, 12 Apr 2014 21:19:59 +0200
Commit: Mauro Talevi <[email protected]>
CommitDate: Sat, 12 Apr 2014 21:29:22 +0200
JBEHAVE-1011: Added Replacing TableTransformer.
diff --git
a/jbehave-core/src/main/java/org/jbehave/core/model/TableTransformers.java
b/jbehave-core/src/main/java/org/jbehave/core/model/TableTransformers.java
index 584bd60..cacd7ed 100644
--- a/jbehave-core/src/main/java/org/jbehave/core/model/TableTransformers.java
+++ b/jbehave-core/src/main/java/org/jbehave/core/model/TableTransformers.java
@@ -21,6 +21,8 @@ import java.util.Properties;
* name {@link TableTransformers#FROM_LANDSCAPE}</li>
* <li>{@link TableTransformers.Formatting Formatting}: registered under name
* {@link TableTransformers#FORMATTING}</li>
+ * <li>{@link TableTransformers.Replacing Replacing}: registered under name
+ * {@link TableTransformers#REPLACING}</li>
* </ul>
* </p>
*/
@@ -28,11 +30,14 @@ public class TableTransformers {
public static final String FROM_LANDSCAPE = "FROM_LANDSCAPE";
public static final String FORMATTING = "FORMATTING";
+ public static final String REPLACING = "REPLACING";
+
private final Map<String, TableTransformer> transformers = new
HashMap<String, TableTransformer>();
public TableTransformers() {
useTransformer(FROM_LANDSCAPE, new FromLandscape());
useTransformer(FORMATTING, new Formatting());
+ useTransformer(REPLACING, new Replacing());
}
public String transform(String transformerName, String tableAsString,
@@ -189,4 +194,15 @@ public class TableTransformers {
}
+ public static class Replacing implements TableTransformer {
+
+ public String transform(String tableAsString, Properties
properties) {
+ String replacing = properties.getProperty("replacing");
+ String replacement =
properties.getProperty("replacement");
+ if ( replacing == null || replacement == null ) {
+ return tableAsString;
+ }
+ return tableAsString.replace(replacing, replacement);
+ }
+ }
}
diff --git
a/jbehave-core/src/test/java/org/jbehave/core/model/TableTransformersBehaviour.java
b/jbehave-core/src/test/java/org/jbehave/core/model/TableTransformersBehaviour.java
index 45c5a37..5c6ddcf 100644
---
a/jbehave-core/src/test/java/org/jbehave/core/model/TableTransformersBehaviour.java
+++
b/jbehave-core/src/test/java/org/jbehave/core/model/TableTransformersBehaviour.java
@@ -43,6 +43,23 @@ public class TableTransformersBehaviour {
}
@Test
+ public void shouldTransformTableByReplacement() {
+ TableTransformers tableTransformers = new TableTransformers();
+ Properties properties = new Properties();
+ properties.setProperty("replacing", "|");
+ properties.setProperty("replacement", "\t");
+ String transformed =
tableTransformers.transform(TableTransformers.REPLACING, tableAsString,
properties);
+ assertThat(transformed, equalTo(tableAsString.replace("|", "\t")));
+ }
+
+ @Test
+ public void shouldTransformNotTableByReplacementIfPropertiesNotFound() {
+ TableTransformers tableTransformers = new TableTransformers();
+ String transformed =
tableTransformers.transform(TableTransformers.REPLACING, tableAsString, new
Properties());
+ assertThat(transformed, equalTo(tableAsString));
+ }
+
+ @Test
public void shouldTransformTableWithCustomTransformer() {
TableTransformers tableTransformers = new TableTransformers();
tableTransformers.useTransformer("myTransformer", new
TableTransformer(){