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(){



Reply via email to