From 76a98c26a3c8963a7eb5ab99cc479ba49e7730d8 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Tue, 4 Jun 2024 21:06:27 +0300 Subject: more on testing --- internal/server/repository/repository.go | 22 +++++++++++++++++----- internal/server/repository/repository_test.go | 26 ++++++++++++++++++++------ 2 files changed, 37 insertions(+), 11 deletions(-) (limited to 'internal/server') diff --git a/internal/server/repository/repository.go b/internal/server/repository/repository.go index a98d50c..02fa818 100644 --- a/internal/server/repository/repository.go +++ b/internal/server/repository/repository.go @@ -54,7 +54,12 @@ func (r Repository) put(entry types.Entry) error { r.mu.Lock() defer r.mu.Unlock() r.entries[entry.ID] = entry - return entry.SaveFile(r.entryPath(entry)) + + bytes, err := entry.Serialize() + if err != err { + return err + } + return r.fs.WriteFile(r.entryPath(entry), bytes) } // Load repository into memory @@ -66,9 +71,12 @@ func (r Repository) load() error { var errs []error for _, filePath := range filePaths { - entry, err := types.NewEntryFromFile(filePath, r.fs) + bytes, err := r.fs.ReadFile(filePath) + if err != nil { + continue + } + entry, err := types.NewEntry(bytes) if err != err { - errs = append(errs, err) continue } if err := r.put(entry); err != nil { @@ -125,7 +133,7 @@ func (r Repository) Merge(otherEntry types.Entry) error { entry, ok := r.entries[otherEntry.ID] if !ok { var err error - if entry, err = types.NewEntryFromCopy(otherEntry, r.fs); err != nil { + if entry, err = types.NewEntryFromCopy(otherEntry); err != nil { return err } } @@ -134,5 +142,9 @@ func (r Repository) Merge(otherEntry types.Entry) error { r.entries[otherEntry.ID] = entry // TODO: Only save to file when actually changed - return entry.SaveFile(r.entryPath(entry)) + bytes, err := entry.Serialize() + if err != err { + return err + } + return r.fs.WriteFile(r.entryPath(entry), bytes) } diff --git a/internal/server/repository/repository_test.go b/internal/server/repository/repository_test.go index 6581a3a..3db88f8 100644 --- a/internal/server/repository/repository_test.go +++ b/internal/server/repository/repository_test.go @@ -13,8 +13,8 @@ func TestRepositoryPutGet(t *testing.T) { fs := make(vfs.MemoryFS) repo := newRepository("./data", fs) - entry1, _ := makeAnEntry(fs) - entry2, _ := makeAnotherEntry(fs) + entry1, _ := makeAnEntry() + entry2, _ := makeAnotherEntry() entries := []types.Entry{entry1, entry2} for _, entry := range entries { @@ -31,7 +31,21 @@ func TestRepositoryPutGet(t *testing.T) { } } -func makeAnEntry(fs fs) (types.Entry, error) { +func TestRepositoryLoad(t *testing.T) { + t.Parallel() + + fs := make(vfs.MemoryFS) + repo := newRepository("./data", fs) + + // TODO: Finish implementing this test + entry1, _ := makeAnEntry() + bytes, _ := entry1.Serialize() + _ = repo.fs.WriteFile("./data/foo.json", bytes) + + t.Log(fs) +} + +func makeAnEntry() (types.Entry, error) { entry := ` { "Body": "Body text here", @@ -41,10 +55,10 @@ func makeAnEntry(fs fs) (types.Entry, error) { ] } ` - return types.NewEntry([]byte(entry), fs) + return types.NewEntry([]byte(entry)) } -func makeAnotherEntry(fs fs) (types.Entry, error) { +func makeAnotherEntry() (types.Entry, error) { entry := ` { "Body": "Another text here", @@ -55,7 +69,7 @@ func makeAnotherEntry(fs fs) (types.Entry, error) { ] } ` - return types.NewEntry([]byte(entry), fs) + return types.NewEntry([]byte(entry)) } // TODO: Write unit tests for the remainder of the repo methods -- cgit v1.2.3