156 lines
3.0 KiB
Go
156 lines
3.0 KiB
Go
package java
|
|
|
|
import (
|
|
"io/ioutil"
|
|
"log"
|
|
"os"
|
|
"reflect"
|
|
"testing"
|
|
|
|
"github.com/metrue/fx/utils"
|
|
)
|
|
|
|
func TestJavaBundler(t *testing.T) {
|
|
t.Run("Scaffold", func(t *testing.T) {
|
|
outputDir, err := ioutil.TempDir("", "fx_java")
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
defer os.RemoveAll(outputDir)
|
|
|
|
java := New()
|
|
if err := java.Scaffold(outputDir); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
diff, _, _, err := utils.Diff(outputDir, "./assets")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
if diff {
|
|
t.Fatalf("%s is not equal with %s", outputDir, "./assets")
|
|
}
|
|
})
|
|
|
|
t.Run("BundleSingleFunc", func(t *testing.T) {
|
|
fd, err := ioutil.TempFile("", "fx_func_*.java")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
defer os.Remove(fd.Name())
|
|
|
|
content := `package fx;
|
|
|
|
import io.javalin.Javalin;
|
|
import org.json.JSONObject;
|
|
|
|
public class app {
|
|
public static void main(String[] args) {
|
|
Javalin app = Javalin.start(3000);
|
|
Fx handler = new Fx();
|
|
app.post("/", ctx -> {
|
|
JSONObject obj = new JSONObject(ctx.body());
|
|
ctx.result(""+handler.handle(obj));
|
|
});
|
|
}
|
|
}
|
|
`
|
|
err = ioutil.WriteFile(fd.Name(), []byte(content), 0666)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
outputDir, err := ioutil.TempDir("", "fx_java")
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
defer os.RemoveAll(outputDir)
|
|
|
|
java := New()
|
|
if err := java.Bundle(outputDir, fd.Name()); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
diff, pre, cur, err := utils.Diff("./assets", outputDir)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
if !diff {
|
|
t.Fatalf("handle functino should be changed")
|
|
}
|
|
|
|
if !reflect.DeepEqual(cur, []byte(content)) {
|
|
t.Fatalf("it should be %s but got %s", content, cur)
|
|
}
|
|
|
|
preHandleFunc, err := ioutil.ReadFile("./assets/src/main/java/fx/Fx.java")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if !reflect.DeepEqual(pre, preHandleFunc) {
|
|
{
|
|
}
|
|
t.Fatalf("it should get %s but got %s", preHandleFunc, pre)
|
|
}
|
|
})
|
|
|
|
t.Run("BundleFuncAndDeps", func(t *testing.T) {
|
|
fd, err := ioutil.TempFile("", "fx_func_*.js")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
defer os.Remove(fd.Name())
|
|
|
|
content, err := ioutil.ReadFile("./assets/src/main/java/fx/Fx.java")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
err = ioutil.WriteFile(fd.Name(), content, 0666)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
addFunc := `
|
|
module.exports = (a, b) => a+b
|
|
`
|
|
addFd, err := ioutil.TempFile("", "fx_add_func_*.js")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
err = ioutil.WriteFile(addFd.Name(), []byte(addFunc), 0644)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
outputDir, err := ioutil.TempDir("", "fx_java")
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
defer os.RemoveAll(outputDir)
|
|
|
|
java := New()
|
|
if err := java.Bundle(outputDir, fd.Name(), addFd.Name()); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
diff, pre, cur, err := utils.Diff("./assets", outputDir)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
if !diff {
|
|
t.Fatalf("handle functino should be changed")
|
|
}
|
|
|
|
if !reflect.DeepEqual(cur, []byte(addFunc)) {
|
|
t.Fatalf("it should be %s but got %s", content, cur)
|
|
}
|
|
if pre != nil {
|
|
t.Fatal(pre)
|
|
}
|
|
})
|
|
}
|