|
|
@@ -0,0 +1,49 @@
|
|
|
+// Go MySQL Driver - A MySQL-Driver for Go's database/sql package
|
|
|
+//
|
|
|
+// Copyright 2013 The Go-MySQL-Driver Authors. All rights reserved.
|
|
|
+//
|
|
|
+// This Source Code Form is subject to the terms of the Mozilla Public
|
|
|
+// License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
|
|
+// You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
|
+
|
|
|
+package mysql
|
|
|
+
|
|
|
+import (
|
|
|
+ "database/sql/driver"
|
|
|
+ "testing"
|
|
|
+)
|
|
|
+
|
|
|
+func TestInterpolateParams(t *testing.T) {
|
|
|
+ mc := &mysqlConn{
|
|
|
+ buf: newBuffer(nil),
|
|
|
+ maxPacketAllowed: maxPacketSize,
|
|
|
+ cfg: &Config{
|
|
|
+ InterpolateParams: true,
|
|
|
+ },
|
|
|
+ }
|
|
|
+
|
|
|
+ q, err := mc.interpolateParams("SELECT ?+?", []driver.Value{int64(42), "gopher"})
|
|
|
+ if err != nil {
|
|
|
+ t.Errorf("Expected err=nil, got %#v", err)
|
|
|
+ return
|
|
|
+ }
|
|
|
+ expected := `SELECT 42+'gopher'`
|
|
|
+ if q != expected {
|
|
|
+ t.Errorf("Expected: %q\nGot: %q", expected, q)
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+func TestInterpolateParamsTooManyPlaceholders(t *testing.T) {
|
|
|
+ mc := &mysqlConn{
|
|
|
+ buf: newBuffer(nil),
|
|
|
+ maxPacketAllowed: maxPacketSize,
|
|
|
+ cfg: &Config{
|
|
|
+ InterpolateParams: true,
|
|
|
+ },
|
|
|
+ }
|
|
|
+
|
|
|
+ q, err := mc.interpolateParams("SELECT ?+?", []driver.Value{int64(42)})
|
|
|
+ if err != driver.ErrSkip {
|
|
|
+ t.Errorf("Expected err=driver.ErrSkip, got err=%#v, q=%#v", err, q)
|
|
|
+ }
|
|
|
+}
|