Skip to content

Commit

Permalink
progress on save fix
Browse files Browse the repository at this point in the history
  • Loading branch information
Eric Solender committed Dec 15, 2019
1 parent 27b7f31 commit 4b36fff
Show file tree
Hide file tree
Showing 6 changed files with 636 additions and 26 deletions.
13 changes: 1 addition & 12 deletions save.go
Original file line number Diff line number Diff line change
Expand Up @@ -637,24 +637,13 @@ func parseStruct(parentId, edgeLabel string, parentIsStart bool, direction dsl.D
}

//set this to the actual field name later
isNewNode, id, err := setUuidIfNeeded(current, "UUID")
isNewNode, id, relConf, err := handleNodeState(current, "UUID")
if err != nil {
return err
}

if !isNewNode {
if _, ok := (*oldRels)[id]; !ok {
iConf := reflect.Indirect(*current).FieldByName("LoadMap").Interface()

var relConf map[string]*RelationConfig

if iConf != nil {
relConf, ok = iConf.(map[string]*RelationConfig)
if !ok {
relConf = map[string]*RelationConfig{}
}
}

(*oldRels)[id] = relConf
}
} else {
Expand Down
47 changes: 47 additions & 0 deletions testing_/integration_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package testing_

import (
"github.com/mindstand/gogm"
"github.com/stretchr/testify/require"
"testing"
)

func TestIntegration(t *testing.T) {
req := require.New(t)

conf := gogm.Config{
Username: "neo4j",
Password: "password",
Host: "0.0.0.0",
Port: 7687,
PoolSize: 15,
IndexStrategy: gogm.IGNORE_INDEX,
}

req.Nil(gogm.Init(&conf, &TreeNode{}, &RootTreeNode{}, &SideTreeNode{}))

sess, err := gogm.NewSession(false)
req.Nil(err)
defer sess.Close()

sides := make([]*SideTreeNode, 2, 2)
sides[0] = &SideTreeNode{}
sides[1] = &SideTreeNode{}

treeNodes := make([]*TreeNode, 4, 4)

for i := 0; i < 4; i++ {
treeNodes[i] = &TreeNode{}
req.Nil(treeNodes[i].LinkToSideTreeNodeOnFieldSides(sides[0]))
}

for i := 0; i < 3; i++ {
req.Nil(treeNodes[i].LinkToTreeNodeOnFieldParents(treeNodes[3]))
}

root := &RootTreeNode{}
req.Nil(root.LinkToSideTreeNodeOnFieldSides(sides[1]))
req.Nil(root.LinkToTreeNodeOnFieldTrees(treeNodes[3]))

req.Nil(sess.SaveDepth(root, 5))
}
Loading

0 comments on commit 4b36fff

Please sign in to comment.