kinesis-consumer/record_buffer_test.go
Harlow Ward 18173842fb Use AWS SDK
Limit the amount of library dependencies by using the official AWS SDK.

https://github.com/harlow/kinesis-connectors/issues/19
2015-08-15 23:17:49 -07:00

98 lines
1.8 KiB
Go

package connector
import "testing"
type TestRecord struct{}
func (r TestRecord) ToDelimitedString() string {
return "test"
}
func (r TestRecord) ToJSON() []byte {
return []byte("test")
}
func TestProcessRecord(t *testing.T) {
var r1, s1 = TestRecord{}, "Seq1"
var r2, s2 = TestRecord{}, "Seq2"
b := RecordBuffer{}
b.ProcessRecord(r1, s1)
if b.NumRecordsInBuffer() != 1 {
t.Errorf("NumRecordsInBuffer() want %v", 1)
}
b.ProcessRecord(r2, s2)
if b.NumRecordsInBuffer() != 2 {
t.Errorf("NumRecordsInBuffer() want %v", 2)
}
}
func TestFlush(t *testing.T) {
var r1, s1 = TestRecord{}, "SeqNum"
b := RecordBuffer{}
b.ProcessRecord(r1, s1)
b.Flush()
if b.NumRecordsInBuffer() != 0 {
t.Errorf("Count() want %v", 0)
}
}
func TestLastSequenceNumber(t *testing.T) {
var r1, s1 = TestRecord{}, "Seq1"
var r2, s2 = TestRecord{}, "Seq2"
b := RecordBuffer{}
b.ProcessRecord(r1, s1)
if b.LastSequenceNumber() != s1 {
t.Errorf("LastSequenceNumber() want %v", s1)
}
b.ProcessRecord(r2, s2)
if b.LastSequenceNumber() != s2 {
t.Errorf("LastSequenceNumber() want %v", s2)
}
}
func TestFirstSequenceNumber(t *testing.T) {
var r1, s1 = TestRecord{}, "Seq1"
var r2, s2 = TestRecord{}, "Seq2"
b := RecordBuffer{}
b.ProcessRecord(r1, s1)
if b.FirstSequenceNumber() != s1 {
t.Errorf("FirstSequenceNumber() want %v", s1)
}
b.ProcessRecord(r2, s2)
if b.FirstSequenceNumber() != s1 {
t.Errorf("FirstSequenceNumber() want %v", s1)
}
}
func TestShouldFlush(t *testing.T) {
const n = 2
var r1, s1 = TestRecord{}, "Seq1"
var r2, s2 = TestRecord{}, "Seq2"
b := RecordBuffer{NumRecordsToBuffer: n}
b.ProcessRecord(r1, s1)
if b.ShouldFlush() != false {
t.Errorf("ShouldFlush() want %v", false)
}
b.ProcessRecord(r2, s2)
if b.ShouldFlush() != true {
t.Errorf("ShouldFlush() want %v", true)
}
}