Tests for ByteBuf Go bindings.
Project: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/repo Commit: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/commit/b42dfa9c Tree: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/tree/b42dfa9c Diff: http://git-wip-us.apache.org/repos/asf/lucy-clownfish/diff/b42dfa9c Branch: refs/heads/master Commit: b42dfa9ca9f69575836c208b3d02e903eca85994 Parents: 3e4631b Author: Marvin Humphrey <[email protected]> Authored: Sat Aug 8 19:19:41 2015 -0700 Committer: Marvin Humphrey <[email protected]> Committed: Mon Aug 10 15:11:57 2015 -0700 ---------------------------------------------------------------------- runtime/go/clownfish/bytebuf_test.go | 107 ++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/lucy-clownfish/blob/b42dfa9c/runtime/go/clownfish/bytebuf_test.go ---------------------------------------------------------------------- diff --git a/runtime/go/clownfish/bytebuf_test.go b/runtime/go/clownfish/bytebuf_test.go new file mode 100644 index 0000000..0854f8d --- /dev/null +++ b/runtime/go/clownfish/bytebuf_test.go @@ -0,0 +1,107 @@ +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package clownfish + +import "testing" +import "reflect" + +func TestByteBufCat(t *testing.T) { + bb := NewByteBuf(0) + content := []byte("foo") + bb.Cat(content) + if got := bb.YieldBlob(); !reflect.DeepEqual(got, content) { + t.Errorf("Expected %v, got %v", content, got) + } +} + +func TestByteBufSetSizeGetSize(t *testing.T) { + bb := NewByteBuf(0) + content := []byte("abc") + bb.Cat(content) + bb.SetSize(2) + if got := bb.GetSize(); got != 2 { + t.Errorf("Expected size 2, got %d", got) + } + expected := []byte("ab") + if got := bb.YieldBlob(); !reflect.DeepEqual(got, expected) { + t.Errorf("Expected %v, got %v", expected, got) + } +} + +func TestByteBufGetCapacity(t *testing.T) { + bb := NewByteBuf(5) + if cap := bb.GetCapacity(); cap < 5 { + t.Errorf("Expected at least 5, got %d", cap) + } +} + +func TestByteBufMimic(t *testing.T) { + bb := NewByteBuf(0) + content := []byte("foo") + bb.Cat(content) + other := NewByteBuf(0) + other.Mimic(bb) + if got := other.YieldBlob(); !reflect.DeepEqual(got, content) { + t.Errorf("Expected %v, got %v", content, got) + } +} + +func TestByteBufEquals(t *testing.T) { + bb := NewByteBuf(0) + other := NewByteBuf(0) + content := []byte("foo") + bb.Cat(content) + other.Cat(content) + if !bb.Equals(other) { + t.Errorf("Equals against equal ByteBuf") + } + other.SetSize(2) + if bb.Equals(other) { + t.Errorf("Equals against non-equal ByteBuf") + } + if bb.Equals(42) { + t.Errorf("Equals against arbitrary Go type") + } +} + +func TestByteBufClone(t *testing.T) { + content := []byte("foo") + bb := NewByteBuf(0) + bb.Cat(content) + clone := bb.Clone().(ByteBuf) + if got := clone.YieldBlob(); !reflect.DeepEqual(got, content) { + t.Errorf("Expected %v, got %v", content, got) + } +} + +func TestByteBufCompareTo(t *testing.T) { + bb := NewByteBuf(0) + other := NewByteBuf(0) + content := []byte("foo") + bb.Cat(content) + other.Cat(content) + if got := bb.CompareTo(other); got != 0 { + t.Errorf("CompareTo equal, got %d", got) + } + other.SetSize(2) + if got := bb.CompareTo(other); got <= 0 { + t.Errorf("CompareTo lesser, got %d", got) + } + if got := other.CompareTo(bb); got >= 0 { + t.Errorf("CompareTo greater, got %d", got) + } +}
