-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathmain_test.go
53 lines (45 loc) · 1.11 KB
/
main_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package main
import (
"os"
"testing"
packr "github.com/gobuffalo/packr/v2"
"github.com/gregdhill/go-openrpc/generate"
"github.com/gregdhill/go-openrpc/parse"
)
func generateExampleProxyServer() error {
specFile := "parse/testdata/eth_openrpc.json"
pkgDir := "rpc"
openrpc, err := readSpec(specFile)
if err != nil {
return err
}
parse.GetTypes(openrpc, openrpc.Objects)
box := packr.New("template", "./templates")
if err = generate.WriteFile(box, "server", pkgDir, openrpc); err != nil {
return err
}
if err = generate.WriteFile(box, "types", pkgDir, openrpc); err != nil {
return err
}
if err = generate.WriteFile(box, "example-proxy-server", "main", openrpc); err != nil {
return err
} else {
// HACK
if err := os.MkdirAll("example/", os.ModePerm); err != nil {
return err
}
if err := os.Rename("main/example-proxy-server.go", "example/example-proxy-server.go"); err != nil {
return err
}
if err := os.RemoveAll("main/"); err != nil {
return err
}
}
return nil
}
func TestExampleProxyServer(t *testing.T) {
err := generateExampleProxyServer()
if err != nil {
t.Fatal(err)
}
}