github.com/kaleido-io/firefly@v0.0.0-20210622132723-8b4b6aacb971/internal/database/ql/ql_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 ql
    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 TestQLProvider(t *testing.T) {
    31  	ql := &QL{}
    32  	dcb := &databasemocks.Callbacks{}
    33  	prefix := config.NewPluginConfig("unittest")
    34  	ql.InitPrefix(prefix)
    35  	prefix.Set(sqlcommon.SQLConfDatasourceURL, "!bad connection")
    36  	err := ql.Init(context.Background(), prefix, dcb)
    37  	assert.NoError(t, err)
    38  	_, err = ql.GetMigrationDriver(ql.DB())
    39  	assert.Error(t, err)
    40  
    41  	assert.Equal(t, "ql", ql.Name())
    42  	assert.Equal(t, sq.Dollar, ql.PlaceholderFormat())
    43  
    44  	assert.Equal(t, "id()", ql.SequenceField(""))
    45  	assert.Equal(t, "id(m)", ql.SequenceField("m"))
    46  
    47  	insert := sq.Insert("test").Columns("col1").Values("val1")
    48  	insert, query := ql.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  }