1
1
package riemann_test
2
2
3
3
import (
4
- "os"
5
4
"sort"
6
5
7
6
"github.com/alexsanjoseph/riemann-divisor-sum-go/riemann"
8
7
. "github.com/onsi/ginkgo/v2"
9
8
. "github.com/onsi/gomega"
10
9
)
11
10
12
- const DBPath = "test.sqlite "
11
+ const DBPath = ":memory: "
13
12
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"
19
14
20
- var _ = AfterEach (func () {
21
- os .Remove (DBPath )
22
- })
15
+ // var _ = AfterEach(func() {
16
+ // os.Remove(DBPath)
17
+ // })
23
18
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 () {
25
26
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 )
28
29
loadedData := db .Load ()
29
30
Expect (len (loadedData )).To (Equal (0 ))
30
- })
31
31
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 )
34
39
records := []riemann.RiemannDivisorSum {
35
40
{N : 1 , DivisorSum : 1 , WitnessValue : 1 },
36
41
{N : 2 , DivisorSum : 2 , WitnessValue : 2 },
@@ -76,10 +81,13 @@ var _ = Describe("Sqlite Database Tests", func() {
76
81
Expect (loadedData ).To (Equal (append (records , expectedNewRecords ... )))
77
82
})
78
83
79
- })
84
+ },
85
+ Entry ("SQLite" , & riemann.SqliteDivisorDb {DBPath : DBPath }),
86
+ Entry ("In-Memory" , & riemann.InMemoryDivisorDb {}),
87
+ )
80
88
81
- It ("Summarizes" , func () {
82
- var db = riemann . DivisorDb ( & riemann. SqliteDivisorDb { DBPath : DBPath } )
89
+ DescribeTable ("Summarizes" , func (inputDb riemann. DivisorDb ) {
90
+ db := beforeEachFunc ( inputDb )
83
91
By ("correctly summarizing empty data" , func () {
84
92
summaryData := db .Summarize ()
85
93
expectedSummaryData := riemann.SummaryStats {
@@ -104,10 +112,13 @@ var _ = Describe("Sqlite Database Tests", func() {
104
112
Expect (summaryData ).To (Equal (expectedSummaryData ))
105
113
})
106
114
107
- })
115
+ },
116
+ Entry ("SQLite" , & riemann.SqliteDivisorDb {DBPath : DBPath }),
117
+ Entry ("In-Memory" , & riemann.InMemoryDivisorDb {}),
118
+ )
108
119
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 )
111
122
By ("correctly summarizing non-empty data" , func () {
112
123
records := []riemann.RiemannDivisorSum {
113
124
{N : 10092 , DivisorSum : 24388 , WitnessValue : 1.088 },
@@ -121,6 +132,9 @@ var _ = Describe("Sqlite Database Tests", func() {
121
132
}
122
133
Expect (summaryData ).To (Equal (expectedSummaryData ))
123
134
})
124
- })
135
+ },
136
+ Entry ("SQLite" , & riemann.SqliteDivisorDb {DBPath : DBPath }),
137
+ Entry ("In-Memory" , & riemann.InMemoryDivisorDb {}),
138
+ )
125
139
126
140
})
0 commit comments