diff options
Diffstat (limited to 'ext/librethinkdbxx/test/upstream/transform/object.yaml')
-rw-r--r-- | ext/librethinkdbxx/test/upstream/transform/object.yaml | 147 |
1 files changed, 0 insertions, 147 deletions
diff --git a/ext/librethinkdbxx/test/upstream/transform/object.yaml b/ext/librethinkdbxx/test/upstream/transform/object.yaml deleted file mode 100644 index 41f9aa91..00000000 --- a/ext/librethinkdbxx/test/upstream/transform/object.yaml +++ /dev/null @@ -1,147 +0,0 @@ -desc: Tests manipulation operations on objects -tests: - - # Define some objects to work with - - def: obj = r.expr({'a':1, 'b':2,'c':"str",'d':null,'e':{'f':'buzz'}}) - - ## Get attr - - - cd: obj['a'] - js: - - obj('a') - - obj.getField('a') - ot: 1 - - cd: obj['c'] - js: - - obj('c') - - obj.getField('c') - ot: 'str' - - ## Has_Fields - - - cd: obj.has_fields('b') - ot: true - - cd: obj.keys().contains('d') - ot: true - - cd: obj.has_fields('d') - ot: false - - cd: obj.has_fields({'e':'f'}) - ot: true - - cd: obj.has_fields({'e':'g'}) - ot: false - - cd: obj.has_fields('f') - ot: false - - # Has_Fields is variadic - - cd: obj.has_fields('a', 'b') - ot: true - - cd: obj.has_fields('a', 'd') - ot: false - - cd: obj.has_fields('a', 'f') - ot: false - - cd: obj.has_fields('a', {'e':'f'}) - ot: true - - # Has_Fields is polymorphic - - cd: r.expr([obj, obj.pluck('a', 'b')]).has_fields('a', 'b').count() - ot: 2 - - cd: r.expr([obj, obj.pluck('a', 'b')]).has_fields('a', 'c').count() - ot: 1 - - cd: r.expr([obj, obj.pluck('a', 'e')]).has_fields('a', {'e':'f'}).count() - ot: 2 - - ## Pluck - - - cd: obj.pluck('a') - ot: {'a':1} - - cd: obj.pluck('a', 'b') - ot: {'a':1, 'b':2} - - ## Without - - - cd: obj.without('a') - ot: {'b':2, 'c':'str', 'd':null, 'e':{'f':'buzz'}} - - cd: obj.without('a', 'b') - ot: {'c':'str', 'd':null,'e':{'f':'buzz'}} - - cd: obj.without('a', 'b', 'c', 'd') - ot: {'e':{'f':'buzz'}} - - cd: obj.without({'e':'f'}) - ot: {'a':1, 'b':2, 'c':'str', 'd':null, 'e':{}} - - cd: obj.without({'e':'buzz'}) - ot: {'a':1, 'b':2, 'c':'str', 'd':null, 'e':{'f':'buzz'}} - - ## Merge - #obj = r.expr({'a':1, 'b':2,'c':"str",'d':null,'e':{'f':'buzz'}}) - - # complete replacement - - cd: obj.merge(1) - ot: 1 - - # add attr - - cd: obj.merge({'e':-2}) - ot: {'a':1, 'b':2, 'c':'str', 'd':null, 'e':-2} - - # delete attr - - cd: obj.merge({'e':r.literal()}) - ot: {'a':1, 'b':2, 'c':'str', 'd':null} - - # recursive merge - - cd: obj.merge({'e':{'f':'quux'}}) - ot: {'a':1, 'b':2, 'c':'str', 'd':null, 'e':{'f':'quux'}} - - - cd: obj.merge({'e':{'g':'quux'}}) - ot: {'a':1, 'b':2, 'c':'str', 'd':null, 'e':{'f':'buzz', 'g':'quux'}} - - - cd: obj.merge({'e':r.literal({'g':'quux'})}) - ot: {'a':1, 'b':2, 'c':'str', 'd':null, 'e':{'g':'quux'}} - - # overwrite - - cd: obj.merge({'a':-1}) - ot: {'a':-1, 'b':2, 'c':'str', 'd':null, 'e':{'f':'buzz'}} - - - def: errmsg = 'Stray literal keyword found:'+' literal is only legal inside of the object passed to merge or update and cannot nest inside other literals.' - - # errors - - cd: r.literal('foo') - ot: err("ReqlQueryLogicError", errmsg, []) - - - cd: obj.merge(r.literal('foo')) - ot: err("ReqlQueryLogicError", errmsg, []) - - - cd: obj.merge({'foo':r.literal(r.literal('foo'))}) - ot: err("ReqlQueryLogicError", errmsg, []) - - - def: o = r.expr({'a':{'b':1, 'c':2}, 'd':3}) - - - cd: o.merge({'e':4}, {'f':5}) - ot: ({'a':{'b':1, 'c':2}, 'd':3, 'e':4, 'f':5}) - - - rb: r.expr([o, o.merge({'d':4})]).merge{|row| {'e':row['d']}} - py: r.expr([o, o.merge({'d':4})]).merge(lambda row:{'e':row['d']}) - js: r.expr([o, o.merge({'d':4})]).merge(function(row){return {'e':row('d')}}) - ot: ([{'a':{'b':1, 'c':2}, 'd':3, 'e':3}, {'a':{'b':1, 'c':2}, 'd':4, 'e':4}]) - - - py: r.expr([o, o.merge({'d':4})]).merge({'e':r.row['d']}) - js: r.expr([o, o.merge({'d':4})]).merge({'e':r.row('d')}) - ot: ([{'a':{'b':1, 'c':2}, 'd':3, 'e':3}, {'a':{'b':1, 'c':2}, 'd':4, 'e':4}]) - - - rb: r.expr([o, o.merge({'d':4})]).merge{|row| {'a':{'b':2}}} - py: r.expr([o, o.merge({'d':4})]).merge(lambda row:{'a':{'b':2}}) - js: r.expr([o, o.merge({'d':4})]).merge(function(row){return {'a':{'b':2}}}) - ot: ([{'a':{'b':2, 'c':2}, 'd':3}, {'a':{'b':2, 'c':2}, 'd':4}]) - - - rb: r.expr([o, o.merge({'d':4})]).merge{|row| {'a':r.literal({'b':2})}} - py: r.expr([o, o.merge({'d':4})]).merge(lambda row:{'a':r.literal({'b':2})}) - js: r.expr([o, o.merge({'d':4})]).merge(function(row){return {'a':r.literal({'b':2})}}) - ot: ([{'a':{'b':2}, 'd':3}, {'a':{'b':2}, 'd':4}]) - - ## keys - - cd: obj.keys() - ot: (['a', 'b', 'c', 'd', 'e']) - - - cd: obj.values() - ot: ([1, 2, 'str', null, {'f':'buzz'}]) - - ## count - - cd: obj.count() - ot: 5 |