@@ -44,8 +44,6 @@ class StreamsSinkProceduresIT {
4444
4545    private  val  cypherQueryTemplate =  " MERGE (n:Label {id: event.id}) ON CREATE SET n += event.properties" 
4646
47-     private  val  topics =  listOf (" shouldWriteCypherQuery"  )
48- 
4947    @Rule
5048    @JvmField
5149    var  testName =  TestName ()
@@ -114,7 +112,8 @@ class StreamsSinkProceduresIT {
114112        assertTrue { resultMap.containsKey(" event"  ) }
115113        assertNotNull(resultMap[" event"  ], " should contain event"  )
116114        val  event =  resultMap[" event"  ] as  Map <String , Any ?>
117-         assertEquals(data, event)
115+         val  resultData =  event[" data"  ] as  Map <String , Any ?>
116+         assertEquals(data, resultData)
118117    }
119118
120119    @Test
@@ -123,4 +122,51 @@ class StreamsSinkProceduresIT {
123122        assertFalse { result.hasNext() }
124123    }
125124
125+     @Test
126+     fun  shouldReadArrayOfJson () {
127+         val  topic =  " array-topic" 
128+         val  list =  listOf (data, data)
129+         val  producerRecord =  ProducerRecord (topic, UUID .randomUUID().toString(), JSONUtils .writeValueAsBytes(list))
130+         kafkaProducer.send(producerRecord).get()
131+         db.execute(""" 
132+             CALL streams.consume('$topic ', {timeout: 5000}) YIELD event 
133+             UNWIND event.data AS data 
134+             CREATE (t:TEST) SET t += data.properties 
135+         """  .trimIndent()).close()
136+         val  searchResult =  db.execute(" MATCH (t:TEST) WHERE properties(t) = {props} RETURN count(t) AS count"  , mapOf (" props"   to dataProperties))
137+         assertTrue { searchResult.hasNext() }
138+         val  searchResultMap =  searchResult.next()
139+         assertTrue { searchResultMap.containsKey(" count"  ) }
140+         assertEquals(2L , searchResultMap[" count"  ])
141+     }
142+ 
143+     @Test
144+     fun  shouldReadSimpleDataType () {
145+         val  topic =  " simple-data" 
146+         val  simpleInt =  1 
147+         val  simpleBoolean =  true 
148+         val  simpleString =  " test" 
149+         var  producerRecord =  ProducerRecord (topic, UUID .randomUUID().toString(), JSONUtils .writeValueAsBytes(simpleInt))
150+         kafkaProducer.send(producerRecord).get()
151+         producerRecord =  ProducerRecord (topic, UUID .randomUUID().toString(), JSONUtils .writeValueAsBytes(simpleBoolean))
152+         kafkaProducer.send(producerRecord).get()
153+         producerRecord =  ProducerRecord (topic, UUID .randomUUID().toString(), JSONUtils .writeValueAsBytes(simpleString))
154+         kafkaProducer.send(producerRecord).get()
155+         db.execute(""" 
156+             CALL streams.consume('$topic ', {timeout: 5000}) YIELD event 
157+             MERGE (t:LOG{simpleData: event.data}) 
158+             RETURN count(t) AS insert 
159+         """  .trimIndent()).close()
160+         val  searchResult =  db.execute(""" 
161+             MATCH (l:LOG) 
162+             WHERE l.simpleData IN [$simpleInt , $simpleBoolean , "$simpleString "] 
163+             RETURN count(l) as count 
164+         """  .trimIndent())
165+         assertTrue { searchResult.hasNext() }
166+         val  searchResultMap =  searchResult.next()
167+         assertTrue { searchResultMap.containsKey(" count"  ) }
168+         assertEquals(3L , searchResultMap[" count"  ])
169+ 
170+     }
171+ 
126172}
0 commit comments