summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/hub/src/spreadspace.org/sfive/s5store_test.go29
1 files changed, 21 insertions, 8 deletions
diff --git a/src/hub/src/spreadspace.org/sfive/s5store_test.go b/src/hub/src/spreadspace.org/sfive/s5store_test.go
index 3ce13c0..d4d2119 100644
--- a/src/hub/src/spreadspace.org/sfive/s5store_test.go
+++ b/src/hub/src/spreadspace.org/sfive/s5store_test.go
@@ -217,9 +217,8 @@ func TestAppendAndFetch(t *testing.T) {
out, err := store.GetUpdate(1)
if err != nil {
t.Fatalf("Failed to fetch update: %v", err)
-
}
- out.StartTime = out.StartTime.UTC() // this should be handled by the protocol encoder
+ out.StartTime = out.StartTime.UTC() // this would be handled by the protocol encoder
expected := in
expected.SourceHubUuid = store.GetStoreId()
@@ -259,22 +258,36 @@ func TestReadOnly(t *testing.T) {
t.Fatalf("creating a read-only database should throw an error")
}
- // open read-only db from existing file must succeed
+ // prepare a store with one data-update
store, err := NewStore(testBoltPath, false)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
+
+ upd := updateData
+ upd.StartTime = time.Date(2014, time.August, 24, 14, 35, 33, 847000000, time.UTC)
+ upd.Data.Clients = clientsData
+ in := DataUpdateFull{0, "", -1, sourceData, upd}
+ if err = store.Append(in); err != nil {
+ t.Fatalf("unexpected error: %v", err)
+ }
store.Close()
- store, err = NewStore(testBoltPath, false)
+ // read-only db from existing file must succeed
+ store, err = NewStore(testBoltPath, true)
if err != nil {
t.Fatalf("opening existing store in read-only mode failed: %v", err)
}
- store.Close()
- //
- // TODO: test fetch and append on read-only store
- //
+ // fetching the date-update from read-only store must succeed
+ if _, err := store.GetUpdate(1); err != nil {
+ t.Fatalf("Failed to fetch update: %v", err)
+ }
+
+ // appending to read-only store must fail
+ if err = store.Append(in); err == nil {
+ t.Fatalf("appending to read-only store should throw an error")
+ }
}
//