/** Tests the usage of complex keys for supported methods. */ @Test public void testComplexKeys() throws UnsupportedEncodingException { ComplexKey start = ComplexKey.of(2012, 05, 05); ComplexKey end = ComplexKey.of(2012, 05, 12); ComplexKey key = ComplexKey.of("mykey"); ComplexKey keys = ComplexKey.of("users:10", "users:11"); Query query = new Query(); query.setRangeStart(start); query.setRangeEnd(end); assertEquals(2, query.getArgs().size()); String result = URLDecoder.decode(query.toString(), "UTF-8"); assertEquals("?startkey=[2012,5,5]&endkey=[2012,5,12]", result); query = new Query(); query.setRange(start, end); assertEquals(2, query.getArgs().size()); result = URLDecoder.decode(query.toString(), "UTF-8"); assertEquals("?startkey=[2012,5,5]&endkey=[2012,5,12]", result); query = new Query(); query.setKey(key); assertEquals(1, query.getArgs().size()); result = URLDecoder.decode(query.toString(), "UTF-8"); assertEquals("?key=\"mykey\"", result); query = new Query(); query.setKeys(keys); assertEquals(1, query.getArgs().size()); result = URLDecoder.decode(query.toString(), "UTF-8"); assertEquals("?keys=[\"users:10\",\"users:11\"]", result); }
/** Tests the "range" argument. */ @Test public void testRange() throws UnsupportedEncodingException { Query query = new Query(); query.setRangeStart("startkey"); query.setRangeEnd("endkey"); assertEquals(2, query.getArgs().size()); String result = URLDecoder.decode(query.toString(), "UTF-8"); assertEquals("?startkey=\"startkey\"&endkey=\"endkey\"", result); query = new Query(); query.setRange("foo", "bar"); assertEquals(2, query.getArgs().size()); result = URLDecoder.decode(query.toString(), "UTF-8"); assertEquals("?startkey=\"foo\"&endkey=\"bar\"", result); }