Skip to content
GitLab
Explore
Projects
Groups
Topics
Snippets
Projects
Groups
Topics
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Register
Sign in
Toggle navigation
Menu
UPSMF
knowledge-platform
Commits
120cdf19
Unverified
Commit
120cdf19
authored
5 years ago
by
Amit Priyadarshi
Committed by
GitHub
5 years ago
Browse files
Options
Download
Plain Diff
Merge pull request #101 from krgauraw/release-2.7.0
code changes to populate existing relations
parents
c894067a
ab51766b
taxonomy-api
3.9.0-prod-fix
4.1.0_fixes
AmiableAnil-patch-1
Gcloud_copy
Gcloud_fix
Remove_unwantedCode_Gcloud_fix
actors-test
bulk-upload-comptenecy-mapping
bulk-upload-excelsheet
bulk-upload-test_excel
bulk_upload
code-cleanup
csp-migration
dependabot/maven/platform-core/platform-telemetry/ch.qos.logback-logback-core-1.2.9
dependabot/maven/search-api/search-core/org.apache.httpcomponents-httpclient-4.5.13
devcon-2020
flag-api
ft-spike
knowlg-friday
knowlg-oneclick
loadtest-release-2.10
local-setup-fix
local-setup-kube
m-4.2.0
master
master-data
neo4j-3.4.9
neo4j-4-code
new_objecttype
org-target-enhancement
patch-1
patch-2
patch-3
poc_bulk_upload
qs-schema
rahul_bulk_upload_postgres
release-2.10.0
release-2.7.0
release-2.8.0
release-2.9.0
release-3.0.0
release-3.0.1
release-3.1.0
release-3.2.0
release-3.3.0
release-3.4.0
release-3.5.0
release-3.6.0
release-3.6.0.1
release-3.7.0
release-3.8.0
release-3.9.0
release-4.0.0
release-4.1.0
release-4.10.0
release-4.10.1
release-4.2.0
release-4.3.0
release-4.4.0
release-4.5.0
release-4.6.0
release-4.7.0
release-4.7.0-debug
release-4.8.0
release-4.8.0-debug
release-4.9.0
release-4.9.1
release-5.0.0
release-5.0.1
release-5.1.0
release-5.1.0-content
release-5.2.0
release-5.3.0
retire-api
revert-718-visiblity-private-api
revert-719-assessment-private-read-api
revert-720-visiblity-public-search-api
revert-721-visiblity-private-search-api
review-4.1.0
s-debug
schema-update-4.0
schema-updates
release-5.2.0_RC2
release-5.2.0_RC1
release-5.1.0_RC1
release-5.0.0_RC2
release-5.0.0_RC1
release-4.10.0_RC2
release-4.10.0_RC1
release-4.9.1_RC1
release-4.9.0_RC8
release-4.9.0_RC7
release-4.9.0_RC6
release-4.9.0_RC5
release-4.9.0_RC4
release-4.9.0_RC3
release-4.9.0_RC2
release-4.9.0_RC1
release-4.8.0_RC5
release-4.8.0_RC4
release-4.8.0_RC3
release-4.8.0_RC2
release-4.8.0_RC1
release-4.7.0_RC6
release-4.7.0_RC5
release-4.7.0_RC4
release-4.7.0_RC3
release-4.7.0_RC2
release-4.7.0_RC1
release-4.6.0_RC2
release-4.6.0_RC1
release-4.5.0_RC2
release-4.5.0_RC1
release-4.4.0_RC6
release-4.4.0_RC5
release-4.4.0_RC4
release-4.4.0_RC3
release-4.4.0_RC2
release-4.4.0_RC1
release-4.3.0_RC10
release-4.3.0_RC9
release-4.3.0_RC8
release-4.3.0_RC7
release-4.3.0_RC6
release-4.3.0_RC5
release-4.3.0_RC4
release-4.3.0_RC3
release-4.3.0_RC2
release-4.3.0_RC1
release-4.2.0_RC13
release-4.2.0_RC12
release-4.2.0_RC11
release-4.2.0_RC10
release-4.2.0_RC9
release-4.2.0_RC8
release-4.2.0_RC7
release-4.2.0_RC6
release-4.2.0_RC5
release-4.2.0_RC4
release-4.2.0_RC3
release-4.2.0_RC2
release-4.2.0_RC1
release-4.1.0_RC13
release-4.1.0_RC12
release-4.1.0_RC11
release-4.1.0_RC10
release-4.1.0_RC9
release-4.1.0_RC8
release-4.1.0_RC7
release-4.1.0_RC6
release-4.1.0_RC5
release-4.1.0_RC4
release-4.1.0_RC3
release-4.1.0_RC2
release-4.1.0_RC1
release-4.0.0_RC9
release-4.0.0_RC8
release-4.0.0_RC7
release-4.0.0_RC6
release-4.0.0_RC5
release-4.0.0_RC4
release-4.0.0_RC3
release-4.0.0_RC2
release-4.0.0_RC1
release-3.9.0_RC12
release-3.9.0_RC11
release-3.9.0_RC10
release-3.9.0_RC9
release-3.9.0_RC8
release-3.9.0_RC7
release-3.9.0_RC6
release-3.9.0_RC5
release-3.9.0_RC4
release-3.9.0_RC3
release-3.9.0_RC2
release-3.9.0_RC1
release-3.8.0_RC9
release-3.8.0_RC8
release-3.8.0_RC7
release-3.8.0_RC6
release-3.8.0_RC5
release-3.8.0_RC4
release-3.8.0_RC3
release-3.8.0_RC2
release-3.8.0_RC1
release-3.7.0_RC1
release-3.6.0_RC5
release-3.6.0_RC4
release-3.6.0_RC3
release-3.6.0_RC2
release-3.6.0_RC1
release-3.5.0
release-3.5.0_RC2
release-3.5.0_RC1
release-3.4.0
release-3.4.0_RC2
release-3.4.0_RC1
release-3.3.0_RC10
release-3.3.0_RC9
release-3.3.0_RC8
release-3.3.0_RC7
release-3.3.0_RC6
release-3.3.0_RC5
release-3.3.0_RC4
release-3.3.0_RC3
release-3.3.0_RC2
release-3.3.0_RC1
release-3.2.0_RC9
release-3.2.0_RC8
release-3.2.0_RC7
release-3.2.0_RC6
release-3.2.0_RC5
release-3.2.0_RC4
release-3.2.0_RC3
release-3.2.0_RC2
release-3.2.0_RC1
release-3.1.0
release-3.1.0_RC8
release-3.1.0_RC7
release-3.1.0_RC6
release-3.1.0_RC5
release-3.1.0_RC4
release-3.1.0_RC3
release-3.1.0_RC2
release-3.1.0_RC1
release-3.0.1_RC3
release-3.0.1_RC2
release-3.0.1_RC1
release-3.0.0
release-3.0.0_RC11
release-3.0.0_RC10
release-3.0.0_RC9
release-3.0.0_RC8
release-3.0.0_RC7
release-3.0.0_RC6
release-3.0.0_RC5
release-3.0.0_RC4
release-3.0.0_RC3
release-3.0.0_RC2
release-3.0.0_RC1
release-2.10.0
release-2.10.0_RC19
release-2.10.0_RC18
release-2.10.0_RC17
release-2.10.0_RC16
release-2.10.0_RC15
release-2.10.0_RC14
release-2.10.0_RC13
release-2.10.0_RC12
release-2.10.0_RC11
release-2.10.0_RC10
release-2.10.0_RC9
release-2.10.0_RC8
release-2.10.0_RC7
release-2.10.0_RC6
release-2.10.0_RC5
release-2.10.0_RC4
release-2.10.0_RC3
release-2.10.0_RC2
release-2.10.0_RC1
release-2.9.0_RC9
release-2.9.0_RC8
release-2.9.0_RC7
release-2.9.0_RC6
release-2.9.0_RC5
release-2.9.0_RC4
release-2.9.0_RC3
release-2.9.0_RC2
release-2.9.0_RC1
release-2.8.0
release-2.8.0_RC7
release-2.8.0_RC6
release-2.8.0_RC5
release-2.8.0_RC4
release-2.8.0_RC3
release-2.8.0_RC2
release-2.8.0_RC1
release-2.7.0
release-2.7.0_RC10
release-2.7.0_RC9
release-2.7.0_RC8
release-2.7.0_RC7
No related merge requests found
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
ontology-engine/graph-dac-api/src/main/java/org/sunbird/graph/dac/model/Node.java
+4
-1
...c-api/src/main/java/org/sunbird/graph/dac/model/Node.java
ontology-engine/graph-engine_2.11/src/main/scala/org/sunbird/graph/schema/DefinitionNode.scala
+55
-8
.../main/scala/org/sunbird/graph/schema/DefinitionNode.scala
ontology-engine/graph-engine_2.11/src/test/scala/org/sunbird/graph/nodes/TestDataNode.scala
+125
-5
...src/test/scala/org/sunbird/graph/nodes/TestDataNode.scala
with
184 additions
and
14 deletions
+184
-14
ontology-engine/graph-dac-api/src/main/java/org/sunbird/graph/dac/model/Node.java
+
4
−
1
View file @
120cdf19
package
org.sunbird.graph.dac.model
;
import
com.fasterxml.jackson.annotation.JsonIgnore
;
import
org.apache.commons.collections4.CollectionUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.sunbird.graph.common.enums.SystemProperties
;
...
...
@@ -131,7 +132,9 @@ public class Node implements Serializable {
}
public
void
setAddedRelations
(
List
<
Relation
>
addedRelations
)
{
this
.
addedRelations
=
addedRelations
;
if
(
CollectionUtils
.
isEmpty
(
this
.
addedRelations
))
this
.
addedRelations
=
new
ArrayList
<>();
this
.
addedRelations
.
addAll
(
addedRelations
);
}
public
List
<
Relation
>
getDeletedRelations
()
{
...
...
This diff is collapsed.
Click to expand it.
ontology-engine/graph-engine_2.11/src/main/scala/org/sunbird/graph/schema/DefinitionNode.scala
+
55
−
8
View file @
120cdf19
...
...
@@ -67,13 +67,15 @@ object DefinitionNode {
val
graphId
:
String
=
request
.
getContext
.
get
(
"graph_id"
).
asInstanceOf
[
String
]
val
version
:
String
=
request
.
getContext
.
get
(
"version"
).
asInstanceOf
[
String
]
val
schemaName
:
String
=
request
.
getContext
.
get
(
"schemaName"
).
asInstanceOf
[
String
]
val
req
:
util.HashMap
[
String
,
AnyRef
]
=
new
util
.
HashMap
[
String
,
AnyRef
](
request
.
getRequest
)
val
skipValidation
:
Boolean
=
{
if
(
request
.
getContext
.
containsKey
(
"skipValidation"
))
request
.
getContext
.
get
(
"skipValidation"
).
asInstanceOf
[
Boolean
]
else
false
}
val
definition
=
DefinitionFactory
.
getDefinition
(
graphId
,
schemaName
,
version
)
val
dbNodeFuture
=
definition
.
getNode
(
identifier
,
"update"
,
null
)
val
validationResult
:
Future
[
Node
]
=
dbNodeFuture
.
map
(
dbNode
=>
{
resetJsonProperties
(
dbNode
,
graphId
,
version
,
schemaName
)
val
inputNode
:
Node
=
definition
.
getNode
(
dbNode
.
getIdentifier
,
request
.
getRequest
,
dbNode
.
getNodeType
)
setRelationship
(
dbNode
,
inputNode
)
val
dbRels
=
getDBRelations
(
graphId
,
schemaName
,
version
,
req
,
dbNode
)
setRelationship
(
dbNode
,
inputNode
,
dbRels
)
if
(
dbNode
.
getIdentifier
.
endsWith
(
".img"
)
&&
StringUtils
.
equalsAnyIgnoreCase
(
"Yes"
,
dbNode
.
getMetadata
.
get
(
"isImageNodeCreated"
).
asInstanceOf
[
String
]))
{
inputNode
.
getMetadata
.
put
(
"versionKey"
,
dbNode
.
getMetadata
.
get
(
"versionKey"
))
dbNode
.
getMetadata
.
remove
(
"isImageNodeCreated"
)
...
...
@@ -115,18 +117,28 @@ object DefinitionNode {
node
}
private
def
setRelationship
(
dbNode
:
Node
,
inputNode
:
Node
)
:
Unit
=
{
var
addRels
:
util.List
[
Relation
]
=
new
util
.
ArrayList
[
Relation
]()
private
def
setRelationship
(
dbNode
:
Node
,
inputNode
:
Node
,
dbRels
:
util.Map
[
String
,
util.List
[
Relation
]]
)
:
Unit
=
{
var
addRels
:
util.List
[
Relation
]
=
new
util
.
ArrayList
[
Relation
]()
var
delRels
:
util.List
[
Relation
]
=
new
util
.
ArrayList
[
Relation
]()
val
inRel
:
util.List
[
Relation
]
=
dbNode
.
getInRelations
val
outRel
:
util.List
[
Relation
]
=
dbNode
.
getOutRelations
val
inRelReq
:
util.List
[
Relation
]
=
inputNode
.
getInRelations
val
outRelReq
:
util.List
[
Relation
]
=
inputNode
.
getOutRelations
if
(
CollectionUtils
.
isNotEmpty
(
inRelReq
))
val
inRelReq
:
util.List
[
Relation
]
=
if
(
CollectionUtils
.
isNotEmpty
(
inputNode
.
getInRelations
))
new
util
.
ArrayList
[
Relation
](
inputNode
.
getInRelations
)
else
new
util
.
ArrayList
[
Relation
]()
val
outRelReq
:
util.List
[
Relation
]
=
if
(
CollectionUtils
.
isNotEmpty
(
inputNode
.
getOutRelations
))
new
util
.
ArrayList
[
Relation
](
inputNode
.
getOutRelations
)
else
new
util
.
ArrayList
[
Relation
]()
if
(
CollectionUtils
.
isNotEmpty
(
inRelReq
))
{
if
(
CollectionUtils
.
isNotEmpty
(
dbRels
.
get
(
"in"
))){
inRelReq
.
addAll
(
dbRels
.
get
(
"in"
))
inputNode
.
setInRelations
(
inRelReq
)
}
getNewRelationsList
(
inRel
,
inRelReq
,
addRels
,
delRels
)
if
(
CollectionUtils
.
isNotEmpty
(
outRelReq
))
}
if
(
CollectionUtils
.
isNotEmpty
(
outRelReq
))
{
if
(
CollectionUtils
.
isNotEmpty
(
dbRels
.
get
(
"out"
))){
outRelReq
.
addAll
(
dbRels
.
get
(
"out"
))
inputNode
.
setOutRelations
(
outRelReq
)
}
getNewRelationsList
(
outRel
,
outRelReq
,
addRels
,
delRels
)
if
(
CollectionUtils
.
isNotEmpty
(
addRels
))
{
}
if
(
CollectionUtils
.
isNotEmpty
(
addRels
))
{
dbNode
.
setAddedRelations
(
addRels
)
updateRelationMetadata
(
dbNode
)
}
...
...
@@ -178,5 +190,40 @@ object DefinitionNode {
}
node
}
def
getDBRelations
(
graphId
:
String
,
schemaName
:
String
,
version
:
String
,
request
:
util.Map
[
String
,
AnyRef
],
dbNode
:
Node
)
:
util.Map
[
String
,
util.List
[
Relation
]]
=
{
val
inRelations
=
new
util
.
ArrayList
[
Relation
]()
val
outRelations
=
new
util
.
ArrayList
[
Relation
]()
val
relDefMap
=
getRelationDefinitionMap
(
graphId
,
version
,
schemaName
);
if
(
null
!=
dbNode
)
{
if
(
CollectionUtils
.
isNotEmpty
(
dbNode
.
getInRelations
))
{
for
(
inRel
<-
dbNode
.
getInRelations
())
{
val
key
=
inRel
.
getRelationType
()
+
"_in_"
+
inRel
.
getStartNodeObjectType
()
if
(
relDefMap
.
containsKey
(
key
))
{
val
value
=
relDefMap
.
get
(
key
).
get
if
(!
request
.
containsKey
(
value
))
{
inRelations
.
add
(
inRel
)
}
}
}
}
if
(
CollectionUtils
.
isNotEmpty
(
dbNode
.
getOutRelations
))
{
for
(
outRel
<-
dbNode
.
getOutRelations
())
{
val
key
=
outRel
.
getRelationType
()
+
"_out_"
+
outRel
.
getEndNodeObjectType
()
if
(
relDefMap
.
containsKey
(
key
))
{
val
value
=
relDefMap
.
get
(
key
).
get
if
(!
request
.
containsKey
(
value
))
{
outRelations
.
add
(
outRel
)
}
}
}
}
}
new
util
.
HashMap
[
String
,
util.List
[
Relation
]](){{
put
(
"in"
,
inRelations
)
put
(
"out"
,
outRelations
)
}}
}
}
This diff is collapsed.
Click to expand it.
ontology-engine/graph-engine_2.11/src/test/scala/org/sunbird/graph/nodes/TestDataNode.scala
+
125
−
5
View file @
120cdf19
...
...
@@ -10,8 +10,7 @@ import org.sunbird.graph.BaseSpec
import
org.sunbird.graph.dac.model.Node
import
org.sunbird.graph.utils.ScalaJsonUtils
import
scala.collection.JavaConversions._
import
scala.concurrent.
{
ExecutionContext
,
Future
}
import
scala.concurrent.
{
Future
}
class
TestDataNode
extends
BaseSpec
{
...
...
@@ -150,16 +149,22 @@ class TestDataNode extends BaseSpec {
}
"update content with valid relation"
should
"update node with relation"
in
{
executeNeo4jQuery
(
"CREATE (n:domain{IL_UNIQUE_ID:'rel_content_0000000001',IL_FUNC_OBJECT_TYPE:'Content',status:'Live'});"
)
executeNeo4jQuery
(
"CREATE (n:domain{IL_UNIQUE_ID:'rel_concept_0000000001',IL_FUNC_OBJECT_TYPE:'Concept',status:'Live'});"
)
val
request
=
new
Request
()
request
.
setObjectType
(
"Content"
)
request
.
setContext
(
getContextMap
())
request
.
put
(
"code"
,
"test"
)
request
.
put
(
"name"
,
"testResource"
)
request
.
put
(
"mimeType"
,
"application/pdf"
)
request
.
put
(
"contentType"
,
"Resource"
)
request
.
put
(
"description"
,
"test"
)
request
.
put
(
"channel"
,
"in.ekstep"
)
request
.
put
(
"children"
,
new
util
.
ArrayList
[
util.Map
[
String
,
AnyRef
]](){{
add
(
new
util
.
HashMap
[
String
,
AnyRef
](){{
put
(
"identifier"
,
"rel_content_0000000001"
)
}})
}})
val
future
:
Future
[
Node
]
=
DataNode
.
create
(
request
)
future
map
{
node
=>
{
assert
(
null
!=
node
)
print
(
node
)
...
...
@@ -169,7 +174,7 @@ class TestDataNode extends BaseSpec {
req
.
put
(
"name"
,
"updated name"
)
req
.
put
(
"concepts"
,
new
util
.
ArrayList
[
util.Map
[
String
,
AnyRef
]](){{
add
(
new
util
.
HashMap
[
String
,
AnyRef
](){{
put
(
"identifier"
,
"
Num:C3:SC2
"
)
put
(
"identifier"
,
"
rel_concept_0000000001
"
)
}})
}})
val
updateFuture
=
DataNode
.
update
(
req
)
...
...
@@ -178,7 +183,7 @@ class TestDataNode extends BaseSpec {
readRequest
.
put
(
"identifier"
,
node
.
getIdentifier
)
DataNode
.
read
(
readRequest
).
map
(
node
=>
{
assert
(
node
.
getMetadata
.
get
(
"name"
).
asInstanceOf
[
String
].
equalsIgnoreCase
(
"updated name"
))
assert
(
node
.
getOutRelations
.
get
(
0
).
getEndNodeId
().
equalsIgnoreCase
(
"Num:C3:SC2"
)
)
assert
(
node
.
getOutRelations
.
size
()
==
2
)
})
})
flatMap
(
f
=>
f
)
}
...
...
@@ -396,4 +401,119 @@ class TestDataNode extends BaseSpec {
}
}
}
"update content with valid relations having type assosiatedTo and hasSequenceMember"
should
"update node with relation"
in
{
executeNeo4jQuery
(
"CREATE (n:domain{IL_UNIQUE_ID:'rel_concept_00000001',IL_FUNC_OBJECT_TYPE:'Concept',status:'Live'});"
)
executeNeo4jQuery
(
"CREATE (n:domain{IL_UNIQUE_ID:'rel_concept_00000002',IL_FUNC_OBJECT_TYPE:'Concept',status:'Live'});"
)
executeNeo4jQuery
(
"CREATE (n:domain{IL_UNIQUE_ID:'rel_itemset_00000001',IL_FUNC_OBJECT_TYPE:'ItemSet',status:'Live'});"
)
executeNeo4jQuery
(
"CREATE (n:domain{IL_UNIQUE_ID:'rel_collections_00000001',IL_FUNC_OBJECT_TYPE:'Content',status:'Live', contentType:'TextBook'});"
)
executeNeo4jQuery
(
"CREATE (n:domain{IL_UNIQUE_ID:'rel_collections_00000002',IL_FUNC_OBJECT_TYPE:'Content',status:'Live', contentType:'TextBook'});"
)
executeNeo4jQuery
(
"CREATE (n:domain{IL_UNIQUE_ID:'rel_collections_00000003',IL_FUNC_OBJECT_TYPE:'ContentImage',status:'Live', contentType:'TextBook'});"
)
val
request
=
new
Request
()
request
.
setObjectType
(
"Content"
)
request
.
setContext
(
getContextMap
())
request
.
put
(
"code"
,
"test"
)
request
.
put
(
"name"
,
"testResource"
)
request
.
put
(
"mimeType"
,
"application/pdf"
)
request
.
put
(
"contentType"
,
"Resource"
)
request
.
put
(
"description"
,
"test"
)
request
.
put
(
"channel"
,
"in.ekstep"
)
request
.
put
(
"concepts"
,
new
util
.
ArrayList
[
util.Map
[
String
,
AnyRef
]](){{
add
(
new
util
.
HashMap
[
String
,
AnyRef
](){{
put
(
"identifier"
,
"rel_concept_00000001"
)
}})
}})
request
.
put
(
"collections"
,
new
util
.
ArrayList
[
util.Map
[
String
,
AnyRef
]](){{
add
(
new
util
.
HashMap
[
String
,
AnyRef
](){{
put
(
"identifier"
,
"rel_collections_00000001"
)
}})
}})
val
future
:
Future
[
Node
]
=
DataNode
.
create
(
request
)
future
map
{
node
=>
{
assert
(
null
!=
node
)
print
(
node
)
assert
(
node
.
getMetadata
.
get
(
"name"
).
asInstanceOf
[
String
].
equalsIgnoreCase
(
"testResource"
))
val
req
=
new
Request
(
request
)
req
.
getContext
.
put
(
"identifier"
,
node
.
getIdentifier
)
req
.
put
(
"name"
,
"updated name"
)
req
.
put
(
"concepts"
,
new
util
.
ArrayList
[
util.Map
[
String
,
AnyRef
]](){{
add
(
new
util
.
HashMap
[
String
,
AnyRef
](){{
put
(
"identifier"
,
"rel_concept_00000002"
)
}})
}})
req
.
put
(
"itemSets"
,
new
util
.
ArrayList
[
util.Map
[
String
,
AnyRef
]](){{
add
(
new
util
.
HashMap
[
String
,
AnyRef
](){{
put
(
"identifier"
,
"rel_itemset_00000001"
)
}})
}})
req
.
put
(
"collections"
,
new
util
.
ArrayList
[
util.Map
[
String
,
AnyRef
]](){{
add
(
new
util
.
HashMap
[
String
,
AnyRef
](){{
put
(
"identifier"
,
"rel_collections_00000002"
)
}})
add
(
new
util
.
HashMap
[
String
,
AnyRef
](){{
put
(
"identifier"
,
"rel_collections_00000003"
)
}})
}})
val
updateFuture
=
DataNode
.
update
(
req
)
updateFuture
.
map
(
node
=>
{
val
readRequest
=
new
Request
(
request
)
readRequest
.
put
(
"identifier"
,
node
.
getIdentifier
)
DataNode
.
read
(
readRequest
).
map
(
node
=>
{
assert
(
node
.
getMetadata
.
get
(
"name"
).
asInstanceOf
[
String
].
equalsIgnoreCase
(
"updated name"
))
assert
(
node
.
getOutRelations
.
size
()
==
2
)
assert
(
node
.
getInRelations
.
size
()
==
2
)
})
})
flatMap
(
f
=>
f
)
}
}
flatMap
(
f
=>
f
)
}
"update content with valid relations having in direction"
should
"update node with relation"
in
{
executeNeo4jQuery
(
"CREATE (n:domain{IL_UNIQUE_ID:'rel_collections_0000000101',IL_FUNC_OBJECT_TYPE:'Content',status:'Live', contentType:'TextBook'});"
)
executeNeo4jQuery
(
"CREATE (n:domain{IL_UNIQUE_ID:'rel_collections_0000000102',IL_FUNC_OBJECT_TYPE:'Content',status:'Live', contentType:'TextBook'});"
)
executeNeo4jQuery
(
"CREATE (n:domain{IL_UNIQUE_ID:'rel_usedbycontent_0000000101',IL_FUNC_OBJECT_TYPE:'Content',status:'Live', IL_SYS_NODE_TYPE:'DATA_NODE', contentType:'TextBook'});"
)
executeNeo4jQuery
(
"CREATE (n:domain{IL_UNIQUE_ID:'rel_usedbycontent_0000000102',IL_FUNC_OBJECT_TYPE:'Content',status:'Live', IL_SYS_NODE_TYPE:'DATA_NODE',contentType:'TextBook'});"
)
val
request
=
new
Request
()
request
.
setObjectType
(
"Content"
)
request
.
setContext
(
getContextMap
())
request
.
put
(
"code"
,
"test"
)
request
.
put
(
"name"
,
"testResource"
)
request
.
put
(
"mimeType"
,
"application/pdf"
)
request
.
put
(
"contentType"
,
"Resource"
)
request
.
put
(
"description"
,
"test"
)
request
.
put
(
"channel"
,
"in.ekstep"
)
request
.
put
(
"collections"
,
new
util
.
ArrayList
[
util.Map
[
String
,
AnyRef
]](){{
add
(
new
util
.
HashMap
[
String
,
AnyRef
](){{
put
(
"identifier"
,
"rel_collections_0000000101"
)
}})
add
(
new
util
.
HashMap
[
String
,
AnyRef
](){{
put
(
"identifier"
,
"rel_collections_0000000102"
)
}})
}})
val
future
:
Future
[
Node
]
=
DataNode
.
create
(
request
)
future
map
{
node
=>
{
assert
(
null
!=
node
)
print
(
node
)
assert
(
node
.
getMetadata
.
get
(
"name"
).
asInstanceOf
[
String
].
equalsIgnoreCase
(
"testResource"
))
val
req
=
new
Request
(
request
)
req
.
getContext
.
put
(
"identifier"
,
node
.
getIdentifier
)
req
.
put
(
"name"
,
"updated name"
)
req
.
put
(
"usedByContent"
,
new
util
.
ArrayList
[
util.Map
[
String
,
AnyRef
]](){{
add
(
new
util
.
HashMap
[
String
,
AnyRef
](){{
put
(
"identifier"
,
"rel_usedbycontent_0000000101"
)
}})
add
(
new
util
.
HashMap
[
String
,
AnyRef
](){{
put
(
"identifier"
,
"rel_usedbycontent_0000000102"
)
}})
}})
val
updateFuture
=
DataNode
.
update
(
req
)
updateFuture
.
map
(
node
=>
{
val
readRequest
=
new
Request
(
request
)
readRequest
.
put
(
"identifier"
,
node
.
getIdentifier
)
DataNode
.
read
(
readRequest
).
map
(
node
=>
{
assert
(
node
.
getMetadata
.
get
(
"name"
).
asInstanceOf
[
String
].
equalsIgnoreCase
(
"updated name"
))
assert
(
node
.
getInRelations
.
size
()
==
4
)
})
})
flatMap
(
f
=>
f
)
}
}
flatMap
(
f
=>
f
)
}
}
This diff is collapsed.
Click to expand it.
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment
Menu
Explore
Projects
Groups
Topics
Snippets