github.com/arieschain/arieschain@v0.0.0-20191023063405-37c074544356/rpc/utils_test.go (about)

     1  package rpc
     2  
     3  import (
     4  	"strings"
     5  	"testing"
     6  )
     7  
     8  func TestNewID(t *testing.T) {
     9  	hexchars := "0123456789ABCDEFabcdef"
    10  	for i := 0; i < 100; i++ {
    11  		id := string(NewID())
    12  		if !strings.HasPrefix(id, "0x") {
    13  			t.Fatalf("invalid ID prefix, want '0x...', got %s", id)
    14  		}
    15  
    16  		id = id[2:]
    17  		if len(id) == 0 || len(id) > 32 {
    18  			t.Fatalf("invalid ID length, want len(id) > 0 && len(id) <= 32), got %d", len(id))
    19  		}
    20  
    21  		for i := 0; i < len(id); i++ {
    22  			if strings.IndexByte(hexchars, id[i]) == -1 {
    23  				t.Fatalf("unexpected byte, want any valid hex char, got %c", id[i])
    24  			}
    25  		}
    26  	}
    27  }