gitlab.nesad.fit.vutbr.cz/blended/libblended@v0.0.0-20221202124402-2bee159339df/catalog/database_test.go (about) 1 package catalog 2 3 import ( 4 guuid "github.com/google/uuid" 5 "github.com/jinzhu/gorm" 6 "github.com/stretchr/testify/assert" 7 "gitlab.nesad.fit.vutbr.cz/blended/libblended/catalog/models" 8 "testing" 9 ) 10 11 func setupTestCase(t *testing.T) *Database { 12 client, err := NewSQLiteDatabaseClient("./Catalog.db") 13 assert.NotNil(t, client) 14 assert.Nil(t, err) 15 return client 16 } 17 18 func TestCatalogClient_Create(t *testing.T) { 19 client := setupTestCase(t) 20 resource := models.Resource{Name: "Test resource" + guid(), Hash: "aaa"} 21 err := client.Create(&resource) 22 assert.Nil(t, err) 23 } 24 25 func TestCatalogClient_Query(t *testing.T) { 26 client := setupTestCase(t) 27 28 name := guuid.New().String() 29 resource := models.Resource{Name: name, Hash: "aaa"} 30 err := client.Create(&resource) 31 assert.Nil(t, err) 32 33 results, err := client.Query(func(db *gorm.DB) *gorm.DB { 34 return db.Where("name = ?", name).First(&models.Resource{}) 35 }) 36 assert.NotNil(t, results) 37 assert.Nil(t, err) 38 } 39 40 func TestCatalogClient_Delete(t *testing.T) { 41 client := setupTestCase(t) 42 43 name := guuid.New().String() 44 resource := models.Resource{Name: name, Hash: "aaa"} 45 err := client.Create(&resource) 46 assert.Nil(t, err) 47 48 err = client.Delete(&resource) 49 assert.Nil(t, err) 50 51 _, err = client.Query(func(db *gorm.DB) *gorm.DB { 52 return db.Where("name = ?", name).Find(&models.Resource{}) 53 }) 54 assert.Equal(t, "record not found", err.Error()) 55 }