summaryrefslogtreecommitdiff
path: root/plugins/metrics/tests/plugin2.go
diff options
context:
space:
mode:
authorValery Piashchynski <[email protected]>2020-11-13 16:29:08 +0300
committerValery Piashchynski <[email protected]>2020-11-13 16:29:08 +0300
commit6eefd067f4c08ed51834926abd1a4c60ec55b56d (patch)
tree5c4e3d3d930243f0c19083eff8bd5719ec266500 /plugins/metrics/tests/plugin2.go
parent002eb4bb1981558fa5e614aed22d322f0f45d7ea (diff)
Update tests
Diffstat (limited to 'plugins/metrics/tests/plugin2.go')
-rw-r--r--plugins/metrics/tests/plugin2.go54
1 files changed, 54 insertions, 0 deletions
diff --git a/plugins/metrics/tests/plugin2.go b/plugins/metrics/tests/plugin2.go
new file mode 100644
index 00000000..4156db6d
--- /dev/null
+++ b/plugins/metrics/tests/plugin2.go
@@ -0,0 +1,54 @@
+package tests
+
+import (
+ "net"
+ "net/rpc"
+ "time"
+
+ "github.com/spiral/errors"
+ "github.com/spiral/goridge/v2"
+)
+
+// plugin2 makes a call to the plugin1 via RPC
+// this is just a simulation of external call FOR TEST
+// you don't need to do such things :)
+type Plugin2 struct {
+}
+
+func (p2 *Plugin2) Init() error {
+ return nil
+}
+
+func (p2 *Plugin2) Serve() chan error {
+ errCh := make(chan error, 1)
+
+ go func() {
+ time.Sleep(time.Second * 3)
+
+ conn, err := net.Dial("tcp", "127.0.0.1:7001")
+ if err != nil {
+ errCh <- errors.E(errors.Serve, err)
+ return
+ }
+ client := rpc.NewClientWithCodec(goridge.NewClientCodec(conn))
+ var ret string
+ err = client.Call("metrics_test.plugin1.Hello", "Valery", &ret)
+ if err != nil {
+ errCh <- err
+ return
+ }
+ if ret != "Hello, username: Valery" {
+ errCh <- errors.E("wrong response")
+ return
+ }
+ // to stop exec
+ errCh <- errors.E(errors.Disabled)
+ return
+ }()
+
+ return errCh
+}
+
+func (p2 *Plugin2) Stop() error {
+ return nil
+}