package utils

import (
	"database/sql"

	"github.com/go-sql-driver/mysql"
	"github.com/onsi/gomega"
)

func GetErrorCode(err error) uint16 {
	if e, ok := err.(*mysql.MySQLError); ok {
		return e.Number
	}
	return 0
}

// MustExecError mut fail to execute sql or fatal
func MustExecError(db *sql.DB, errid uint16, query string, args ...interface{}) {
	_, err := db.Exec(query, args...)
	gomega.Expect(GetErrorCode(err)).To(gomega.Equal(errid))
}

func CheckCreateTable(db *sql.DB, tableName string, sql string) {
	data := ReadAll(MustQuery(db, "SHOW CREATE TABLE "+tableName))
	gomega.Expect(data[0][1]).To(gomega.Equal(sql))
}
