OSDN Git Service

Hulk did something
[bytom/vapor.git] / test / integration / run_test.go
diff --git a/test/integration/run_test.go b/test/integration/run_test.go
new file mode 100644 (file)
index 0000000..880cf6b
--- /dev/null
@@ -0,0 +1,95 @@
+package integration
+
+import (
+       "fmt"
+
+       cfg "github.com/vapor/config"
+       "github.com/vapor/crypto/ed25519/chainkd"
+       "github.com/vapor/util"
+)
+
+// Mock config.
+func mockConfig() *cfg.Config {
+       var config = cfg.DefaultConfig()
+       config.Wallet.Disable = false
+       config.Mining = true
+       config.ApiAddress = "127.0.0.1:9888"
+       return config
+}
+
+// Test net-info call api.
+func testNet() bool {
+       data, exitCode := util.ClientCall("/net-info")
+       if exitCode != util.Success {
+               return false
+       }
+       dataMap, ok := data.(map[string]interface{})
+       if ok && dataMap["listening"].(bool) && dataMap["syncing"].(bool) && dataMap["mining"].(bool) {
+               return true
+       }
+       return false
+}
+
+// Test create-key delete-key list-key api and function.
+func testKey() bool {
+       var key = struct {
+               Alias    string `json:"alias"`
+               Password string `json:"password"`
+       }{Alias: "alice", Password: "123456"}
+
+       data, exitCode := util.ClientCall("/create-key", &key)
+       if exitCode != util.Success {
+               return false
+       }
+       dataMap, ok := data.(map[string]interface{})
+       if (ok && dataMap["alias"].(string) == "alice") == false {
+               return false
+       }
+
+       _, exitCode1 := util.ClientCall("/list-keys")
+       if exitCode1 != util.Success {
+               return false
+       }
+
+       fmt.Println("dataMap", dataMap)
+       xpub := new(chainkd.XPub)
+       if err := xpub.UnmarshalText([]byte(dataMap["xpub"].(string))); err != nil {
+               return false
+       }
+
+       var key1 = struct {
+               Password string
+               XPub     chainkd.XPub `json:"xpubs"`
+       }{XPub: *xpub, Password: "123456"}
+
+       if _, exitCode := util.ClientCall("/delete-key", &key1); exitCode != util.Success {
+               return false
+       }
+
+       return true
+}
+
+// Test node running.
+/*func TestRunNode(t *testing.T) {
+       // Create & start node
+       config := mockConfig()
+       n := node.NewNodeDefault(config)
+       if _, err := n.Start(); err != nil {
+               t.Fatalf("Failed to start node: %v", err)
+       }
+
+       go func() {
+               time.Sleep(3000 * time.Millisecond)
+               if testNet() && testKey() {
+                       os.RemoveAll("./data")
+                       os.RemoveAll("./keystore")
+                       os.Exit(0)
+               } else {
+                       os.RemoveAll("./data")
+                       os.RemoveAll("./keystore")
+                       os.Exit(1)
+               }
+       }()
+       // Trap signal, run forever.
+       n.RunForever()
+}*/