package com.jetdrone.vertx.yoke.test;

import com.jetdrone.vertx.yoke.GYoke;
import com.jetdrone.vertx.yoke.core.GMultiMap;
import groovy.lang.Closure;
import org.vertx.java.core.Handler;
import org.vertx.java.core.Vertx;
import org.vertx.java.core.buffer.Buffer;

public class GYokeTester extends YokeTester {

    public GYokeTester(Vertx vertx, GYoke yoke, boolean fakeSSL) {
        super(vertx, yoke.toJavaYoke(), fakeSSL);
    }

    public GYokeTester(Vertx vertx, GYoke yoke) {
        this(vertx, yoke, false);
    }

    public void request(final String method, final String url, final Closure<Response> handler) {
        request(method, url, new Handler<Response>() {
            @Override
            public void handle(Response event) {
                handler.call(event);
            }
        });
    }

//    public void request(final String method, final String url, final GMultiMap headers, final Closure<Response> handler) {
//        request(method, url, headers, new Handler<Response>() {
//            @Override
//            public void handle(Response event) {
//                handler.call(event);
//            }
//        });
//    }
//
//    public void request(final String method, final String url, final GMultiMap headers, final Buffer body, final Closure<Response> handler) {
//        request(method, url, headers, body, new Handler<Response>() {
//            @Override
//            public void handle(Response event) {
//                handler.call(event);
//            }
//        });
//    }
}

@@ -74,55 +74,8 @@
 ke;%0A
-import com.jetdrone.vertx.yoke.core.GMultiMap;%0A
 impo
@@ -134,16 +134,53 @@
 andler;%0A
+import org.vertx.java.core.MultiMap;%0A
 import o
@@ -246,16 +246,147 @@
 .Buffer;
+%0Aimport org.vertx.java.core.http.CaseInsensitiveMultiMap;%0A%0Aimport java.util.ArrayList;%0Aimport java.util.List;%0Aimport java.util.Map;
 %0A%0Apublic
@@ -935,18 +935,16 @@
 %0A    %7D%0A%0A
-//
     publ
@@ -1000,33 +1000,43 @@
  url, final 
-GMultiMap
+Map%3CString, Object%3E
  headers, fi
@@ -1060,34 +1060,32 @@
 nse%3E handler) %7B%0A
-//
         request(
@@ -1097,23 +1097,35 @@
 d, url, 
+toMultiMap(
 headers
+)
 , new Ha
@@ -1136,34 +1136,32 @@
 r%3CResponse%3E() %7B%0A
-//
             @Ove
@@ -1158,34 +1158,32 @@
       @Override%0A
-//
             publ
@@ -1207,34 +1207,32 @@
 sponse event) %7B%0A
-//
                 
@@ -1244,34 +1244,32 @@
 er.call(event);%0A
-//
             %7D%0A//
@@ -1258,34 +1258,32 @@
 ;%0A            %7D%0A
-//
         %7D);%0A//  
@@ -1282,21 +1282,15 @@
 %7D);%0A
-//
     %7D%0A
-//%0A//
+%0A
     
@@ -1358,17 +1358,27 @@
 nal 
-GMultiMap
+Map%3CString, Object%3E
  hea
@@ -1433,26 +1433,24 @@
  handler) %7B%0A
-//
         requ
@@ -1466,23 +1466,35 @@
 d, url, 
+toMultiMap(
 headers
+)
 , body, 
@@ -1515,26 +1515,24 @@
 sponse%3E() %7B%0A
-//
             
@@ -1541,18 +1541,16 @@
 verride%0A
-//
         
@@ -1590,18 +1590,16 @@
 vent) %7B%0A
-//
         
@@ -1627,18 +1627,16 @@
 event);%0A
-//
         
@@ -1641,18 +1641,16 @@
       %7D%0A
-//
         
@@ -1657,10 +1657,956 @@
 %7D);%0A
-//
+    %7D%0A%0A    private static MultiMap toMultiMap(Map%3CString, Object%3E headers) %7B%0A        if (headers == null) %7B%0A            return null;%0A        %7D%0A%0A        MultiMap multiMap = new CaseInsensitiveMultiMap();%0A%0A        for (Map.Entry%3CString, Object%3E entry : headers.entrySet()) %7B%0A            Object o = entry.getValue();%0A            if (o != null) %7B%0A                if (o instanceof List) %7B%0A                    List%3CString%3E entries = new ArrayList%3C%3E();%0A                    for (Object v : (List) o) %7B%0A                        if (v != null) %7B%0A                            entries.add(v.toString());%0A                        %7D%0A                    %7D%0A                    multiMap.add(entry.getKey(), entries);%0A                    continue;%0A                %7D%0A                if (o instanceof String) %7B%0A                    multiMap.add(entry.getKey(), (String) o);%0A                    continue;%0A                %7D%0A            %7D%0A        %7D%0A%0A        return multiMap;%0A
     

allow full API with Maps