github.com/kaleido-io/firefly@v0.0.0-20210622132723-8b4b6aacb971/internal/database/sqlite/sqlite_test.go (about)

     1  // Copyright © 2021 Kaleido, Inc.
     2  //
     3  // SPDX-License-Identifier: Apache-2.0
     4  //
     5  // Licensed under the Apache License, Version 2.0 (the "License");
     6  // you may not use this file except in compliance with the License.
     7  // You may obtain a copy of the License at
     8  //
     9  //     http://www.apache.org/licenses/LICENSE-2.0
    10  //
    11  // Unless required by applicable law or agreed to in writing, software
    12  // distributed under the License is distributed on an "AS IS" BASIS,
    13  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    14  // See the License for the specific language governing permissions and
    15  // limitations under the License.
    16  
    17  package sqlite
    18  
    19  import (
    20  	"context"
    21  	"testing"
    22  
    23  	sq "github.com/Masterminds/squirrel"
    24  	"github.com/kaleido-io/firefly/internal/config"
    25  	"github.com/kaleido-io/firefly/internal/database/sqlcommon"
    26  	"github.com/kaleido-io/firefly/mocks/databasemocks"
    27  	"github.com/stretchr/testify/assert"
    28  )
    29  
    30  func TestSQLiteProvider(t *testing.T) {
    31  	sqlite := &SQLite{}
    32  	dcb := &databasemocks.Callbacks{}
    33  	prefix := config.NewPluginConfig("unittest")
    34  	sqlite.InitPrefix(prefix)
    35  	prefix.Set(sqlcommon.SQLConfDatasourceURL, "!wrong://")
    36  	err := sqlite.Init(context.Background(), prefix, dcb)
    37  	assert.NoError(t, err)
    38  	_, err = sqlite.GetMigrationDriver(sqlite.DB())
    39  	assert.Error(t, err)
    40  
    41  	assert.Equal(t, "sqlite", sqlite.Name())
    42  	assert.Equal(t, sq.Dollar, sqlite.PlaceholderFormat())
    43  
    44  	assert.Equal(t, "seq", sqlite.SequenceField(""))
    45  	assert.Equal(t, "m.seq", sqlite.SequenceField("m"))
    46  
    47  	insert := sq.Insert("test").Columns("col1").Values("val1")
    48  	insert, query := sqlite.UpdateInsertForSequenceReturn(insert)
    49  	sql, _, err := insert.ToSql()
    50  	assert.NoError(t, err)
    51  	assert.Equal(t, "INSERT INTO test (col1) VALUES (?)", sql)
    52  	assert.False(t, query)
    53  }