171 lines
3.6 KiB
Go
171 lines
3.6 KiB
Go
package tripsgo
|
|
|
|
import (
|
|
"bytes"
|
|
"fmt"
|
|
"os"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestExecuteQueryInvalidDriverReturnsErr(t *testing.T) {
|
|
defer t.Cleanup(resetDataAccessEnvVars)
|
|
//arrange
|
|
InitLogging(os.Stdout, os.Stdout, os.Stdout)
|
|
os.Setenv("SQL_DRIVER", "not_a_real_driver")
|
|
RebindDataAccessEnvironmentVariables()
|
|
//act
|
|
var query = SelectAllTripsForUserQuery("someUser")
|
|
|
|
_, err := ExecuteQuery(query)
|
|
|
|
//assert
|
|
assert.NotNil(t, err)
|
|
}
|
|
func TestExecuteQueryConnectionSuccess(t *testing.T) {
|
|
//act
|
|
var query = SelectAllTripsForUserQuery("someUser")
|
|
trips, err := ExecuteQuery(query)
|
|
|
|
//assert
|
|
assert.NotNil(t, trips)
|
|
assert.Nil(t, err)
|
|
}
|
|
|
|
func TestExecuteQueryInvalidSqlReturnsErr(t *testing.T) {
|
|
//arrange
|
|
InitLogging(os.Stdout, os.Stdout, os.Stdout)
|
|
|
|
//act
|
|
var invalidSql = "Select Trips From *"
|
|
_, err := ExecuteQuery(invalidSql)
|
|
|
|
//assert
|
|
assert.NotNil(t, err)
|
|
}
|
|
|
|
func TestExecuteQueryInvalidServerReturnsErr(t *testing.T) {
|
|
defer t.Cleanup(resetDataAccessEnvVars)
|
|
|
|
//arrange
|
|
InitLogging(os.Stdout, os.Stdout, os.Stdout)
|
|
os.Setenv("SQL_SERVER", "not_a_real_driver")
|
|
RebindDataAccessEnvironmentVariables()
|
|
|
|
//act
|
|
_, err := ExecuteQuery("SELECT TOP 1 ID FROM Trips")
|
|
|
|
//assert
|
|
assert.NotNil(t, err)
|
|
}
|
|
|
|
func TestExecuteNonQueryInvalidDriverReturnsErr(t *testing.T) {
|
|
defer t.Cleanup(resetDataAccessEnvVars)
|
|
//arrange
|
|
InitLogging(os.Stdout, os.Stdout, os.Stdout)
|
|
os.Setenv("SQL_DRIVER", "not_a_real_driver")
|
|
RebindDataAccessEnvironmentVariables()
|
|
|
|
//act
|
|
_, err := ExecuteNonQuery("fake non query sql")
|
|
|
|
//assert
|
|
assert.NotNil(t, err)
|
|
}
|
|
|
|
func TestExecuteNonQueryConnectionSuccess(t *testing.T) {
|
|
//act
|
|
_, err := ExecuteNonQuery("SELECT TOP 1 ID FROM Trips")
|
|
|
|
//assert
|
|
assert.Nil(t, err)
|
|
}
|
|
|
|
func TestExecuteNonQueryInvalidServerReturnsErr(t *testing.T) {
|
|
defer t.Cleanup(resetDataAccessEnvVars)
|
|
|
|
//arrange
|
|
InitLogging(os.Stdout, os.Stdout, os.Stdout)
|
|
os.Setenv("SQL_SERVER", "not_a_real_server")
|
|
RebindDataAccessEnvironmentVariables()
|
|
|
|
//act
|
|
_, err := ExecuteNonQuery("SELECT TOP 1 ID FROM Trips")
|
|
|
|
//assert
|
|
assert.NotNil(t, err)
|
|
}
|
|
|
|
func TestFirstOrDefaultInvalidDriverReturnsErr(t *testing.T) {
|
|
defer t.Cleanup(resetDataAccessEnvVars)
|
|
//arrange
|
|
InitLogging(os.Stdout, os.Stdout, os.Stdout)
|
|
os.Setenv("SQL_DRIVER", "not_a_real_driver")
|
|
RebindDataAccessEnvironmentVariables()
|
|
|
|
//act
|
|
_, err := FirstOrDefault("fake non query sql")
|
|
|
|
//assert
|
|
assert.NotNil(t, err)
|
|
}
|
|
|
|
func TestFirstOrDefaultConnectionSuccess(t *testing.T) {
|
|
//act
|
|
RebindDataAccessEnvironmentVariables()
|
|
_, err := FirstOrDefault("SELECT TOP 1 ID FROM Trips")
|
|
|
|
//assert
|
|
assert.Nil(t, err)
|
|
}
|
|
|
|
func TestFirstOrDefaultInvalidServerReturnsErr(t *testing.T) {
|
|
defer t.Cleanup(resetDataAccessEnvVars)
|
|
|
|
//arrange
|
|
InitLogging(os.Stdout, os.Stdout, os.Stdout)
|
|
os.Setenv("SQL_SERVER", "not_a_real_server")
|
|
RebindDataAccessEnvironmentVariables()
|
|
|
|
//act
|
|
_, err := FirstOrDefault("SELECT TOP 1 ID FROM Trips")
|
|
|
|
//assert
|
|
assert.NotNil(t, err)
|
|
}
|
|
|
|
func TestExecuteNonQueryWritesLogIfDebugTrue(t *testing.T) {
|
|
defer t.Cleanup(resetDataAccessEnvVars)
|
|
|
|
//arrange
|
|
info := new(bytes.Buffer)
|
|
InitLogging(info, os.Stdout, os.Stdout)
|
|
var tr bool = true
|
|
debug = &tr
|
|
|
|
//act
|
|
ExecuteNonQuery("SELECT TOP 1 ID FROM Trips")
|
|
|
|
//assert
|
|
actual := fmt.Sprint(info)
|
|
assert.True(t, actual != "")
|
|
}
|
|
|
|
func TestFirstOrDefaultWritesLogIfDebugTrue(t *testing.T) {
|
|
defer t.Cleanup(resetDataAccessEnvVars)
|
|
|
|
//arrange
|
|
info := new(bytes.Buffer)
|
|
InitLogging(info, os.Stdout, os.Stdout)
|
|
var tr bool = true
|
|
debug = &tr
|
|
|
|
//act
|
|
FirstOrDefault("SELECT TOP 1 ID FROM Trips")
|
|
|
|
//assert
|
|
actual := fmt.Sprint(info)
|
|
assert.True(t, actual != "")
|
|
}
|