3 changed files with 68 additions and 164 deletions
@ -1,67 +0,0 @@ |
|||||
package boltdb |
|
||||
|
|
||||
import ( |
|
||||
"os" |
|
||||
"testing" |
|
||||
"time" |
|
||||
|
|
||||
"github.com/maxibanki/golang-url-shortener/stores/shared" |
|
||||
) |
|
||||
|
|
||||
func getStore(t *testing.T) (*BoltStore, func()) { |
|
||||
store, err := New("test.db") |
|
||||
if err != nil { |
|
||||
t.Errorf("could not get store: %v", err) |
|
||||
} |
|
||||
return store, func() { |
|
||||
store.Close() |
|
||||
os.Remove("test.db") |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
func TestBoltDB(t *testing.T) { |
|
||||
store, cleanup := getStore(t) |
|
||||
givenEntryID := "x1df" |
|
||||
givenEntry := shared.Entry{ |
|
||||
DeletionURL: "foo", |
|
||||
RemoteAddr: "127.0.0.1", |
|
||||
Public: shared.EntryPublicData{ |
|
||||
CreatedOn: time.Now(), |
|
||||
URL: "google.com", |
|
||||
}, |
|
||||
} |
|
||||
if err := store.CreateEntry(givenEntry, givenEntryID, "google01234"); err != nil { |
|
||||
t.Errorf("could not create entry: %v", err) |
|
||||
} |
|
||||
entryBeforeIncreasement, err := store.GetEntryByID(givenEntryID) |
|
||||
if err != nil { |
|
||||
t.Errorf("could not get entry: %v", err) |
|
||||
} |
|
||||
if err := store.IncreaseVisitCounter(givenEntryID); err != nil { |
|
||||
t.Errorf("could not increase visit counter: %v", err) |
|
||||
} |
|
||||
entryAfterIncreasement, err := store.GetEntryByID(givenEntryID) |
|
||||
if err != nil { |
|
||||
t.Errorf("could not get entry: %v", err) |
|
||||
} |
|
||||
if entryBeforeIncreasement.Public.VisitCount+1 != entryAfterIncreasement.Public.VisitCount { |
|
||||
t.Errorf("Visit counter hasn't increased; before: %d, after: %d", entryBeforeIncreasement.Public.VisitCount, entryAfterIncreasement.Public.VisitCount) |
|
||||
} |
|
||||
if err := store.RegisterVisitor(givenEntryID, "whooop", shared.Visitor{ |
|
||||
IP: "foo", |
|
||||
Referer: "foo", |
|
||||
}); err != nil { |
|
||||
t.Errorf("Failed to register visitor: %v", err) |
|
||||
} |
|
||||
visitors, err := store.GetVisitors(givenEntryID) |
|
||||
if err != nil { |
|
||||
t.Errorf("could not get visitors: %v", err) |
|
||||
} |
|
||||
if len(visitors) != 1 { |
|
||||
t.Errorf("Expected visitor length: %d; got: %d", err) |
|
||||
} |
|
||||
if err := store.DeleteEntry(givenEntryID); err != nil { |
|
||||
t.Errorf("could not delte entry: %v", err) |
|
||||
} |
|
||||
cleanup() |
|
||||
} |
|
||||
Loading…
Reference in new issue