Skip to content

Commit fe1c865

Browse files
committed
Remove unit tests for Couchbase ticket
1 parent decd5dc commit fe1c865

File tree

1 file changed

+0
-284
lines changed

1 file changed

+0
-284
lines changed

tests/query_tests.rs

Lines changed: 0 additions & 284 deletions
Original file line numberDiff line numberDiff line change
@@ -212,287 +212,3 @@ fn parameters() {
212212
assert_eq!(query.execute().unwrap().count(), 1);
213213
});
214214
}
215-
216-
// Use case 1: ARRAY_CONTAINS => bad index (because of partial match)
217-
#[test]
218-
fn use_case_1() {
219-
utils::with_db(|db| {
220-
assert!(db
221-
.create_index(
222-
"good_index",
223-
&ValueIndexConfiguration::new(
224-
QueryLanguage::JSON,
225-
r#"[[".type"],[".session_id"]]"#
226-
),
227-
)
228-
.unwrap());
229-
230-
assert!(db
231-
.create_index(
232-
"bad_index",
233-
&ValueIndexConfiguration::new(QueryLanguage::JSON, r#"[[".type"]]"#),
234-
)
235-
.unwrap());
236-
237-
let mut doc = Document::new_with_id("id1");
238-
let mut props = doc.mutable_properties();
239-
props.at("type").put_string("HardcodedType");
240-
props.at("session_id").put_string("session1");
241-
db.save_document_with_concurency_control(&mut doc, ConcurrencyControl::FailOnConflict)
242-
.expect("save");
243-
244-
let query = Query::new(
245-
db,
246-
QueryLanguage::N1QL,
247-
"SELECT _.* FROM _ \
248-
WHERE _.type = 'HardcodedType' \
249-
AND ARRAY_CONTAINS($sessionIds, _.session_id)",
250-
)
251-
.expect("create query");
252-
253-
let mut params = MutableDict::new();
254-
let mut session_ids = MutableArray::new();
255-
session_ids.append().put_string("session1");
256-
session_ids.append().put_string("session2");
257-
params.at("sessionIds").put_value(&session_ids);
258-
query.set_parameters(&params);
259-
260-
let params = query.parameters();
261-
assert_eq!(
262-
params.get("sessionIds").as_array().get(0).as_string(),
263-
Some("session1")
264-
);
265-
assert_eq!(
266-
params.get("sessionIds").as_array().get(1).as_string(),
267-
Some("session2")
268-
);
269-
270-
println!("Explain: {:?}", query.explain());
271-
assert_eq!(query.execute().unwrap().count(), 1);
272-
});
273-
}
274-
275-
// Use case 2: IN ($truc) + set_parameters => no result
276-
#[test]
277-
fn use_case_2() {
278-
utils::with_db(|db| {
279-
assert!(db
280-
.create_index(
281-
"good_index",
282-
&ValueIndexConfiguration::new(
283-
QueryLanguage::JSON,
284-
r#"[[".type"],[".session_id"]]"#
285-
),
286-
)
287-
.unwrap());
288-
289-
assert!(db
290-
.create_index(
291-
"bad_index",
292-
&ValueIndexConfiguration::new(QueryLanguage::JSON, r#"[[".type"]]"#),
293-
)
294-
.unwrap());
295-
296-
let mut doc = Document::new_with_id("id1");
297-
let mut props = doc.mutable_properties();
298-
props.at("type").put_string("HardcodedType");
299-
props.at("session_id").put_string("session1");
300-
db.save_document_with_concurency_control(&mut doc, ConcurrencyControl::FailOnConflict)
301-
.expect("save");
302-
303-
let query = Query::new(
304-
db,
305-
QueryLanguage::N1QL,
306-
"SELECT _.* FROM _ \
307-
WHERE _.type = 'HardcodedType' \
308-
AND _.session_id IN ($sessionIds)",
309-
)
310-
.expect("create query");
311-
312-
let mut params = MutableDict::new();
313-
let mut session_ids = MutableArray::new();
314-
session_ids.append().put_string("session1");
315-
session_ids.append().put_string("session2");
316-
params.at("sessionIds").put_value(&session_ids);
317-
query.set_parameters(&params);
318-
319-
let params = query.parameters();
320-
assert_eq!(
321-
params.get("sessionIds").as_array().get(0).as_string(),
322-
Some("session1")
323-
);
324-
assert_eq!(
325-
params.get("sessionIds").as_array().get(1).as_string(),
326-
Some("session2")
327-
);
328-
329-
println!("Explain: {:?}", query.explain());
330-
assert_eq!(query.execute().unwrap().count(), 1);
331-
});
332-
}
333-
334-
// Use case 3: IN + hardcoded values => result + good index, but sql injection
335-
#[test]
336-
fn use_case_3() {
337-
utils::with_db(|db| {
338-
assert!(db
339-
.create_index(
340-
"good_index",
341-
&ValueIndexConfiguration::new(
342-
QueryLanguage::JSON,
343-
r#"[[".type"],[".session_id"]]"#
344-
),
345-
)
346-
.unwrap());
347-
348-
assert!(db
349-
.create_index(
350-
"bad_index",
351-
&ValueIndexConfiguration::new(QueryLanguage::JSON, r#"[[".type"]]"#),
352-
)
353-
.unwrap());
354-
355-
let mut doc = Document::new_with_id("id1");
356-
let mut props = doc.mutable_properties();
357-
props.at("type").put_string("HardcodedType");
358-
props.at("session_id").put_string("session1");
359-
db.save_document_with_concurency_control(&mut doc, ConcurrencyControl::FailOnConflict)
360-
.expect("save");
361-
362-
let query = Query::new(
363-
db,
364-
QueryLanguage::N1QL,
365-
"SELECT _.* FROM _ \
366-
WHERE _.type = 'HardcodedType' \
367-
AND _.session_id in ('session1', 'session2')",
368-
)
369-
.expect("create query");
370-
371-
println!("Explain: {:?}", query.explain());
372-
assert_eq!(query.execute().unwrap().count(), 1);
373-
});
374-
}
375-
376-
// Use case 4: IN [$truc] + set_parameters => n1ql error
377-
#[test]
378-
fn use_case_4() {
379-
utils::with_db(|db| {
380-
assert!(db
381-
.create_index(
382-
"good_index",
383-
&ValueIndexConfiguration::new(
384-
QueryLanguage::JSON,
385-
r#"[[".type"],[".session_id"]]"#
386-
),
387-
)
388-
.unwrap());
389-
390-
assert!(db
391-
.create_index(
392-
"bad_index",
393-
&ValueIndexConfiguration::new(QueryLanguage::JSON, r#"[[".type"]]"#),
394-
)
395-
.unwrap());
396-
397-
let mut doc = Document::new_with_id("id1");
398-
let mut props = doc.mutable_properties();
399-
props.at("type").put_string("HardcodedType");
400-
props.at("session_id").put_string("session1");
401-
db.save_document_with_concurency_control(&mut doc, ConcurrencyControl::FailOnConflict)
402-
.expect("save");
403-
404-
let query = Query::new(
405-
db,
406-
QueryLanguage::N1QL,
407-
"SELECT _.* FROM _ \
408-
WHERE _.type = 'HardcodedType' \
409-
AND _.session_id IN [$sessionIds]",
410-
)
411-
.expect("create query");
412-
413-
let mut params = MutableDict::new();
414-
let mut session_ids = MutableArray::new();
415-
session_ids.append().put_string("session1");
416-
session_ids.append().put_string("session2");
417-
params.at("sessionIds").put_value(&session_ids);
418-
query.set_parameters(&params);
419-
420-
let params = query.parameters();
421-
assert_eq!(
422-
params.get("sessionIds").as_array().get(0).as_string(),
423-
Some("session1")
424-
);
425-
assert_eq!(
426-
params.get("sessionIds").as_array().get(1).as_string(),
427-
Some("session2")
428-
);
429-
430-
println!("Explain: {:?}", query.explain());
431-
assert_eq!(query.execute().unwrap().count(), 1);
432-
});
433-
}
434-
435-
// Use case 5: IN [$truc] + set_parameters => n1ql error
436-
#[test]
437-
fn use_case_5() {
438-
utils::with_db(|db| {
439-
assert!(db
440-
.create_index(
441-
"good_index",
442-
&ValueIndexConfiguration::new(
443-
QueryLanguage::JSON,
444-
r#"[[".type"],[".session_id"]]"#
445-
),
446-
)
447-
.unwrap());
448-
449-
assert!(db
450-
.create_index(
451-
"bad_index",
452-
&ValueIndexConfiguration::new(QueryLanguage::JSON, r#"[[".type"]]"#),
453-
)
454-
.unwrap());
455-
456-
let mut doc = Document::new_with_id("id1");
457-
let mut props = doc.mutable_properties();
458-
props.at("type").put_string("HardcodedType");
459-
props.at("session_id").put_string("session1");
460-
db.save_document_with_concurency_control(&mut doc, ConcurrencyControl::FailOnConflict)
461-
.expect("save");
462-
463-
let query = Query::new(
464-
db,
465-
QueryLanguage::N1QL,
466-
"SELECT _.* FROM _ \
467-
WHERE _.type = 'HardcodedType' \
468-
AND _.session_id IN $sessionIds",
469-
)
470-
.expect("create query");
471-
472-
let mut params = MutableDict::new();
473-
let mut session_ids = MutableArray::new();
474-
session_ids.append().put_string("session1");
475-
session_ids.append().put_string("session2");
476-
params.at("sessionIds").put_value(&session_ids);
477-
query.set_parameters(&params);
478-
479-
let params = query.parameters();
480-
assert_eq!(
481-
params.get("sessionIds").as_array().get(0).as_string(),
482-
Some("session1")
483-
);
484-
assert_eq!(
485-
params.get("sessionIds").as_array().get(1).as_string(),
486-
Some("session2")
487-
);
488-
489-
println!("Explain: {:?}", query.explain());
490-
assert_eq!(query.execute().unwrap().count(), 1);
491-
});
492-
}
493-
494-
// Use case 1: ARRAY_CONTAINS => bad index (because of partial match)
495-
// Use case 2: IN ($truc) + set_parameters => no result
496-
// Use case 3: IN + hardcoded values => result + good index, but sql injection
497-
// Use case 4: IN [$truc] + set_parameters => n1ql error
498-
// Use case 5: IN $truc + set_parameters => n1ql error

0 commit comments

Comments
 (0)