From 77943c4d72ba14a1da2831444f4535b9a4056036 Mon Sep 17 00:00:00 2001 From: Barak Michener Date: Wed, 23 Mar 2016 14:18:39 -0400 Subject: [PATCH] Add SaveOptional() tests. --- graph/path/path_test.go | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/graph/path/path_test.go b/graph/path/path_test.go index d88a8b689..559887a77 100644 --- a/graph/path/path_test.go +++ b/graph/path/path_test.go @@ -91,11 +91,15 @@ func runTag(path *Path, tag string) []string { for graph.Next(it) { tags := make(map[string]graph.Value) it.TagResults(tags) - out = append(out, path.qs.NameOf(tags[tag])) + if t, ok := tags[tag]; ok { + out = append(out, path.qs.NameOf(t)) + } for it.NextPath() { tags := make(map[string]graph.Value) it.TagResults(tags) - out = append(out, path.qs.NameOf(tags[tag])) + if t, ok := tags[tag]; ok { + out = append(out, path.qs.NameOf(t)) + } } } return out @@ -180,12 +184,6 @@ func testSet(qs graph.QuadStore) []test { tag: "somecool", expect: []string{"cool_person", "cool_person", "cool_person", "smart_person", "smart_person"}, }, - { - message: "show a simple saveOpt", - path: StartPath(qs).SaveOptional("status", "somecool"), - tag: "somecool", - expect: []string{"", "", "", "", "", "", "", "", "", "", "cool_person", "cool_person", "cool_person", "smart_person", "smart_person"}, - }, { message: "show a simple saveR", path: StartPath(qs, "cool_person").SaveReverse("status", "who"), @@ -250,6 +248,23 @@ func testSet(qs graph.QuadStore) []test { path: StartPath(qs, "greg").Tag("base").LabelContext("smart_graph").Out("status").Tag("status").Back("base"), expect: []string{"greg"}, }, + // Optional tests + { + message: "save limits top level", + path: StartPath(qs, "bob", "charlie").Out("follows").Save("status", "statustag"), + expect: []string{"bob", "dani"}, + }, + { + message: "optional still returns top level", + path: StartPath(qs, "bob", "charlie").Out("follows").SaveOptional("status", "statustag"), + expect: []string{"bob", "fred", "dani"}, + }, + { + message: "optional has the appropriate tags", + path: StartPath(qs, "bob", "charlie").Out("follows").SaveOptional("status", "statustag"), + tag: "statustag", + expect: []string{"cool_person", "cool_person"}, + }, } }