Skip to content

Commit

Permalink
#97 Working tests and linting
Browse files Browse the repository at this point in the history
  • Loading branch information
docktermj committed Jun 11, 2024
1 parent b0ace1b commit d055769
Show file tree
Hide file tree
Showing 16 changed files with 287 additions and 355 deletions.
101 changes: 69 additions & 32 deletions checker/checker_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,17 @@ import (

"github.com/senzing-garage/go-databasing/connector"
"github.com/senzing-garage/go-databasing/sqlexecutor"
"github.com/senzing-garage/go-observing/observer"
"github.com/stretchr/testify/require"
)

var (
observerSingleton = &observer.NullObserver{
ID: "Observer 1",
IsSilent: true,
}
)

// ----------------------------------------------------------------------------
// Test interface functions
// ----------------------------------------------------------------------------
Expand All @@ -33,9 +41,7 @@ func TestBasicChecker_IsSchemaInstalled_True(test *testing.T) {

// Perform test.

testObject := &BasicChecker{
DatabaseConnector: databaseConnector,
}
testObject := getTestObject(ctx, test)
isSchemaInstalled, err := testObject.IsSchemaInstalled(ctx)
if isSchemaInstalled {
require.NoError(test, err)
Expand All @@ -44,51 +50,82 @@ func TestBasicChecker_IsSchemaInstalled_True(test *testing.T) {
}
}

func TestBasicChecker_RecordCount(test *testing.T) {
ctx := context.TODO()
testObject := getTestObject(ctx, test)
_, err := testObject.RecordCount(ctx)
require.NoError(test, err)
}

func TestBasicChecker_RegisterObserver(test *testing.T) {
ctx := context.TODO()
testObject := getTestObject(ctx, test)
err := testObject.RegisterObserver(ctx, observerSingleton)
require.NoError(test, err)
}

func TestBasicChecker_SetLogLevel(test *testing.T) {
ctx := context.TODO()
testObject := getTestObject(ctx, test)
err := testObject.SetLogLevel(ctx, "DEBUG")
require.NoError(test, err)
}

func TestBasicChecker_SetLogLevel_badLevelName(test *testing.T) {
ctx := context.TODO()
testObject := getTestObject(ctx, test)
err := testObject.SetLogLevel(ctx, "BADLEVELNAME")
require.Error(test, err)
}

func TestBasicChecker_SetObserverOrigin(test *testing.T) {
ctx := context.TODO()
testObject := getTestObject(ctx, test)
testObject.SetObserverOrigin(ctx, "Test observer origin")
}

func TestBasicChecker_UnregisterObserver(test *testing.T) {
ctx := context.TODO()
testObject := getTestObject(ctx, test)

// TODO: This needs to be removed.
err := testObject.RegisterObserver(ctx, observerSingleton)
require.NoError(test, err)

err = testObject.UnregisterObserver(ctx, observerSingleton)
require.NoError(test, err)
}

func TestBasicChecker_IsSchemaInstalled_False(test *testing.T) {
ctx := context.TODO()
err := refreshSqliteDatabase(sqliteDatabaseFilename)
require.NoError(test, err)
databaseConnector, err := connector.NewConnector(ctx, sqliteDatabaseURL)
require.NoError(test, err)
testObject := &BasicChecker{
DatabaseConnector: databaseConnector,
}
testObject := getTestObject(ctx, test)
_, err = testObject.IsSchemaInstalled(ctx)
require.Error(test, err, "An error should have been returned")
}

// ----------------------------------------------------------------------------
// Test harness
// Internal functions
// ----------------------------------------------------------------------------

func TestMain(m *testing.M) {
err := setup()
if err != nil {
fmt.Print(err)
os.Exit(1)
}
code := m.Run()
err = teardown()
if err != nil {
fmt.Print(err)
func getBasicChecker(ctx context.Context, test *testing.T) *BasicChecker {
databaseConnector, err := connector.NewConnector(ctx, sqliteDatabaseURL)
require.NoError(test, err)
result := &BasicChecker{
DatabaseConnector: databaseConnector,
}
os.Exit(code)
}

func setup() error {
var err error
return err
err = result.RegisterObserver(ctx, observerSingleton)
require.NoError(test, err)
err = result.SetLogLevel(ctx, "TRACE")
require.NoError(test, err)
return result
}

func teardown() error {
var err error
return err
func getTestObject(ctx context.Context, test *testing.T) Checker {
return getBasicChecker(ctx, test)
}

// ----------------------------------------------------------------------------
// Utility functions
// ----------------------------------------------------------------------------

func refreshSqliteDatabase(databaseFilename string) error {
err := os.Remove(databaseFilename)
if err != nil {
Expand Down
39 changes: 5 additions & 34 deletions connector/connector_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@ package connector

import (
"context"
"fmt"
"os"
"testing"

"github.com/stretchr/testify/require"
Expand All @@ -18,73 +16,46 @@ func TestNewConnector_sqlite(test *testing.T) {
databaseURL := "sqlite3://na:na@/tmp/sqlite/G2C.db"
_, err := NewConnector(ctx, databaseURL)
require.NoError(test, err)

}

func TestNewConnector_postgresql1(test *testing.T) {
ctx := context.TODO()
databaseURL := "postgresql://username:password@hostname:5432:database/?schema=schemaname"
_, err := NewConnector(ctx, databaseURL)
require.NoError(test, err)

}

func TestNewConnector_postgresql2(test *testing.T) {
ctx := context.TODO()
databaseURL := "postgresql://username:password@hostname:5432/database/?schema=schemaname"
_, err := NewConnector(ctx, databaseURL)
require.NoError(test, err)

}

func TestNewConnector_mysql1(test *testing.T) {
ctx := context.TODO()
databaseURL := "mysql://username:password@hostname:3306/database?schema=schemaname"
_, err := NewConnector(ctx, databaseURL)
require.NoError(test, err)

}

func TestNewConnector_mysql2(test *testing.T) {
ctx := context.TODO()
databaseURL := "mysql://username:password@hostname:3306/?schema=schemaname"
_, err := NewConnector(ctx, databaseURL)
require.NoError(test, err)

}

func TestNewConnector_mssql(test *testing.T) {
ctx := context.TODO()
databaseURL := "mssql://username:password@hostname:3306/database?schema=schemaname"
_, err := NewConnector(ctx, databaseURL)
require.NoError(test, err)

}

// ----------------------------------------------------------------------------
// Test harness
// ----------------------------------------------------------------------------

func TestMain(m *testing.M) {
err := setup()
if err != nil {
fmt.Print(err)
os.Exit(1)
}
code := m.Run()
err = teardown()
if err != nil {
fmt.Print(err)
}
os.Exit(code)
}

func setup() error {
var err error
return err
}

func teardown() error {
var err error
return err
func TestNewConnector_badURLProtocol(test *testing.T) {
ctx := context.TODO()
databaseURL := "badProtocol://username:password@hostname:3306/database?schema=schemaname"
_, err := NewConnector(ctx, databaseURL)
require.Error(test, err)
}
30 changes: 0 additions & 30 deletions connectordb2/connectordb2_test.go
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
package connectordb2

import (
"fmt"
"os"
"testing"
)

Expand All @@ -18,31 +16,3 @@ func TestNewConnector(test *testing.T) {
// _, err = databaseConnector.Connect(ctx)
// require.NoError(test, err)
}

// ----------------------------------------------------------------------------
// Test harness
// ----------------------------------------------------------------------------

func TestMain(m *testing.M) {
err := setup()
if err != nil {
fmt.Print(err)
os.Exit(1)
}
code := m.Run()
err = teardown()
if err != nil {
fmt.Print(err)
}
os.Exit(code)
}

func setup() error {
var err error
return err
}

func teardown() error {
var err error
return err
}
11 changes: 8 additions & 3 deletions connectormssql/connectormssql_examples_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,12 @@ import (
"fmt"
)

func printErr(err error) {
if err != nil {
fmt.Println(err)
}
}

// ----------------------------------------------------------------------------
// Examples for godoc documentation
// ----------------------------------------------------------------------------
Expand All @@ -15,8 +21,7 @@ func ExampleNewConnector() {
// See https://github.com/microsoft/go-mssqldb#connection-parameters-and-dsn
configuration := "user id=sa;password=Passw0rd;database=master;server=localhost"
databaseConnector, err := NewConnector(ctx, configuration)
if err != nil {
fmt.Println(err, databaseConnector)
}
printErr(err)
_ = databaseConnector // Faux use of databaseConnector
// Output:
}
30 changes: 0 additions & 30 deletions connectormssql/connectormssql_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@ package connectormssql

import (
"context"
"fmt"
"os"
"testing"

"github.com/stretchr/testify/require"
Expand All @@ -21,31 +19,3 @@ func TestNewConnector(test *testing.T) {
_, err = databaseConnector.Connect(ctx)
require.NoError(test, err)
}

// ----------------------------------------------------------------------------
// Test harness
// ----------------------------------------------------------------------------

func TestMain(m *testing.M) {
err := setup()
if err != nil {
fmt.Print(err)
os.Exit(1)
}
code := m.Run()
err = teardown()
if err != nil {
fmt.Print(err)
}
os.Exit(code)
}

func setup() error {
var err error
return err
}

func teardown() error {
var err error
return err
}
11 changes: 8 additions & 3 deletions connectormysql/connectormysql_examples_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,12 @@ import (
"github.com/go-sql-driver/mysql"
)

func printErr(err error) {
if err != nil {
fmt.Println(err)
}
}

// ----------------------------------------------------------------------------
// Examples for godoc documentation
// ----------------------------------------------------------------------------
Expand All @@ -26,8 +32,7 @@ func ExampleNewConnector() {
DBName: "G2",
}
databaseConnector, err := NewConnector(ctx, configuration)
if err != nil {
fmt.Println(err, databaseConnector)
}
printErr(err)
_ = databaseConnector // Faux use of databaseConnector
// Output:
}
30 changes: 0 additions & 30 deletions connectormysql/connectormysql_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@ package connectormysql

import (
"context"
"fmt"
"os"
"testing"

"github.com/go-sql-driver/mysql"
Expand All @@ -29,31 +27,3 @@ func TestNewConnector(test *testing.T) {
_, err = databaseConnector.Connect(ctx)
require.NoError(test, err)
}

// ----------------------------------------------------------------------------
// Test harness
// ----------------------------------------------------------------------------

func TestMain(m *testing.M) {
err := setup()
if err != nil {
fmt.Print(err)
os.Exit(1)
}
code := m.Run()
err = teardown()
if err != nil {
fmt.Print(err)
}
os.Exit(code)
}

func setup() error {
var err error
return err
}

func teardown() error {
var err error
return err
}
Loading

0 comments on commit d055769

Please sign in to comment.