gifs/api

Paddy 2014-10-17 Parent:18cb30e077ba

6:eb450538f079 Go to Latest

gifs/api/datastore_test.go

Make UsageTracker an interface, ditch the channel interface. Stop using channels to track usage. Just call functions. Make UsageTracker an interface, so there can be multiple implementations, and create the in-memory implementation.

History
paddy@0 1 package api
paddy@0 2
paddy@0 3 import (
paddy@0 4 "testing"
paddy@0 5 "time"
paddy@0 6
paddy@2 7 "code.secondbit.org/uuid.hg"
paddy@0 8 )
paddy@0 9
paddy@0 10 var datastores = []Datastore{NewMemstore()}
paddy@0 11
paddy@0 12 func compareCollections(expectation, result Collection) (field string, expected, got interface{}) {
paddy@0 13 if !expectation.ID.Equal(result.ID) {
paddy@0 14 return "ID", expectation.ID, result.ID
paddy@0 15 }
paddy@0 16 if expectation.Name != result.Name {
paddy@0 17 return "name", expectation.Name, result.Name
paddy@0 18 }
paddy@0 19 if !expectation.Owner.Equal(result.Owner) {
paddy@0 20 return "owner", expectation.Owner, result.Owner
paddy@0 21 }
paddy@0 22 if !expectation.Created.Equal(result.Created) {
paddy@0 23 return "created", expectation.Created, result.Created
paddy@0 24 }
paddy@0 25 return "", nil, nil
paddy@0 26 }
paddy@0 27
paddy@0 28 func TestCreateCollection(t *testing.T) {
paddy@0 29 for pos, datastore := range datastores {
paddy@0 30 expectation := Collection{
paddy@0 31 ID: uuid.NewID(),
paddy@0 32 Name: "Test Collection",
paddy@0 33 Owner: uuid.NewID(),
paddy@0 34 Created: time.Now(),
paddy@0 35 }
paddy@0 36 err := datastore.CreateCollection(expectation)
paddy@0 37 if err != nil {
paddy@0 38 t.Errorf("Error creating collection in datastore %d: %s\n", pos, err)
paddy@0 39 }
paddy@0 40 result, err := datastore.GetCollectionByID(expectation.ID)
paddy@0 41 if err != nil {
paddy@0 42 t.Errorf("Error retrieving collection in datastore %d: %s\n", pos, err)
paddy@0 43 }
paddy@0 44 field, exp, got := compareCollections(expectation, result)
paddy@0 45 if field != "" {
paddy@0 46 t.Errorf("Collection did not meet expectations for datastore %d. Expected %v for %s, got %v.", pos, exp, field, got)
paddy@0 47 }
paddy@0 48 }
paddy@0 49 }
paddy@2 50
paddy@2 51 func TestUpdateCollection(t *testing.T) {
paddy@2 52 }
paddy@2 53
paddy@2 54 func TestUpdateCollectionCollectionNotFound(t *testing.T) {
paddy@2 55 }
paddy@2 56
paddy@2 57 func TestGetCollectionByDomain(t *testing.T) {
paddy@2 58 }
paddy@2 59
paddy@2 60 func TestGetCollectionByDomainCollectionNotFound(t *testing.T) {
paddy@2 61 }
paddy@2 62
paddy@2 63 func TestGetCollectionByID(t *testing.T) {
paddy@2 64 }
paddy@2 65
paddy@2 66 func TestGetCollectionByIDCollectionNotFound(t *testing.T) {
paddy@2 67 }
paddy@2 68
paddy@2 69 func TestGetCollectionsByUser(t *testing.T) {
paddy@2 70 }
paddy@2 71
paddy@2 72 func TestGetCollectionsByUserNoCollections(t *testing.T) {
paddy@2 73 }
paddy@2 74
paddy@2 75 func TestAddDomainToCollection(t *testing.T) {
paddy@2 76 }
paddy@2 77
paddy@2 78 func TestAddDomainToCollectionDomainAlreadyExists(t *testing.T) {
paddy@2 79 }
paddy@2 80
paddy@2 81 func TestAddDomainToCollectionCollectionNotFound(t *testing.T) {
paddy@2 82 }
paddy@2 83
paddy@2 84 func TestRemoveDomainFromCollection(t *testing.T) {
paddy@2 85 }
paddy@2 86
paddy@2 87 func TestRemoveDomainFromCollectionDomainNotFound(t *testing.T) {
paddy@2 88 }
paddy@2 89
paddy@2 90 func TestGetDomainsByCollection(t *testing.T) {
paddy@2 91 }
paddy@2 92
paddy@2 93 func TestGetDomainsByCollectionNoResults(t *testing.T) {
paddy@2 94 }
paddy@2 95
paddy@2 96 func TestDeleteCollection(t *testing.T) {
paddy@2 97 }
paddy@2 98
paddy@2 99 func TestDeleteCollectionCollectionNotFound(t *testing.T) {
paddy@2 100 }
paddy@2 101
paddy@2 102 func TestGetItemsByCollectionDomain(t *testing.T) {
paddy@2 103 }
paddy@2 104
paddy@2 105 func TestGetItemsByCollectionDomainCollectionNotFound(t *testing.T) {
paddy@2 106 }
paddy@2 107
paddy@2 108 func TestGetItemsByCollectionDomainNoResults(t *testing.T) {
paddy@2 109 }
paddy@2 110
paddy@2 111 func TestGetItemsByCollectionID(t *testing.T) {
paddy@2 112 }
paddy@2 113
paddy@2 114 func TestGetItemsByCollectionIDCollectionNotFound(t *testing.T) {
paddy@2 115 }
paddy@2 116
paddy@2 117 func TestGetItemsByCollectionIDNoResults(t *testing.T) {
paddy@2 118 }
paddy@2 119
paddy@2 120 func TestAddItemToCollection(t *testing.T) {
paddy@2 121 }
paddy@2 122
paddy@2 123 func TestAddItemToCollectionCollectionNotFound(t *testing.T) {
paddy@2 124 }
paddy@2 125
paddy@2 126 func TestAddItemToCollectionItemAlreadyExists(t *testing.T) {
paddy@2 127 }
paddy@2 128
paddy@2 129 func TestGetItemByName(t *testing.T) {
paddy@2 130 }
paddy@2 131
paddy@2 132 func TestGetItemByNameCollectionNotFound(t *testing.T) {
paddy@2 133 }
paddy@2 134
paddy@2 135 func TestGetItemByNameItemNotFound(t *testing.T) {
paddy@2 136 }
paddy@2 137
paddy@2 138 func TestDeleteItem(t *testing.T) {
paddy@2 139 }
paddy@2 140
paddy@2 141 func TestDeleteItemItemNotFound(t *testing.T) {
paddy@2 142 }