gifs/api

Paddy 2014-10-17 Parent:18cb30e077ba

5:b5d88d57d587 Go to Latest

gifs/api/datastore_test.go

Simplify upload. Simplify the upload code by not running the hashing async, which requires fewer copy operations and less channel synchronization. Also, take advantage of the fact that PipeWriters and PipeReaders will return an error to the PipeReaders/PipeWriters (respectively) when read/write is called (respectively) to avoid passing back errors through channels.

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 }