Skip to content

Commit bc09860

Browse files
committed
Moved to Parametrized tests
1 parent 5ff381c commit bc09860

File tree

4 files changed

+46
-166
lines changed

4 files changed

+46
-166
lines changed

riemann/sqlite_database_test.go renamed to riemann/database_test.go

+37-23
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,41 @@
11
package riemann_test
22

33
import (
4-
"os"
54
"sort"
65

76
"github.com/alexsanjoseph/riemann-divisor-sum-go/riemann"
87
. "github.com/onsi/ginkgo/v2"
98
. "github.com/onsi/gomega"
109
)
1110

12-
const DBPath = "test.sqlite"
11+
const DBPath = ":memory:"
1312

14-
var _ = BeforeEach(func() {
15-
os.Remove(DBPath)
16-
var db = riemann.DivisorDb(&riemann.SqliteDivisorDb{DBPath: DBPath})
17-
db.Initialize()
18-
})
13+
// const DBPath = "test.sqlite"
1914

20-
var _ = AfterEach(func() {
21-
os.Remove(DBPath)
22-
})
15+
// var _ = AfterEach(func() {
16+
// os.Remove(DBPath)
17+
// })
2318

24-
var _ = Describe("Sqlite Database Tests", func() {
19+
func beforeEachFunc(inputDb riemann.DivisorDb) riemann.DivisorDb {
20+
db := riemann.DivisorDb(inputDb)
21+
db.Initialize()
22+
return db
23+
}
24+
25+
var _ = Describe("Parametrized Database Tests", func() {
2526

26-
It("is initially empty", func() {
27-
var db = riemann.DivisorDb(&riemann.SqliteDivisorDb{DBPath: DBPath})
27+
DescribeTable("is initially empty", func(inputDb riemann.DivisorDb) {
28+
db := beforeEachFunc(inputDb)
2829
loadedData := db.Load()
2930
Expect(len(loadedData)).To(Equal(0))
30-
})
3131

32-
It("Upserts correctly", func() {
33-
var db = riemann.DivisorDb(&riemann.SqliteDivisorDb{DBPath: DBPath})
32+
},
33+
Entry("SQLite", &riemann.SqliteDivisorDb{DBPath: DBPath}),
34+
Entry("In-Memory", &riemann.InMemoryDivisorDb{}),
35+
)
36+
37+
DescribeTable("Upserts correctly", func(inputDb riemann.DivisorDb) {
38+
db := beforeEachFunc(inputDb)
3439
records := []riemann.RiemannDivisorSum{
3540
{N: 1, DivisorSum: 1, WitnessValue: 1},
3641
{N: 2, DivisorSum: 2, WitnessValue: 2},
@@ -76,10 +81,13 @@ var _ = Describe("Sqlite Database Tests", func() {
7681
Expect(loadedData).To(Equal(append(records, expectedNewRecords...)))
7782
})
7883

79-
})
84+
},
85+
Entry("SQLite", &riemann.SqliteDivisorDb{DBPath: DBPath}),
86+
Entry("In-Memory", &riemann.InMemoryDivisorDb{}),
87+
)
8088

81-
It("Summarizes", func() {
82-
var db = riemann.DivisorDb(&riemann.SqliteDivisorDb{DBPath: DBPath})
89+
DescribeTable("Summarizes", func(inputDb riemann.DivisorDb) {
90+
db := beforeEachFunc(inputDb)
8391
By("correctly summarizing empty data", func() {
8492
summaryData := db.Summarize()
8593
expectedSummaryData := riemann.SummaryStats{
@@ -104,10 +112,13 @@ var _ = Describe("Sqlite Database Tests", func() {
104112
Expect(summaryData).To(Equal(expectedSummaryData))
105113
})
106114

107-
})
115+
},
116+
Entry("SQLite", &riemann.SqliteDivisorDb{DBPath: DBPath}),
117+
Entry("In-Memory", &riemann.InMemoryDivisorDb{}),
118+
)
108119

109-
It("Summarizes for float values", func() {
110-
var db = riemann.DivisorDb(&riemann.SqliteDivisorDb{DBPath: DBPath})
120+
DescribeTable("Summarizes for float values", func(inputDb riemann.DivisorDb) {
121+
db := beforeEachFunc(inputDb)
111122
By("correctly summarizing non-empty data", func() {
112123
records := []riemann.RiemannDivisorSum{
113124
{N: 10092, DivisorSum: 24388, WitnessValue: 1.088},
@@ -121,6 +132,9 @@ var _ = Describe("Sqlite Database Tests", func() {
121132
}
122133
Expect(summaryData).To(Equal(expectedSummaryData))
123134
})
124-
})
135+
},
136+
Entry("SQLite", &riemann.SqliteDivisorDb{DBPath: DBPath}),
137+
Entry("In-Memory", &riemann.InMemoryDivisorDb{}),
138+
)
125139

126140
})

riemann/in_memory_database_test.go

-118
This file was deleted.

riemann/populate_database_test.go

+8-9
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,21 @@ import (
77
. "github.com/onsi/gomega"
88
)
99

10-
var _ = Describe("Populates Database correctly", func() {
11-
12-
var db = riemann.DivisorDb(&riemann.InMemoryDivisorDb{})
13-
db.Initialize()
14-
It("Populates and Summarizes correctly", func() {
10+
var _ = Describe("Parametrized Population tests", func() {
1511

12+
DescribeTable("Populates, Summarizes and finds StartingN correctly", func(inputDb riemann.DivisorDb) {
13+
db := beforeEachFunc(inputDb)
1614
riemann.PopulateDB(db, 10070, 10085, 21)
1715
summaryData := db.Summarize()
16+
1817
Expect(summaryData.LargestWitnessValue.N).To(BeEquivalentTo(10080))
1918
Expect(summaryData.LargestComputedN.N).To(BeEquivalentTo(10091))
20-
})
21-
22-
It("Finds startingN correctly", func() {
2319

2420
startingN := riemann.FindStartingNForDB(db, 10075)
2521
Expect(startingN).To(BeEquivalentTo(10092))
2622

27-
})
23+
},
24+
Entry("SQLite", &riemann.SqliteDivisorDb{DBPath: DBPath}),
25+
Entry("In-Memory", &riemann.InMemoryDivisorDb{}),
26+
)
2827
})

riemann/sqlite_database.go

+1-16
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ type SqliteDivisorDb struct {
1313
db *sql.DB
1414
}
1515

16-
func (sqdb SqliteDivisorDb) Initialize() {
16+
func (sqdb *SqliteDivisorDb) Initialize() {
1717

1818
db, err := sql.Open("sqlite3", sqdb.DBPath)
1919
if err != nil {
@@ -30,20 +30,10 @@ func (sqdb SqliteDivisorDb) Initialize() {
3030
if err != nil {
3131
panic(err)
3232
}
33-
db.Close()
34-
}
35-
36-
func (sqdb *SqliteDivisorDb) ensureInit() {
37-
db, err := sql.Open("sqlite3", sqdb.DBPath)
38-
if err != nil {
39-
log.Fatal(err)
40-
}
4133
sqdb.db = db
4234
}
4335

4436
func (sqdb SqliteDivisorDb) Load() []RiemannDivisorSum {
45-
sqdb.ensureInit()
46-
defer sqdb.db.Close()
4737
sqlStmt := `
4838
SELECT n, divisor_sum, witness_value
4939
FROM RiemannDivisorSums
@@ -72,8 +62,6 @@ func (sqdb SqliteDivisorDb) Load() []RiemannDivisorSum {
7262
}
7363

7464
func (sqdb SqliteDivisorDb) Upsert(rds []RiemannDivisorSum) {
75-
sqdb.ensureInit()
76-
defer sqdb.db.Close()
7765

7866
tx, err := sqdb.db.Begin()
7967
if err != nil {
@@ -103,12 +91,9 @@ func (sqdb SqliteDivisorDb) Upsert(rds []RiemannDivisorSum) {
10391
}
10492
}
10593
tx.Commit()
106-
sqdb.db.Close()
10794
}
10895

10996
func (sqdb SqliteDivisorDb) Summarize() SummaryStats {
110-
sqdb.ensureInit()
111-
defer sqdb.db.Close()
11297

11398
largestNStms := `
11499
SELECT *

0 commit comments

Comments
 (0)