Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/joel-ling/lmdb-bdd
A set of automated, self-documenting tests verifying the behaviour of Go bindings to the LMDB API, applying behaviour-driven development through the Cucumber framework for Golang
https://github.com/joel-ling/lmdb-bdd
bdd cucumber gherkin golang lmdb testing
Last synced: about 1 month ago
JSON representation
A set of automated, self-documenting tests verifying the behaviour of Go bindings to the LMDB API, applying behaviour-driven development through the Cucumber framework for Golang
- Host: GitHub
- URL: https://github.com/joel-ling/lmdb-bdd
- Owner: joel-ling
- Created: 2024-07-05T05:21:14.000Z (6 months ago)
- Default Branch: master
- Last Pushed: 2024-09-19T07:27:17.000Z (3 months ago)
- Last Synced: 2024-10-18T05:44:17.674Z (2 months ago)
- Topics: bdd, cucumber, gherkin, golang, lmdb, testing
- Language: Go
- Homepage:
- Size: 9.77 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
```bash
$ go test
```
```gherkin
Feature: LMDB
In order to verify the effects of software interacting with LMDB
As a software engineer practising behaviour-driven development
I need to establish some baseline observationsScenario: Get non-existent record # features/lmdb.feature:6
Given there is a new LMDB environment "env" # new-lmdb-env.go:19 -> github.com/joel-ling/lmdb-bdd/test.newLMDBEnv
When I get a record "key" in DB "deebee" of environment "env" # get-record.go:18 -> github.com/joel-ling/lmdb-bdd/test.getRecord
Then I should see an error "MDB_NOTFOUND" # see-error.go:19 -> github.com/joel-ling/lmdb-bdd/test.seeError
And the ID of last committed transaction in environment "env" should be 0 # id-last-commit.go:21 -> github.com/joel-ling/lmdb-bdd/test.idLastCommitScenario: Put record # features/lmdb.feature:12
Given there is a new LMDB environment "env" # new-lmdb-env.go:19 -> github.com/joel-ling/lmdb-bdd/test.newLMDBEnv
When I put a record "key" "value" in DB "deebee" of environment "env" # put-record.go:25 -> github.com/joel-ling/lmdb-bdd/test.putRecord
Then the ID of last committed transaction in environment "env" should be 1 # id-last-commit.go:21 -> github.com/joel-ling/lmdb-bdd/test.idLastCommitScenario: Put and then get record # features/lmdb.feature:17
Given there is a new LMDB environment "env" # new-lmdb-env.go:19 -> github.com/joel-ling/lmdb-bdd/test.newLMDBEnv
When I put a record "key" "value" in DB "deebee" of environment "env" # put-record.go:25 -> github.com/joel-ling/lmdb-bdd/test.putRecord
And I get a record "key" in DB "deebee" of environment "env" # get-record.go:18 -> github.com/joel-ling/lmdb-bdd/test.getRecord
Then I should see a value "value" # see-value.go:18 -> github.com/joel-ling/lmdb-bdd/test.seeValue
And I should see no error # see-no-error.go:18 -> github.com/joel-ling/lmdb-bdd/test.seeNoError
And the ID of last committed transaction in environment "env" should be 1 # id-last-commit.go:21 -> github.com/joel-ling/lmdb-bdd/test.idLastCommitScenario: Get record put in different environment # features/lmdb.feature:25
Given there is a new LMDB environment "primary" # new-lmdb-env.go:19 -> github.com/joel-ling/lmdb-bdd/test.newLMDBEnv
And there is a new LMDB environment "secondary" # new-lmdb-env.go:19 -> github.com/joel-ling/lmdb-bdd/test.newLMDBEnv
And there is a record "key" "value" in DB "DB" of environment "primary" # put-record.go:25 -> github.com/joel-ling/lmdb-bdd/test.putRecord
When I get a record "key" in DB "DB" of environment "secondary" # get-record.go:18 -> github.com/joel-ling/lmdb-bdd/test.getRecord
Then I should see an error "MDB_NOTFOUND" # see-error.go:19 -> github.com/joel-ling/lmdb-bdd/test.seeErrorScenario: Get records using a cursor # features/lmdb.feature:32
Given there is a new LMDB environment "env" # new-lmdb-env.go:19 -> github.com/joel-ling/lmdb-bdd/test.newLMDBEnv
And there is a record "41" "A" in DB "ASCII" of environment "env" # put-record.go:25 -> github.com/joel-ling/lmdb-bdd/test.putRecord
And there is a record "43" "C" in DB "ASCII" of environment "env" # put-record.go:25 -> github.com/joel-ling/lmdb-bdd/test.putRecord
And there is a record "42" "B" in DB "ASCII" of environment "env" # put-record.go:25 -> github.com/joel-ling/lmdb-bdd/test.putRecord
When I open a cursor to DB "ASCII" of environment "env" # open-cursor.go:18 -> github.com/joel-ling/lmdb-bdd/test.openCursor
And I get the next record using the cursor # get-next-record.go:18 -> github.com/joel-ling/lmdb-bdd/test.getNextRecord
Then I should see a record "41" "A" # see-record.go:18 -> github.com/joel-ling/lmdb-bdd/test.seeRecord
And I should see no error # see-no-error.go:18 -> github.com/joel-ling/lmdb-bdd/test.seeNoError
When I get the next record using the cursor # get-next-record.go:18 -> github.com/joel-ling/lmdb-bdd/test.getNextRecord
Then I should see a record "42" "B" # see-record.go:18 -> github.com/joel-ling/lmdb-bdd/test.seeRecord
And I should see no error # see-no-error.go:18 -> github.com/joel-ling/lmdb-bdd/test.seeNoError
When I get the next record using the cursor # get-next-record.go:18 -> github.com/joel-ling/lmdb-bdd/test.getNextRecord
Then I should see a record "43" "C" # see-record.go:18 -> github.com/joel-ling/lmdb-bdd/test.seeRecord
And I should see no error # see-no-error.go:18 -> github.com/joel-ling/lmdb-bdd/test.seeNoError
When I get the next record using the cursor # get-next-record.go:18 -> github.com/joel-ling/lmdb-bdd/test.getNextRecord
Then I should see an error "MDB_NOTFOUND" # see-error.go:19 -> github.com/joel-ling/lmdb-bdd/test.seeErrorScenario: Get records using a cursor, resetting and renewing read transaction # features/lmdb.feature:50
Given there is a new LMDB environment "env" # new-lmdb-env.go:19 -> github.com/joel-ling/lmdb-bdd/test.newLMDBEnv
And there is a record "41" "A" in DB "ASCII" of environment "env" # put-record.go:25 -> github.com/joel-ling/lmdb-bdd/test.putRecord
And there is a record "42" "B" in DB "ASCII" of environment "env" # put-record.go:25 -> github.com/joel-ling/lmdb-bdd/test.putRecord
And there is a record "43" "C" in DB "ASCII" of environment "env" # put-record.go:25 -> github.com/joel-ling/lmdb-bdd/test.putRecord
When I open a cursor to DB "ASCII" of environment "env" # open-cursor.go:18 -> github.com/joel-ling/lmdb-bdd/test.openCursor
And I get the next record using the cursor # get-next-record.go:18 -> github.com/joel-ling/lmdb-bdd/test.getNextRecord
Then I should see a record "41" "A" # see-record.go:18 -> github.com/joel-ling/lmdb-bdd/test.seeRecord
And I should see no error # see-no-error.go:18 -> github.com/joel-ling/lmdb-bdd/test.seeNoError
When I get the next record using the cursor # get-next-record.go:18 -> github.com/joel-ling/lmdb-bdd/test.getNextRecord
Then I should see a record "42" "B" # see-record.go:18 -> github.com/joel-ling/lmdb-bdd/test.seeRecord
And I should see no error # see-no-error.go:18 -> github.com/joel-ling/lmdb-bdd/test.seeNoError
When I reset the transaction relating to the cursor # reset-cursor.go:18 -> github.com/joel-ling/lmdb-bdd/test.resetCursor
And I renew the transaction relating to the cursor, and the cursor # renew-cursor.go:18 -> github.com/joel-ling/lmdb-bdd/test.renewCursor
And I get the next record using the cursor, specifying the previous key # get-next-record-set.go:19 -> github.com/joel-ling/lmdb-bdd/test.getNextRecordSet
Then I should see a record "43" "C" # see-record.go:18 -> github.com/joel-ling/lmdb-bdd/test.seeRecord
And I should see no error # see-no-error.go:18 -> github.com/joel-ling/lmdb-bdd/test.seeNoErrorScenario: List databases in environment # features/lmdb.feature:68
Given there is a new LMDB environment "env" # new-lmdb-env.go:19 -> github.com/joel-ling/lmdb-bdd/test.newLMDBEnv
And there is a record "key" "value" in DB "db0" of environment "env" # put-record.go:25 -> github.com/joel-ling/lmdb-bdd/test.putRecord
And there is a record "key" "value" in DB "db1" of environment "env" # put-record.go:25 -> github.com/joel-ling/lmdb-bdd/test.putRecord
And there is a record "key" "value" in DB "db2" of environment "env" # put-record.go:25 -> github.com/joel-ling/lmdb-bdd/test.putRecord
When I open a cursor to the root database of environment "env" # open-cursor-root.go:18 -> github.com/joel-ling/lmdb-bdd/test.openCursorRoot
And I get the next record using the cursor # get-next-record.go:18 -> github.com/joel-ling/lmdb-bdd/test.getNextRecord
Then I should see a key "db0" # see-key.go:18 -> github.com/joel-ling/lmdb-bdd/test.seeKey
And I should see no error # see-no-error.go:18 -> github.com/joel-ling/lmdb-bdd/test.seeNoError
When I get the next record using the cursor # get-next-record.go:18 -> github.com/joel-ling/lmdb-bdd/test.getNextRecord
Then I should see a key "db1" # see-key.go:18 -> github.com/joel-ling/lmdb-bdd/test.seeKey
And I should see no error # see-no-error.go:18 -> github.com/joel-ling/lmdb-bdd/test.seeNoError
When I get the next record using the cursor # get-next-record.go:18 -> github.com/joel-ling/lmdb-bdd/test.getNextRecord
Then I should see a key "db2" # see-key.go:18 -> github.com/joel-ling/lmdb-bdd/test.seeKey
And I should see no error # see-no-error.go:18 -> github.com/joel-ling/lmdb-bdd/test.seeNoError
When I get the next record using the cursor # get-next-record.go:18 -> github.com/joel-ling/lmdb-bdd/test.getNextRecord
Then I should see an error "MDB_NOTFOUND" # see-error.go:19 -> github.com/joel-ling/lmdb-bdd/test.seeError
```
```txt
7 scenarios (7 passed)
66 steps (66 passed)
26.43273ms
PASS
ok github.com/joel-ling/lmdb-bdd 0.032s
```