commit 560cabe8e13b49eda3b0bf27e258ff508923916c Author: Mauro Talevi <mauro.tal...@aquilonia.org> AuthorDate: Sat, 12 Apr 2014 21:19:59 +0200 Commit: Mauro Talevi <mauro.tal...@aquilonia.org> CommitDate: Sat, 12 Apr 2014 21:19:59 +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(){