// Path: hangout-filters/hangout-filters-trim/src/main/java/com/ctrip/ops/sysdev/filters/Trim.java
// @Log4j2
// public class Trim extends BaseFilter {
// 
//     public Trim(Map config) {
//         super(config);
//     }
// 
//     private ArrayList<Tuple2> fields;
// 
//     protected void prepare() {
//         this.fields = new ArrayList();
//         for (String field : (ArrayList<String>) config.get("fields")) {
// 
//             TemplateRender templateRender = null;
//             try {
//                 templateRender = TemplateRender.getRender(field, false);
//             } catch (IOException e) {
//                 log.fatal("could NOT build template render from " + field);
//             }
//             this.fields.add(new Tuple2(FieldSetter.getFieldSetter(field), templateRender));
//         }
//     }
// 
//     @Override
//     protected Map filter(final Map event) {
//         for (Tuple2 t2 : fields) {
//             Object value = ((TemplateRender) t2._2()).render(event);
//             if (value != null && String.class.isAssignableFrom(value.getClass())) {
//                 ((FieldSetter) t2._1()).setField(event, ((String) value).trim());
//             }
//         }
//         return event;
//     }
// }


import java.util.HashMap;
import java.util.Map;
import com.ctrip.ops.sysdev.filters.Trim;
import org.testng.Assert;
import org.testng.annotations.Test;
import org.yaml.snakeyaml.Yaml;
package com.ctrip.ops.sysdev.test;



public class TestTrimFilter {
    @Test
    public void testTrimFilter() {
        String c = String.format("%s\n%s\n%s\n%s",
                "fields:",
                "    - name",
                "    - '[metric][value]'",
                "    - '[metric][value2]'"
        );

        Yaml yaml = new Yaml();
        Map config = (Map) yaml.load(c);
        Assert.assertNotNull(config);

// Path: hangout-filters/hangout-filters-trim/src/main/java/com/ctrip/ops/sysdev/filters/Trim.java
// @Log4j2
// public class Trim extends BaseFilter {
// 
//     public Trim(Map config) {
//         super(config);
//     }
// 
//     private ArrayList<Tuple2> fields;
// 
//     protected void prepare() {
//         this.fields = new ArrayList();
//         for (String field : (ArrayList<String>) config.get("fields")) {
// 
//             TemplateRender templateRender = null;
//             try {
//                 templateRender = TemplateRender.getRender(field, false);
//             } catch (IOException e) {
//                 log.fatal("could NOT build template render from " + field);
//             }
//             this.fields.add(new Tuple2(FieldSetter.getFieldSetter(field), templateRender));
//         }
//     }
// 
//     @Override
//     protected Map filter(final Map event) {
//         for (Tuple2 t2 : fields) {
//             Object value = ((TemplateRender) t2._2()).render(event);
//             if (value != null && String.class.isAssignableFrom(value.getClass())) {
//                 ((FieldSetter) t2._1()).setField(event, ((String) value).trim());
//             }
//         }
//         return event;
//     }
// }


// Path: hangout-filters/hangout-filters-trim/src/test/java/com/ctrip/ops/sysdev/test/TestTrimFilter.java
import java.util.HashMap;
import java.util.Map;
import com.ctrip.ops.sysdev.filters.Trim;
import org.testng.Assert;
import org.testng.annotations.Test;
import org.yaml.snakeyaml.Yaml;

package com.ctrip.ops.sysdev.test;



public class TestTrimFilter {
    @Test
    public void testTrimFilter() {
        String c = String.format("%s\n%s\n%s\n%s",
                "fields:",
                "    - name",
                "    - '[metric][value]'",
                "    - '[metric][value2]'"
        );

        Yaml yaml = new Yaml();
        Map config = (Map) yaml.load(c);
        Assert.assertNotNull(config);

        Trim trimFilter = new Trim(config);