Compare commits
1 Commits
master
...
add-driver
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
91fa2ae4f6 |
89
tests/drivers/go/v5/docs_quick_start.go
Normal file
89
tests/drivers/go/v5/docs_quick_start.go
Normal file
@@ -0,0 +1,89 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"log"
|
||||
"fmt"
|
||||
"github.com/neo4j/neo4j-go-driver/v5/neo4j"
|
||||
)
|
||||
|
||||
func handle_if_error(err error) {
|
||||
if err != nil {
|
||||
log.Fatal("Error occured: %s", err)
|
||||
}
|
||||
}
|
||||
|
||||
func main() {
|
||||
dbUri := "bolt://localhost:7687"
|
||||
driver, err := neo4j.NewDriver(dbUri, neo4j.BasicAuth("", "", ""))
|
||||
if err != nil {
|
||||
log.Fatal("An error occurred opening conn: %s", err)
|
||||
}
|
||||
defer driver.Close()
|
||||
|
||||
session := driver.NewSession(neo4j.SessionConfig{})
|
||||
defer session.Close()
|
||||
|
||||
_, err = session.WriteTransaction(clearDatabase)
|
||||
handle_if_error(err)
|
||||
fmt.Println("Database cleared.")
|
||||
|
||||
_, err = session.WriteTransaction(createItemFn)
|
||||
handle_if_error(err)
|
||||
fmt.Println("Record created.")
|
||||
|
||||
_,err = session.WriteTransaction(testAll)
|
||||
handle_if_error(err)
|
||||
fmt.Println("All ok!")
|
||||
}
|
||||
|
||||
func clearDatabase(tx neo4j.Transaction) (interface{}, error) {
|
||||
result, err := tx.Run(
|
||||
"MATCH (n) DETACH DELETE n;",
|
||||
map[string]interface{}{})
|
||||
handle_if_error(err)
|
||||
return result.Consume()
|
||||
}
|
||||
|
||||
func createItemFn(tx neo4j.Transaction) (interface{}, error) {
|
||||
result, err := tx.Run(
|
||||
`CREATE (alice:Person {name: "Alice", age: 22});`,
|
||||
map[string]interface{}{})
|
||||
handle_if_error(err)
|
||||
return result.Consume()
|
||||
}
|
||||
|
||||
func testAll(tx neo4j.Transaction) (interface{}, error) {
|
||||
result, err := tx.Run(
|
||||
"MATCH (n) RETURN n;",
|
||||
map[string]interface{}{})
|
||||
handle_if_error(err)
|
||||
|
||||
if !result.Next() {
|
||||
log.Fatal("Missing result.")
|
||||
}
|
||||
|
||||
node_record, found := result.Record().Get("n")
|
||||
if !found {
|
||||
return nil, fmt.Errorf("Wrong result returned.")
|
||||
}
|
||||
|
||||
node_value := node_record.(neo4j.Node)
|
||||
fmt.Println("Record matched.")
|
||||
|
||||
label := node_value.Labels[0]
|
||||
name, err := neo4j.GetProperty[string](node_value, "name")
|
||||
handle_if_error(err)
|
||||
age, err := neo4j.GetProperty[int64](node_value, "age")
|
||||
handle_if_error(err)
|
||||
|
||||
if label != "Person" && name != "Alice" && age != 22 {
|
||||
return nil, fmt.Errorf("Data doesn't match.")
|
||||
}
|
||||
|
||||
fmt.Println("Label", label)
|
||||
fmt.Println("name", name)
|
||||
fmt.Println("age", age)
|
||||
|
||||
return result.Consume()
|
||||
}
|
||||
|
||||
5
tests/drivers/go/v5/go.mod
Normal file
5
tests/drivers/go/v5/go.mod
Normal file
@@ -0,0 +1,5 @@
|
||||
module bolt-test
|
||||
|
||||
go 1.18
|
||||
|
||||
require github.com/neo4j/neo4j-go-driver/v5 v5.6.0 // indirect
|
||||
4
tests/drivers/go/v5/go.sum
Normal file
4
tests/drivers/go/v5/go.sum
Normal file
@@ -0,0 +1,4 @@
|
||||
github.com/neo4j/neo4j-go-driver/v5 v5.5.0 h1:KxufacDV+IqkzbzvjIAIGkBsa2i0lEB8/MhCgOQxrQo=
|
||||
github.com/neo4j/neo4j-go-driver/v5 v5.5.0/go.mod h1:Vff8OwT7QpLm7L2yYr85XNWe9Rbqlbeb9asNXJTHO4k=
|
||||
github.com/neo4j/neo4j-go-driver/v5 v5.6.0 h1:+LxOHCyDWGjtD8qHhb20GUpvwCFcJm1wqSEyo2MiehE=
|
||||
github.com/neo4j/neo4j-go-driver/v5 v5.6.0/go.mod h1:Vff8OwT7QpLm7L2yYr85XNWe9Rbqlbeb9asNXJTHO4k=
|
||||
13
tests/drivers/go/v5/run.sh
Executable file
13
tests/drivers/go/v5/run.sh
Executable file
@@ -0,0 +1,13 @@
|
||||
#!/bin/bash -e
|
||||
|
||||
# check if go is installed
|
||||
for i in go; do
|
||||
if ! which $i >/dev/null; then
|
||||
echo "Please install $i!"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
go get github.com/neo4j/neo4j-go-driver/v5
|
||||
|
||||
go run docs_quick_start.go
|
||||
Reference in New Issue
Block a user