Package com.jetdrone.vertx.yoke.test.engine

Source Code of com.jetdrone.vertx.yoke.test.engine.StringPlaceholderEngine

package com.jetdrone.vertx.yoke.test.engine;

import com.jetdrone.vertx.yoke.Middleware;
import com.jetdrone.vertx.yoke.Yoke;
import com.jetdrone.vertx.yoke.engine.Function;
import com.jetdrone.vertx.yoke.middleware.YokeRequest;
import com.jetdrone.vertx.yoke.test.Response;
import com.jetdrone.vertx.yoke.test.YokeTester;
import org.jetbrains.annotations.NotNull;
import org.junit.Test;
import org.vertx.java.core.Handler;
import org.vertx.testtools.TestVerticle;

import java.io.File;
import java.io.FileOutputStream;
import java.util.Map;

import static org.vertx.testtools.VertxAssert.*;

public class StringPlaceholderEngine extends TestVerticle {

    @Test
    public void testEngine() {
        try {
            // create a temp template
            File temp = File.createTempFile("template", ".shtml");
            FileOutputStream out = new FileOutputStream(temp);
            out.write("Hello ${name}!".getBytes());
            out.close();
            final String location = temp.getAbsolutePath();

            Yoke yoke = new Yoke(this);
            yoke.engine("shtml", new com.jetdrone.vertx.yoke.engine.StringPlaceholderEngine(""));
            yoke.use(new Middleware() {
                @Override
                public void handle(@NotNull YokeRequest request, @NotNull Handler<Object> next) {
                    request.put("name", "Paulo");
                    request.response().render(location, next);
                }
            });

            new YokeTester(yoke).request("GET", "/", new Handler<Response>() {
                @Override
                public void handle(Response resp) {
                    assertEquals(200, resp.getStatusCode());
                    assertEquals("Hello Paulo!", resp.body.toString());
                    testComplete();
                }
            });
        } catch (Exception e) {
            fail(e.getMessage());
        }
    }

    @Test
    public void testEngineFunctions() {
        try {
            // create a temp template
            File temp = File.createTempFile("template", ".shtml");
            FileOutputStream out = new FileOutputStream(temp);
            out.write("Hello ${fnName('Lopes')}!".getBytes());
            out.close();
            final String location = temp.getAbsolutePath();

            Yoke yoke = new Yoke(this);
            yoke.set("fnName", new Function() {
                @Override
                public String exec(Map<String, Object> context, Object... args) {
                    return "Paulo " + args[0];
                }
            });
            yoke.engine("shtml", new com.jetdrone.vertx.yoke.engine.StringPlaceholderEngine(""));
            yoke.use(new Middleware() {
                @Override
                public void handle(@NotNull YokeRequest request, @NotNull Handler<Object> next) {
                    request.put("name", "Paulo");
                    request.response().render(location, next);
                }
            });

            new YokeTester(yoke).request("GET", "/", new Handler<Response>() {
                @Override
                public void handle(Response resp) {
                    assertEquals(200, resp.getStatusCode());
                    assertEquals("Hello Paulo Lopes!", resp.body.toString());
                    testComplete();
                }
            });
        } catch (Exception e) {
            fail(e.getMessage());
        }
    }

//    @Test
//    public void testRG() {
//        String funcName = "([a-zA-Z0-9]+)";
//        String arguments = "\\((.*)\\)";
//        Pattern FUNCTION = Pattern.compile(funcName + "\\s*" + arguments);
//
////        Matcher f = FUNCTION.matcher("func()");
//        Matcher f = FUNCTION.matcher("func(\"arg\")");
////        Matcher f = FUNCTION.matcher("func(\"arg\", \"arg2\")");
//        if (f.find()) {
//            System.out.println("It is a function");
//
//            String argument = "(.*?)";
//            String quote = "\"";
//            String sep = "(,\\s*)?";
//            Pattern ARG = Pattern.compile(quote + argument + quote + sep);
//
//            Matcher a = ARG.matcher(f.group(2));
//
//            while (a.find()) {
//                System.out.println("It has argument: " + a.group(1));
//            }
//        }
//
//        testComplete();
//    }
}
TOP

Related Classes of com.jetdrone.vertx.yoke.test.engine.StringPlaceholderEngine

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.