From 4f39e0f14de72c6df5f2133643f2e9461e035fbc Mon Sep 17 00:00:00 2001 From: Marten Seemann Date: Thu, 14 Apr 2016 11:30:22 +0700 Subject: [PATCH] add tests for utils --- utils/utils.go | 1 + utils/utils_suite_test.go | 13 ++++++ utils/utils_test.go | 85 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 99 insertions(+) create mode 100644 utils/utils_suite_test.go create mode 100644 utils/utils_test.go diff --git a/utils/utils.go b/utils/utils.go index a533b3842..5438dbfee 100644 --- a/utils/utils.go +++ b/utils/utils.go @@ -6,6 +6,7 @@ import ( ) // ReadUintN reads N bytes +// ToDo: add tests func ReadUintN(b io.ByteReader, length uint8) (uint64, error) { var res uint64 for i := uint8(0); i < length; i++ { diff --git a/utils/utils_suite_test.go b/utils/utils_suite_test.go new file mode 100644 index 000000000..2874819b8 --- /dev/null +++ b/utils/utils_suite_test.go @@ -0,0 +1,13 @@ +package utils + +import ( + . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" + + "testing" +) + +func TestCrypto(t *testing.T) { + RegisterFailHandler(Fail) + RunSpecs(t, "Utils Suite") +} diff --git a/utils/utils_test.go b/utils/utils_test.go new file mode 100644 index 000000000..3291c76e6 --- /dev/null +++ b/utils/utils_test.go @@ -0,0 +1,85 @@ +package utils + +import ( + "bytes" + + . "github.com/onsi/ginkgo" + . "github.com/onsi/gomega" +) + +var _ = Describe("Utils", func() { + Context("WriteUint64", func() { + It("outputs 8 bytes", func() { + b := &bytes.Buffer{} + WriteUint64(b, uint64(1)) + Expect(b.Len()).To(Equal(8)) + }) + + It("outputs a little endian", func() { + num := uint64(0xFFEEDDCCBBAA9988) + b := &bytes.Buffer{} + WriteUint64(b, num) + Expect(b.Bytes()).To(Equal([]byte{0x88, 0x99, 0xAA, 0xBB, 0xCC, 0xDD, 0xEE, 0xFF})) + }) + }) + + Context("WriteUint32", func() { + It("outputs 4 bytes", func() { + b := &bytes.Buffer{} + WriteUint32(b, uint32(1)) + Expect(b.Len()).To(Equal(4)) + }) + + It("outputs a little endian", func() { + num := uint32(0xEFAC3512) + b := &bytes.Buffer{} + WriteUint32(b, num) + Expect(b.Bytes()).To(Equal([]byte{0x12, 0x35, 0xAC, 0xEF})) + }) + }) + + Context("ReadUint16", func() { + It("reads a little endian", func() { + b := []byte{0x13, 0xEF} + val, err := ReadUint16(bytes.NewReader(b)) + Expect(err).ToNot(HaveOccurred()) + Expect(val).To(Equal(uint16(0xEF13))) + }) + + It("throws an error if less than 2 bytes are passed", func() { + b := []byte{0x13} + _, err := ReadUint16(bytes.NewReader(b)) + Expect(err).To(HaveOccurred()) + }) + }) + + Context("ReadUint32", func() { + It("reads a little endian", func() { + b := []byte{0x12, 0x35, 0xAB, 0xFF} + val, err := ReadUint32(bytes.NewReader(b)) + Expect(err).ToNot(HaveOccurred()) + Expect(val).To(Equal(uint32(0xFFAB3512))) + }) + + It("throws an error if less than 4 bytes are passed", func() { + b := []byte{0x13, 0x34, 0xEA} + _, err := ReadUint32(bytes.NewReader(b)) + Expect(err).To(HaveOccurred()) + }) + }) + + Context("WriteUint16", func() { + It("outputs 2 bytes", func() { + b := &bytes.Buffer{} + WriteUint16(b, uint16(1)) + Expect(b.Len()).To(Equal(2)) + }) + + It("outputs a little endian", func() { + num := uint16(0xFF11) + b := &bytes.Buffer{} + WriteUint16(b, num) + Expect(b.Bytes()).To(Equal([]byte{0x11, 0xFF})) + }) + }) +})