2014-07-25 06:03:41 +00:00
|
|
|
package connector
|
|
|
|
|
|
|
|
|
|
import "testing"
|
|
|
|
|
|
2014-11-15 23:54:54 +00:00
|
|
|
type TestRecord struct{}
|
2014-07-25 06:03:41 +00:00
|
|
|
|
2014-11-15 23:54:54 +00:00
|
|
|
func (r TestRecord) ToDelimitedString() string {
|
|
|
|
|
return "test"
|
2014-07-25 06:03:41 +00:00
|
|
|
}
|
|
|
|
|
|
2014-12-10 23:38:19 +00:00
|
|
|
func (r TestRecord) ToJSON() []byte {
|
2014-11-15 23:54:54 +00:00
|
|
|
return []byte("test")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestProcessRecord(t *testing.T) {
|
|
|
|
|
var r1, s1 = TestRecord{}, "Seq1"
|
|
|
|
|
var r2, s2 = TestRecord{}, "Seq2"
|
2014-07-25 06:03:41 +00:00
|
|
|
|
|
|
|
|
b := RecordBuffer{}
|
2014-11-15 23:54:54 +00:00
|
|
|
b.ProcessRecord(r1, s1)
|
2014-07-25 06:03:41 +00:00
|
|
|
|
|
|
|
|
if b.NumRecordsInBuffer() != 1 {
|
|
|
|
|
t.Errorf("NumRecordsInBuffer() want %v", 1)
|
|
|
|
|
}
|
|
|
|
|
|
2014-11-15 23:54:54 +00:00
|
|
|
b.ProcessRecord(r2, s2)
|
2014-07-25 06:03:41 +00:00
|
|
|
|
|
|
|
|
if b.NumRecordsInBuffer() != 2 {
|
|
|
|
|
t.Errorf("NumRecordsInBuffer() want %v", 2)
|
|
|
|
|
}
|
|
|
|
|
|
2014-11-15 23:54:54 +00:00
|
|
|
b.ProcessRecord(r2, s2)
|
2014-07-25 06:03:41 +00:00
|
|
|
|
|
|
|
|
if b.NumRecordsInBuffer() != 2 {
|
|
|
|
|
t.Errorf("NumRecordsInBuffer() want %v", 2)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestSequenceExists(t *testing.T) {
|
2014-11-15 23:54:54 +00:00
|
|
|
var r1, s1 = TestRecord{}, "Seq1"
|
|
|
|
|
var r2, s2 = TestRecord{}, "Seq2"
|
2014-07-25 06:03:41 +00:00
|
|
|
|
|
|
|
|
b := RecordBuffer{}
|
2014-11-15 23:54:54 +00:00
|
|
|
b.ProcessRecord(r1, s1)
|
2014-07-25 06:03:41 +00:00
|
|
|
|
|
|
|
|
if b.sequenceExists(s1) != true {
|
|
|
|
|
t.Errorf("sequenceExists() want %v", true)
|
|
|
|
|
}
|
|
|
|
|
|
2014-11-15 23:54:54 +00:00
|
|
|
b.ProcessRecord(r2, s2)
|
2014-07-25 06:03:41 +00:00
|
|
|
|
|
|
|
|
if b.sequenceExists(s2) != true {
|
|
|
|
|
t.Errorf("sequenceExists() want %v", true)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestFlush(t *testing.T) {
|
2014-11-15 23:54:54 +00:00
|
|
|
var r1, s1 = TestRecord{}, "SeqNum"
|
2014-07-25 06:03:41 +00:00
|
|
|
b := RecordBuffer{}
|
2014-11-15 23:54:54 +00:00
|
|
|
b.ProcessRecord(r1, s1)
|
2014-07-25 06:03:41 +00:00
|
|
|
|
|
|
|
|
b.Flush()
|
|
|
|
|
|
|
|
|
|
if b.NumRecordsInBuffer() != 0 {
|
|
|
|
|
t.Errorf("Count() want %v", 0)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestLastSequenceNumber(t *testing.T) {
|
2014-11-15 23:54:54 +00:00
|
|
|
var r1, s1 = TestRecord{}, "Seq1"
|
|
|
|
|
var r2, s2 = TestRecord{}, "Seq2"
|
2014-07-25 06:03:41 +00:00
|
|
|
|
|
|
|
|
b := RecordBuffer{}
|
2014-11-15 23:54:54 +00:00
|
|
|
b.ProcessRecord(r1, s1)
|
2014-07-25 06:03:41 +00:00
|
|
|
|
|
|
|
|
if b.LastSequenceNumber() != s1 {
|
|
|
|
|
t.Errorf("LastSequenceNumber() want %v", s1)
|
|
|
|
|
}
|
|
|
|
|
|
2014-11-15 23:54:54 +00:00
|
|
|
b.ProcessRecord(r2, s2)
|
2014-07-25 06:03:41 +00:00
|
|
|
|
|
|
|
|
if b.LastSequenceNumber() != s2 {
|
|
|
|
|
t.Errorf("LastSequenceNumber() want %v", s2)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestFirstSequenceNumber(t *testing.T) {
|
2014-11-15 23:54:54 +00:00
|
|
|
var r1, s1 = TestRecord{}, "Seq1"
|
|
|
|
|
var r2, s2 = TestRecord{}, "Seq2"
|
2014-07-25 06:03:41 +00:00
|
|
|
|
|
|
|
|
b := RecordBuffer{}
|
2014-11-15 23:54:54 +00:00
|
|
|
b.ProcessRecord(r1, s1)
|
2014-07-25 06:03:41 +00:00
|
|
|
|
|
|
|
|
if b.FirstSequenceNumber() != s1 {
|
|
|
|
|
t.Errorf("FirstSequenceNumber() want %v", s1)
|
|
|
|
|
}
|
|
|
|
|
|
2014-11-15 23:54:54 +00:00
|
|
|
b.ProcessRecord(r2, s2)
|
2014-07-25 06:03:41 +00:00
|
|
|
|
|
|
|
|
if b.FirstSequenceNumber() != s1 {
|
|
|
|
|
t.Errorf("FirstSequenceNumber() want %v", s1)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestShouldFlush(t *testing.T) {
|
|
|
|
|
const n = 2
|
2014-11-15 23:54:54 +00:00
|
|
|
var r1, s1 = TestRecord{}, "Seq1"
|
|
|
|
|
var r2, s2 = TestRecord{}, "Seq2"
|
2014-07-25 06:03:41 +00:00
|
|
|
|
|
|
|
|
b := RecordBuffer{NumRecordsToBuffer: n}
|
2014-11-15 23:54:54 +00:00
|
|
|
b.ProcessRecord(r1, s1)
|
2014-07-25 06:03:41 +00:00
|
|
|
|
|
|
|
|
if b.ShouldFlush() != false {
|
|
|
|
|
t.Errorf("ShouldFlush() want %v", false)
|
|
|
|
|
}
|
|
|
|
|
|
2014-11-15 23:54:54 +00:00
|
|
|
b.ProcessRecord(r2, s2)
|
2014-07-25 06:03:41 +00:00
|
|
|
|
|
|
|
|
if b.ShouldFlush() != true {
|
|
|
|
|
t.Errorf("ShouldFlush() want %v", true)
|
|
|
|
|
}
|
|
|
|
|
}
|