Browse Source

Add test to reproduce #467

INADA Naoki 9 years ago
parent
commit
7fcf04e893
1 changed files with 49 additions and 0 deletions
  1. 49 0
      connection_test.go

+ 49 - 0
connection_test.go

@@ -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)
+	}
+}