Refactor test setup/cleanup

This commit is contained in:
TwinProduction 2021-07-16 19:24:12 -04:00 committed by Chris
parent 2c95cce7b3
commit 8b5e5f54cc

View File

@ -82,21 +82,21 @@ var (
}
)
func TestStore_GetServiceStatusByKey(t *testing.T) {
type Scenario struct {
Name string
Store Store
}
func initStoresAndBaseScenarios(t *testing.T, testName string) []*Scenario {
memoryStore, err := memory.NewStore("")
if err != nil {
t.Fatal("failed to create store:", err.Error())
}
databaseStore, err := database.NewStore("sqlite", t.TempDir()+"/TestStore_GetServiceStatusByKey.db")
databaseStore, err := database.NewStore("sqlite", t.TempDir()+"/"+testName+".db")
if err != nil {
t.Fatal("failed to create store:", err.Error())
}
defer databaseStore.Close()
type Scenario struct {
Name string
Store Store
}
scenarios := []Scenario{
return []*Scenario{
{
Name: "memory",
Store: memoryStore,
@ -106,6 +106,17 @@ func TestStore_GetServiceStatusByKey(t *testing.T) {
Store: databaseStore,
},
}
}
func cleanUp(scenarios []*Scenario) {
for _, scenario := range scenarios {
scenario.Store.Close()
}
}
func TestStore_GetServiceStatusByKey(t *testing.T) {
scenarios := initStoresAndBaseScenarios(t, "TestStore_GetServiceStatusByKey")
defer cleanUp(scenarios)
firstResult := testSuccessfulResult
firstResult.Timestamp = now.Add(-time.Minute)
secondResult := testUnsuccessfulResult
@ -149,29 +160,8 @@ func TestStore_GetServiceStatusByKey(t *testing.T) {
}
func TestStore_GetServiceStatusForMissingStatusReturnsNil(t *testing.T) {
memoryStore, err := memory.NewStore("")
if err != nil {
t.Fatal("failed to create store:", err.Error())
}
databaseStore, err := database.NewStore("sqlite", t.TempDir()+"/TestStore_GetServiceStatusForMissingStatusReturnsNil.db")
if err != nil {
t.Fatal("failed to create store:", err.Error())
}
defer databaseStore.Close()
type Scenario struct {
Name string
Store Store
}
scenarios := []Scenario{
{
Name: "memory",
Store: memoryStore,
},
{
Name: "database",
Store: databaseStore,
},
}
scenarios := initStoresAndBaseScenarios(t, "TestStore_GetServiceStatusForMissingStatusReturnsNil")
defer cleanUp(scenarios)
for _, scenario := range scenarios {
t.Run(scenario.Name, func(t *testing.T) {
scenario.Store.Insert(&testService, &testSuccessfulResult)
@ -192,29 +182,8 @@ func TestStore_GetServiceStatusForMissingStatusReturnsNil(t *testing.T) {
}
func TestStore_GetAllServiceStatuses(t *testing.T) {
memoryStore, err := memory.NewStore("")
if err != nil {
t.Fatal("failed to create store:", err.Error())
}
databaseStore, err := database.NewStore("sqlite", t.TempDir()+"/TestStore_GetAllServiceStatuses.db")
if err != nil {
t.Fatal("failed to create store:", err.Error())
}
defer databaseStore.Close()
type Scenario struct {
Name string
Store Store
}
scenarios := []Scenario{
{
Name: "memory",
Store: memoryStore,
},
{
Name: "database",
Store: databaseStore,
},
}
scenarios := initStoresAndBaseScenarios(t, "TestStore_GetAllServiceStatuses")
defer cleanUp(scenarios)
firstResult := testSuccessfulResult
secondResult := testUnsuccessfulResult
for _, scenario := range scenarios {
@ -242,29 +211,8 @@ func TestStore_GetAllServiceStatuses(t *testing.T) {
}
func TestStore_GetAllServiceStatusesWithResultsAndEvents(t *testing.T) {
memoryStore, err := memory.NewStore("")
if err != nil {
t.Fatal("failed to create store:", err.Error())
}
databaseStore, err := database.NewStore("sqlite", t.TempDir()+"/TestStore_GetAllServiceStatusesWithResultsAndEvents.db")
if err != nil {
t.Fatal("failed to create store:", err.Error())
}
defer databaseStore.Close()
type Scenario struct {
Name string
Store Store
}
scenarios := []Scenario{
{
Name: "memory",
Store: memoryStore,
},
{
Name: "database",
Store: databaseStore,
},
}
scenarios := initStoresAndBaseScenarios(t, "TestStore_GetAllServiceStatusesWithResultsAndEvents")
defer cleanUp(scenarios)
firstResult := testSuccessfulResult
secondResult := testUnsuccessfulResult
for _, scenario := range scenarios {
@ -292,29 +240,8 @@ func TestStore_GetAllServiceStatusesWithResultsAndEvents(t *testing.T) {
}
func TestStore_GetServiceStatusPage1IsHasMoreRecentResultsThanPage2(t *testing.T) {
memoryStore, err := memory.NewStore("")
if err != nil {
t.Fatal("failed to create store:", err.Error())
}
databaseStore, err := database.NewStore("sqlite", t.TempDir()+"/TestStore_GetServiceStatusPage1IsHasMoreRecentResultsThanPage2.db")
if err != nil {
t.Fatal("failed to create store:", err.Error())
}
defer databaseStore.Close()
type Scenario struct {
Name string
Store Store
}
scenarios := []Scenario{
{
Name: "memory",
Store: memoryStore,
},
{
Name: "database",
Store: databaseStore,
},
}
scenarios := initStoresAndBaseScenarios(t, "TestStore_GetServiceStatusPage1IsHasMoreRecentResultsThanPage2")
defer cleanUp(scenarios)
firstResult := testSuccessfulResult
firstResult.Timestamp = now.Add(-time.Minute)
secondResult := testUnsuccessfulResult
@ -347,29 +274,8 @@ func TestStore_GetServiceStatusPage1IsHasMoreRecentResultsThanPage2(t *testing.T
}
func TestStore_Insert(t *testing.T) {
memoryStore, err := memory.NewStore("")
if err != nil {
t.Fatal("failed to create store:", err.Error())
}
databaseStore, err := database.NewStore("sqlite", t.TempDir()+"/TestStore_Insert.db")
if err != nil {
t.Fatal("failed to create store:", err.Error())
}
defer databaseStore.Close()
type Scenario struct {
Name string
Store Store
}
scenarios := []Scenario{
{
Name: "memory",
Store: memoryStore,
},
{
Name: "database",
Store: databaseStore,
},
}
scenarios := initStoresAndBaseScenarios(t, "TestStore_Insert")
defer cleanUp(scenarios)
firstResult := testSuccessfulResult
firstResult.Timestamp = now.Add(-time.Minute)
secondResult := testUnsuccessfulResult
@ -427,29 +333,8 @@ func TestStore_Insert(t *testing.T) {
}
func TestStore_DeleteAllServiceStatusesNotInKeys(t *testing.T) {
memoryStore, err := memory.NewStore("")
if err != nil {
t.Fatal("failed to create store:", err.Error())
}
databaseStore, err := database.NewStore("sqlite", t.TempDir()+"/TestStore_DeleteAllServiceStatusesNotInKeys.db")
if err != nil {
t.Fatal("failed to create store:", err.Error())
}
defer databaseStore.Close()
type Scenario struct {
Name string
Store Store
}
scenarios := []Scenario{
{
Name: "memory",
Store: memoryStore,
},
{
Name: "database",
Store: databaseStore,
},
}
scenarios := initStoresAndBaseScenarios(t, "TestStore_DeleteAllServiceStatusesNotInKeys")
defer cleanUp(scenarios)
firstService := core.Service{Name: "service-1", Group: "group"}
secondService := core.Service{Name: "service-2", Group: "group"}
result := &testSuccessfulResult