Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 21 additions & 25 deletions neo4j/test-integration/examples_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,12 @@ package test_integration

import (
"fmt"
"time"

"github.com/neo4j/neo4j-go-driver/neo4j"
"github.com/neo4j/neo4j-go-driver/neo4j/test-integration/control"
"github.com/neo4j/neo4j-go-driver/neo4j/utils/test"
"github.com/pkg/errors"
"time"

. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
Expand Down Expand Up @@ -580,39 +581,34 @@ func addPersonInTxFunc(driver neo4j.Driver, name string) error {
// end::transaction-function[]

// tag::pass-bookmarks[]
func createTxFunc(query string, params map[string]interface{}) neo4j.TransactionWork {
func addCompanyTxFunc(name string) neo4j.TransactionWork {
return func(tx neo4j.Transaction) (interface{}, error) {
var err error
var result neo4j.Result

if result, err = tx.Run(query, params); err != nil {
return nil, err
}

return result.Consume()
return tx.Run("CREATE (a:Company {name: $name})", map[string]interface{}{"name": name})
}
}

func addCompanyTxFunc(name string) neo4j.TransactionWork {
return createTxFunc("CREATE (a:Company {name: $name})", map[string]interface{}{"name": name})
}

func addPersonTxFunc(name string) neo4j.TransactionWork {
return createTxFunc("CREATE (a:Person {name: $name})", map[string]interface{}{"name": name})
return func(tx neo4j.Transaction) (interface{}, error) {
return tx.Run("CREATE (a:Person {name: $name})", map[string]interface{}{"name": name})
}
}

func employTxFunc(person string, company string) neo4j.TransactionWork {
return createTxFunc(
"MATCH (person:Person {name: $personName}) "+
"MATCH (company:Company {name: $companyName}) "+
"CREATE (person)-[:WORKS_FOR]->(company)", map[string]interface{}{"personName": person, "companyName": company})
return func(tx neo4j.Transaction) (interface{}, error) {
return tx.Run(
"MATCH (person:Person {name: $personName}) "+
"MATCH (company:Company {name: $companyName}) "+
"CREATE (person)-[:WORKS_FOR]->(company)", map[string]interface{}{"personName": person, "companyName": company})
}
}

func makeFriendTxFunc(person1 string, person2 string) neo4j.TransactionWork {
return createTxFunc(
"MATCH (a:Person {name: $name1}) "+
"MATCH (b:Person {name: $name2}) "+
"MERGE (a)-[:KNOWS]->(b)", map[string]interface{}{"name1": person1, "name2": person2})
return func(tx neo4j.Transaction) (interface{}, error) {
return tx.Run(
"MATCH (a:Person {name: $name1}) "+
"MATCH (b:Person {name: $name2}) "+
"MERGE (a)-[:KNOWS]->(b)", map[string]interface{}{"name1": person1, "name2": person2})
}
}

func printFriendsTxFunc() neo4j.TransactionWork {
Expand Down Expand Up @@ -658,7 +654,7 @@ func makeFriend(driver neo4j.Driver, person1 string, person2 string, bookmarks .
var err error
var session neo4j.Session

if session, err = driver.Session(neo4j.AccessModeWrite); err != nil {
if session, err = driver.Session(neo4j.AccessModeWrite, bookmarks...); err != nil {
return "", err
}
defer session.Close()
Expand Down Expand Up @@ -761,7 +757,7 @@ func getPeople(driver neo4j.Driver) ([]string, error) {
var err error
var session neo4j.Session

if session, err = driver.Session(neo4j.AccessModeWrite); err != nil {
if session, err = driver.Session(neo4j.AccessModeRead); err != nil {
return nil, err
}
defer session.Close()
Expand Down