snowflake/snowflake_test.go
zeroZshadow d8933e1ea5 Added tests for MarshalJSON and UnmarshalJSON
Reduced allocation of MarshalJSON from 65 to 40 B/op
2016-06-10 20:33:36 +02:00

72 lines
1.1 KiB
Go

package snowflake
import "testing"
func TestMarshalJSON(t *testing.T) {
id := ID(13587)
expected := "\"13587\""
bytes, err := id.MarshalJSON()
if err != nil {
t.Error("Unexpected error during MarshalJSON")
}
if string(bytes) != expected {
t.Errorf("Got %s, expected %s", string(bytes), expected)
}
}
func TestUnmarshalJSON(t *testing.T) {
strID := "\"13587\""
expected := ID(13587)
var id ID
err := id.UnmarshalJSON([]byte(strID))
if err != nil {
t.Error("Unexpected error during UnmarshalJSON")
}
if id != expected {
t.Errorf("Got %d, expected %d", id, expected)
}
}
func BenchmarkGenerate(b *testing.B) {
node, _ := NewNode(1)
b.ReportAllocs()
b.ResetTimer()
for n := 0; n < b.N; n++ {
_ = node.Generate()
}
}
func BenchmarkUnmarshal(b *testing.B) {
node, _ := NewNode(1)
id := node.Generate()
var id2 ID
b.ReportAllocs()
b.ResetTimer()
for n := 0; n < b.N; n++ {
_ = id2.UnmarshalJSON(id.Bytes())
}
}
func BenchmarkMarshal(b *testing.B) {
node, _ := NewNode(1)
id := node.Generate()
b.ReportAllocs()
b.ResetTimer()
for n := 0; n < b.N; n++ {
_, _ = id.MarshalJSON()
}
}