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  }