diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/hub/src/spreadspace.org/sfive/s5store_test.go | 29 |
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") + } } // |