func (t *TestBusObject) Go(method string, flags dbus.Flags, ch chan *dbus.Call, args ...interface{}) *dbus.Call {
	go func() {
		time.Sleep(505 * time.Millisecond)
		ch <- t.Call(method, flags, args...)
	}()
	return nil
}
Go calls a method with the given arguments asynchronously.
package dbus
import (
	"context"
	"errors"
	"reflect"
	"strings"
	"sync"
	"time"
	"github.com/godbus/dbus/v5"
)
type testBusObject struct {
	mu sync.Mutex
	svc   *TestBusService
	path  dbus.ObjectPath
	props map[string]interface{}
	calls map[string]func(...interface{}) ([]interface{}, error)
	eCall func(string, ...interface{}) ([]interface{}, error)
}
type TestBusObject struct {
	*testBusObject
	dest string
	conn *testBusConnection
}
func (t *TestBusObject) Call(method string, flags dbus.Flags, args ...interface{}) *dbus.Call {
	t.check()
	method = expand(t.dest, method)
	call := &dbus.Call{
		Destination: t.dest,
		Path:        t.path,
		Method:      method,
		Args:        args,
		Done:        make(chan *dbus.Call, 1),
	}
	call.Done <- call
	t.mu.Lock()
	defer t.mu.Unlock()
	h, ok := t.calls[method]
	if !ok && t.eCall != nil {
		h = func(args ...interface{}) ([]interface{}, error) {
			return t.eCall(method, args...)
		}
	}
	if h == nil {
		call.Err = errors.New("No such method: " + method)
	} else {
		call.Body, call.Err = h(args...)
	}
	return call
}
func (t *TestBusObject) CallWithContext(ctx context.Context, method string, flags dbus.Flags, args ...interface{}) *dbus.Call {
	return t.Call(method, flags, args...)
}