public void OperateDoubleNestedMap() { Key key = new Key(args.ns, args.set, "opmkey19"); client.Delete(null, key); IDictionary <Value, Value> m11 = new Dictionary <Value, Value>(); m11[Value.Get("key111")] = Value.Get(1); IDictionary <Value, Value> m12 = new Dictionary <Value, Value>(); m12[Value.Get("key121")] = Value.Get(5); IDictionary <Value, Value> m1 = new Dictionary <Value, Value>(); m1[Value.Get("key11")] = Value.Get(m11); m1[Value.Get("key12")] = Value.Get(m12); IDictionary <Value, Value> m21 = new Dictionary <Value, Value>(); m21[Value.Get("key211")] = Value.Get(7); IDictionary <Value, Value> m2 = new Dictionary <Value, Value>(); m2[Value.Get("key21")] = Value.Get(m21); Dictionary <Value, Value> inputMap = new Dictionary <Value, Value>(); inputMap[Value.Get("key1")] = Value.Get(m1); inputMap[Value.Get("key2")] = Value.Get(m2); // Create maps. client.Put(null, key, new Bin(binName, inputMap)); // Set map value to 11 for map key "key21" inside of map key "key2" // and retrieve all maps. Record record = client.Operate(null, key, MapOperation.Put(MapPolicy.Default, binName, Value.Get("key121"), Value.Get(11), CTX.MapKey(Value.Get("key1")), CTX.MapRank(-1)), Operation.Get(binName) ); AssertRecordFound(key, record); IList results = record.GetList(binName); int i = 0; long count = (long)results[i++]; Assert.AreEqual(1, count); IDictionary map = (IDictionary)results[i++]; Assert.AreEqual(2, map.Count); map = (IDictionary)map["key1"]; Assert.AreEqual(2, map.Count); map = (IDictionary)map["key12"]; Assert.AreEqual(1, map.Count); long v = (long)map["key121"]; Assert.AreEqual(11, v); }