Files
quic-go/integrationtests/gquic/data_manager_test.go
2017-08-18 12:06:37 +02:00

59 lines
1.0 KiB
Go

package gquic_test
import (
"crypto/md5"
"math/rand"
"time"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
)
type dataManager struct {
data []byte
md5 []byte
}
func (m *dataManager) GenerateData(len int) error {
m.data = make([]byte, len)
r := rand.New(rand.NewSource(int64(time.Now().Nanosecond())))
_, err := r.Read(m.data)
if err != nil {
return err
}
sum := md5.Sum(m.data)
m.md5 = sum[:]
return nil
}
func (m *dataManager) GetData() []byte {
return m.data
}
func (m *dataManager) GetMD5() []byte {
return m.md5
}
var _ = Describe("Data Manager", func() {
dm := dataManager{}
It("generates data", func() {
dm.GenerateData(1337)
data := dm.GetData()
Expect(data).To(HaveLen(1337))
Expect(dm.GetMD5()).To(HaveLen(16))
})
It("generates random data", func() {
dm.GenerateData(1337)
data1 := dm.GetData()
md51 := dm.GetMD5()
dm.GenerateData(1337)
data2 := dm.GetData()
md52 := dm.GetMD5()
Expect(data1).ToNot(Equal(data2))
Expect(md51).ToNot(Equal(md52))
})
})