1package conversions_test
2
3import (
4	"encoding/binary"
5	"testing"
6	"testing/quick"
7
8	. "github.com/lightstep/lightstep-tracer-go/lightstepoc/internal/conversions"
9
10	. "github.com/onsi/ginkgo"
11	. "github.com/onsi/gomega"
12	"go.opencensus.io/trace"
13)
14
15func TestConversions(t *testing.T) {
16	RegisterFailHandler(Fail)
17	RunSpecs(t, "Conversions Suite")
18}
19
20var _ = Describe("#ConvertTraceID", func() {
21	It("captures the first 8 bytes of the ID", func() {
22		err := quick.Check(func(a uint64, b uint64) bool {
23			var traceID trace.TraceID
24
25			binary.BigEndian.PutUint64(traceID[0:8], a)
26			binary.BigEndian.PutUint64(traceID[8:], b)
27
28			Expect(ConvertTraceID(traceID)).To(Equal(b))
29
30			return true
31		}, nil)
32
33		Expect(err).NotTo(HaveOccurred())
34	})
35})
36
37var _ = Describe("#ConvertSpanID", func() {
38	It("captures the whole ID", func() {
39		err := quick.Check(func(a uint64) bool {
40			var spanID trace.SpanID
41
42			binary.BigEndian.PutUint64(spanID[:], a)
43
44			Expect(ConvertSpanID(spanID)).To(Equal(a))
45
46			return true
47		}, nil)
48
49		Expect(err).NotTo(HaveOccurred())
50	})
51})
52