 
 ###
 @test 
+@description Check nodes creation / properties.remove / deletion
+db.nodes(props).properties.remove(name)
+###
+Tinytest.add 'Neo4jNode - properties - remove(name)', (test) ->
+  node = db.nodes({one: 1})
+  _id = node.get().id
+  
+  __nodesInstanceCRC__ test, node
+  __nodeCRC__ test, node.get(), [], {one: 1}
+
+  node.properties.remove 'one'
+  test.isUndefined node.get().one
+
+  _node = db.queryOne "MATCH (n) WHERE id(n) = {id} RETURN n", {id: _id}
+
+  test.isUndefined _node.n.one
+
+  test.equal node.delete(), undefined
+
+###
+@test 
+@description Check nodes creation / properties.remove / deletion
+db.nodes(props).properties.remove(name)
+###
+Tinytest.add 'Neo4jNode - properties - remove(name) [non-existent]', (test) ->
+  node = db.nodes()
+  _id = node.get().id
+  
+  __nodesInstanceCRC__ test, node
+  __nodeCRC__ test, node.get(), [], {}
+
+  node.properties.remove 'one'
+  test.isUndefined node.get().one
+
+  _node = db.queryOne "MATCH (n) WHERE id(n) = {id} RETURN n", {id: _id}
+
+  test.isUndefined _node.n.one
+
+  test.equal node.delete(), undefined
+
+###
+@test 
+@description Check nodes creation / properties.remove / deletion
+db.nodes(props).properties.remove([name, name2])
+###
+Tinytest.add 'Neo4jNode - properties - remove([String])', (test) ->
+  node = db.nodes({one: 1, two: 2})
+  _id = node.get().id
+  
+  __nodesInstanceCRC__ test, node
+  __nodeCRC__ test, node.get(), [], {one: 1, two: 2}
+
+  node.properties.delete ['one', 'two']
+  test.isUndefined node.get().one, '[one] removed from instance'
+  test.isUndefined node.get().two, '[two] removed from instance'
+
+  _node = db.queryOne "MATCH (n) WHERE id(n) = {id} RETURN n", {id: _id}
+
+  test.isUndefined _node.n.one, '[one] removed from db'
+  test.isUndefined _node.n.two, '[two] removed from db'
+
+  test.equal node.delete(), undefined
+
+###
+@test 
+@description Check nodes creation / properties.remove / deletion
+db.nodes(props).properties.remove([name, name2])
+###
+Tinytest.add 'Neo4jNode - properties - remove([String]) [non-existent]', (test) ->
+  node = db.nodes({one: 1, two: 2})
+  _id = node.get().id
+  
+  __nodesInstanceCRC__ test, node
+  __nodeCRC__ test, node.get(), [], {one: 1, two: 2}
+
+  node.properties.remove ['three', 'four']
+  test.equal node.get().one, 1
+  test.equal node.get().two, 2
+  test.isUndefined node.get().three
+  test.isUndefined node.get().four
+
+  _node = db.queryOne "MATCH (n) WHERE id(n) = {id} RETURN n", {id: _id}
+
+  test.equal _node.n.one, 1
+  test.equal _node.n.two, 2
+  test.isUndefined _node.n.three
+  test.isUndefined _node.n.four
+
+  test.equal node.delete(), undefined
+
+###
+@test 
+@description Check nodes creation / properties.remove / deletion
+db.nodes(props).properties.remove()
+###
+Tinytest.add 'Neo4jNode - properties - remove() [remove all]', (test) ->
+  node = db.nodes({one: 1, two: 2})
+  _id = node.get().id
+  
+  __nodesInstanceCRC__ test, node
+  __nodeCRC__ test, node.get(), [], {one: 1, two: 2}
+
+  node.properties.remove()
+  test.isUndefined node.get().one, '[one] removed from instance'
+  test.isUndefined node.get().two, '[two] removed from instance'
+
+  _node = db.queryOne "MATCH (n) WHERE id(n) = {id} RETURN n", {id: _id}
+
+  test.isUndefined _node.n.one, '[one] removed from db'
+  test.isUndefined _node.n.two, '[two] removed from db'
+
+  test.equal node.remove(), undefined
+
+###
+@test 
 @description Check nodes creation / property / deletion
 db.nodes(props).property(name)
 ###


###
@test 
@description
db.constraint.create()
db.constraint.get()

  test.isTrue !!~uri.indexOf('://')
  test.equal node.index.get('Special', 'uuid').indexed, uri
  test.equal node.index.drop('Special', 'uuid'), []
  try
    test.equal node.index.get('Special', 'uuid'), [] #Throws an error

  node.delete()

###
