Developing lightweight computation at the DSG edge

Commit eea9853b authored by Mathias Weber's avatar Mathias Weber
Browse files

wip: tests for high-level api

parent 55b86d68
package antidoteclient package antidoteclient
//import "fmt"
import ( import (
"testing" "testing"
"fmt" "fmt"
"sync" "sync"
"bytes"
"time"
) )
func TestSimple(t *testing.T) { func TestSimple(t *testing.T) {
...@@ -19,7 +20,9 @@ func TestSimple(t *testing.T) { ...@@ -19,7 +20,9 @@ func TestSimple(t *testing.T) {
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
bucket := Bucket{[]byte("bucket")} timestamp := time.Now().Unix()
bucketname := fmt.Sprintf("bucket%d", timestamp)
bucket := Bucket{[]byte(bucketname)}
key := Key("keyCounter") key := Key("keyCounter")
err = bucket.Update(tx, CounterInc(key, 1)) err = bucket.Update(tx, CounterInc(key, 1))
if err != nil { if err != nil {
...@@ -31,12 +34,15 @@ func TestSimple(t *testing.T) { ...@@ -31,12 +34,15 @@ func TestSimple(t *testing.T) {
t.Fatal(err) t.Fatal(err)
} }
fmt.Print(counterVal)
err = tx.Commit() err = tx.Commit()
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
if counterVal != 1 {
t.Fatalf("Counter value should be 1 but is %d", counterVal)
}
} }
func TestSetUpdate(t *testing.T) { func TestSetUpdate(t *testing.T) {
...@@ -51,11 +57,12 @@ func TestSetUpdate(t *testing.T) { ...@@ -51,11 +57,12 @@ func TestSetUpdate(t *testing.T) {
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
timestamp := time.Now().Unix()
bucket := Bucket{[]byte("bucket")} bucketname := fmt.Sprintf("bucket%d", timestamp)
bucket := Bucket{[]byte(bucketname)}
key := Key("keySet") key := Key("keySet")
err = bucket.Update(tx, SetAdd(key, []byte("test1"))) err = bucket.Update(tx, SetAdd(key, []byte("test1"), []byte("value2"), []byte("inset3")))
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
...@@ -66,18 +73,79 @@ func TestSetUpdate(t *testing.T) { ...@@ -66,18 +73,79 @@ func TestSetUpdate(t *testing.T) {
t.Fatal(err) t.Fatal(err)
} }
for _,v := range setVal { err = tx.Commit()
fmt.Println(string(v)) if err != nil {
t.Fatal(err)
}
for _,expected := range []string{"test1", "value2", "inset3"} {
found := false
for _,val := range setVal {
if string(val) == expected {
found = true
break
}
}
if !found {
t.Fatalf("expected value %s not found in result (%s)", expected, setVal)
}
} }
}
err = tx.Commit() func TestMap(t *testing.T) {
client, err := NewClient(Host{"127.0.0.1", 8087})
if err != nil {
t.Fatal(err)
}
defer client.Close()
tx, err := client.StartTransaction()
if err != nil {
t.Fatal(err)
}
timestamp := time.Now().Unix()
bucketname := fmt.Sprintf("bucket%d", timestamp)
bucket := Bucket{[]byte(bucketname)}
key := Key("keyMap")
err = bucket.Update(tx, MapUpdate(key,
CounterInc(Key("counter"), 13),
RegPut(Key("reg"), []byte("Hello World")),
SetAdd(Key("set"), []byte("A"), []byte("B"))))
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
mapVal, err := bucket.ReadMap(tx, key)
if err != nil {
t.Fatal(err)
}
if v, e := mapVal.Counter(Key("counter")); e != nil || v != 13 {
t.Fatalf("Wrong counter value: %d", v)
}
if v,e := mapVal.Reg(Key("reg")); e != nil || !bytes.Equal(v, []byte("Hello World")) {
t.Fatalf("Wrong reg value: %p", v)
}
v,_ := mapVal.Set(Key("set"))
if len(v) != 2 {
t.Fatal("Wrong number of elements in set")
}
for _,expected := range []string{"A", "B"} {
found := false
for _,val := range v {
if string(val) == expected {
found = true
break
}
}
if !found {
t.Fatalf("expected value %s not found in result (%s)", expected, v)
}
}
} }
func TestManyUpdates(t *testing.T) { func testManyUpdates(t *testing.T) {
client, err := NewClient(Host{"127.0.0.1", 8087}) client, err := NewClient(Host{"127.0.0.1", 8087})
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
...@@ -122,7 +190,7 @@ func TestManyUpdates(t *testing.T) { ...@@ -122,7 +190,7 @@ func TestManyUpdates(t *testing.T) {
fmt.Print(counterVal) fmt.Print(counterVal)
} }
func TestReadMany(t *testing.T) { func testReadMany(t *testing.T) {
client, err := NewClient(Host{"127.0.0.1", 8087}) client, err := NewClient(Host{"127.0.0.1", 8087})
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
...@@ -145,12 +213,15 @@ func TestStatic(t *testing.T) { ...@@ -145,12 +213,15 @@ func TestStatic(t *testing.T) {
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
bucket := Bucket{[]byte("bucket")} defer client.Close()
timestamp := time.Now().Unix()
bucketname := fmt.Sprintf("bucket%d", timestamp)
bucket := Bucket{[]byte(bucketname)}
key := Key("keyStatic") key := Key("keyStatic")
tx := client.CreateStaticTransaction() tx := client.CreateStaticTransaction()
err = bucket.Update(tx, CounterInc(key, 42))
err = bucket.Update(tx, CounterInc(key, 1))
if err != nil { if err != nil {
t.Fatal(err) t.Fatal(err)
} }
...@@ -159,5 +230,7 @@ func TestStatic(t *testing.T) { ...@@ -159,5 +230,7 @@ func TestStatic(t *testing.T) {
t.Fatal(err) t.Fatal(err)
} }
fmt.Print(counterVal) if counterVal != 42 {
t.Fatalf("Counter value should be 42 but is %d", counterVal)
}
} }
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment