api_test.go 1.09 KB
Newer Older
1 2 3
package rpc

import (
Taylor Gerring's avatar
Taylor Gerring committed
4
	"encoding/json"
5 6 7 8 9
	"sync"
	"testing"
	"time"
)

Taylor Gerring's avatar
Taylor Gerring committed
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
func TestWeb3Sha3(t *testing.T) {
	jsonstr := `{"jsonrpc":"2.0","method":"web3_sha3","params":["0x68656c6c6f20776f726c64"],"id":64}`
	expected := "0x47173285a8d7341e5e972fc677286384f802f8ef42a5ec5f03bbfa254cb01fad"

	api := &EthereumApi{}

	var req RpcRequest
	json.Unmarshal([]byte(jsonstr), &req)

	var response interface{}
	_ = api.GetRequestReply(&req, &response)

	if response.(string) != expected {
		t.Errorf("Expected %s got %s", expected, response)
	}
}

27
func TestFilterClose(t *testing.T) {
obscuren's avatar
obscuren committed
28
	t.Skip()
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 54 55 56
	api := &EthereumApi{
		logs:     make(map[int]*logFilter),
		messages: make(map[int]*whisperFilter),
		quit:     make(chan struct{}),
	}

	filterTickerTime = 1
	api.logs[0] = &logFilter{}
	api.messages[0] = &whisperFilter{}
	var wg sync.WaitGroup
	wg.Add(1)
	go api.start()
	go func() {
		select {
		case <-time.After(500 * time.Millisecond):
			api.stop()
			wg.Done()
		}
	}()
	wg.Wait()
	if len(api.logs) != 0 {
		t.Error("expected logs to be empty")
	}

	if len(api.messages) != 0 {
		t.Error("expected messages to be empty")
	}
}