73 lines
1.5 KiB
Go
73 lines
1.5 KiB
Go
package qsql_test
|
|
|
|
import (
|
|
"fmt"
|
|
"testing"
|
|
|
|
_ "github.com/go-sql-driver/mysql"
|
|
"github.com/thehowl/qsql"
|
|
)
|
|
|
|
/*
|
|
database:
|
|
|
|
CREATE DATABASE qsql;
|
|
USE qsql;
|
|
CREATE TABLE qsql_test(
|
|
id INT(11) NOT NULL AUTO_INCREMENT,
|
|
potato VARCHAR(128) NOT NULL,
|
|
apple VARCHAR(128) NOT NULL,
|
|
PRIMARY KEY(id)
|
|
);
|
|
INSERT INTO qsql_test(potato, apple) VALUES ("test", "test");
|
|
*/
|
|
|
|
func TestQuery(t *testing.T) {
|
|
db, err := qsql.Open("mysql", "root@/qsql")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
defer db.Close()
|
|
data, err := db.Query("SELECT * FROM qsql_test")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
for _, row := range data {
|
|
if row["potato"] != "test" || row["apple"] != "test" {
|
|
t.Fatal("Expected row to have potato=test and apple=test, got", row, "instead")
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestQueryRow(t *testing.T) {
|
|
db, err := qsql.Open("mysql", "root@/qsql")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
defer db.Close()
|
|
row, err := db.QueryRow("SELECT * FROM qsql_test")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if row["potato"] != "test" || row["apple"] != "test" {
|
|
t.Fatal("Expected row to have potato=test and apple=test, got", row, "instead")
|
|
}
|
|
}
|
|
|
|
func Example() {
|
|
db, err := qsql.Open("mysql", "root@/")
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
defer db.Close()
|
|
row, err := db.QueryRow("SELECT 5 AS test, 1 AS test_bool, 13.37 AS test_float")
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
fmt.Printf(
|
|
"test: %d | test_bool: %v | test_float: %.3f\n",
|
|
row["test"].Int(), row["test_bool"].Bool(), row["test_float"].Float64(),
|
|
)
|
|
// Output: test: 5 | test_bool: true | test_float: 13.370
|
|
}
|