Skip to content

Commit dd97dca

Browse files
committed
improve tests
1 parent cdef74a commit dd97dca

File tree

6 files changed

+3
-1718
lines changed

6 files changed

+3
-1718
lines changed

src/dms/compound_select.rs

Lines changed: 0 additions & 170 deletions
Original file line numberDiff line numberDiff line change
@@ -135,173 +135,3 @@ impl fmt::Display for CompoundSelectOperator {
135135
}
136136
}
137137
}
138-
139-
#[cfg(test)]
140-
mod tests {
141-
use base::column::Column;
142-
use base::table::Table;
143-
use base::{FieldDefinitionExpression, FieldValueExpression, Literal};
144-
use dms::select::SelectStatement;
145-
146-
use super::*;
147-
148-
#[test]
149-
fn simple() {
150-
let sql = "SELECT * FROM my_table WHERE age < 30;";
151-
let res = CompoundSelectStatement::parse(sql);
152-
println!("{:?}", res);
153-
}
154-
155-
#[test]
156-
fn union() {
157-
let qstr = "SELECT id, 1 FROM Vote UNION SELECT id, stars from Rating;";
158-
let qstr2 = "(SELECT id, 1 FROM Vote) UNION (SELECT id, stars from Rating);";
159-
let res = CompoundSelectStatement::parse(qstr);
160-
let res2 = CompoundSelectStatement::parse(qstr2);
161-
162-
let first_select = SelectStatement {
163-
tables: vec![Table::from("Vote")],
164-
fields: vec![
165-
FieldDefinitionExpression::Col(Column::from("id")),
166-
FieldDefinitionExpression::Value(FieldValueExpression::Literal(
167-
Literal::Integer(1).into(),
168-
)),
169-
],
170-
..Default::default()
171-
};
172-
let second_select = SelectStatement {
173-
tables: vec![Table::from("Rating")],
174-
fields: vec![
175-
FieldDefinitionExpression::Col(Column::from("id")),
176-
FieldDefinitionExpression::Col(Column::from("stars")),
177-
],
178-
..Default::default()
179-
};
180-
let expected = CompoundSelectStatement {
181-
selects: vec![
182-
(None, first_select),
183-
(Some(CompoundSelectOperator::DistinctUnion), second_select),
184-
],
185-
order: None,
186-
limit: None,
187-
};
188-
189-
assert_eq!(res.unwrap().1, expected);
190-
assert_eq!(res2.unwrap().1, expected);
191-
}
192-
193-
#[test]
194-
fn union_strict() {
195-
let qstr = "SELECT id, 1 FROM Vote);";
196-
let qstr2 = "(SELECT id, 1 FROM Vote;";
197-
let qstr3 = "SELECT id, 1 FROM Vote) UNION (SELECT id, stars from Rating;";
198-
let res = CompoundSelectStatement::parse(qstr);
199-
let res2 = CompoundSelectStatement::parse(qstr2);
200-
let res3 = CompoundSelectStatement::parse(qstr3);
201-
202-
assert!(&res.is_err());
203-
// assert_eq!(
204-
// res.unwrap_err(),
205-
// nom::Err::Error(nom::error::Error::new(");", nom::error::ErrorKind::Tag))
206-
// );
207-
assert!(&res2.is_err());
208-
// assert_eq!(
209-
// res2.unwrap_err(),
210-
// nom::Err::Error(nom::error::Error::new(";", nom::error::ErrorKind::Tag))
211-
// );
212-
assert!(&res3.is_err());
213-
// assert_eq!(
214-
// res3.unwrap_err(),
215-
// nom::Err::Error(nom::error::Error::new(
216-
// ") UNION (SELECT id, stars from Rating;",
217-
// nom::error::ErrorKind::Tag,
218-
// ))
219-
// );
220-
}
221-
222-
#[test]
223-
fn multi_union() {
224-
let qstr = "SELECT id, 1 FROM Vote \
225-
UNION SELECT id, stars from Rating \
226-
UNION DISTINCT SELECT 42, 5 FROM Vote;";
227-
let res = CompoundSelectStatement::parse(qstr);
228-
229-
let first_select = SelectStatement {
230-
tables: vec![Table::from("Vote")],
231-
fields: vec![
232-
FieldDefinitionExpression::Col(Column::from("id")),
233-
FieldDefinitionExpression::Value(FieldValueExpression::Literal(
234-
Literal::Integer(1).into(),
235-
)),
236-
],
237-
..Default::default()
238-
};
239-
let second_select = SelectStatement {
240-
tables: vec![Table::from("Rating")],
241-
fields: vec![
242-
FieldDefinitionExpression::Col(Column::from("id")),
243-
FieldDefinitionExpression::Col(Column::from("stars")),
244-
],
245-
..Default::default()
246-
};
247-
let third_select = SelectStatement {
248-
tables: vec![Table::from("Vote")],
249-
fields: vec![
250-
FieldDefinitionExpression::Value(FieldValueExpression::Literal(
251-
Literal::Integer(42).into(),
252-
)),
253-
FieldDefinitionExpression::Value(FieldValueExpression::Literal(
254-
Literal::Integer(5).into(),
255-
)),
256-
],
257-
..Default::default()
258-
};
259-
260-
let expected = CompoundSelectStatement {
261-
selects: vec![
262-
(None, first_select),
263-
(Some(CompoundSelectOperator::DistinctUnion), second_select),
264-
(Some(CompoundSelectOperator::DistinctUnion), third_select),
265-
],
266-
order: None,
267-
limit: None,
268-
};
269-
270-
assert_eq!(res.unwrap().1, expected);
271-
}
272-
273-
#[test]
274-
fn union_all() {
275-
let qstr = "SELECT id, 1 FROM Vote UNION ALL SELECT id, stars from Rating;";
276-
let res = CompoundSelectStatement::parse(qstr);
277-
278-
let first_select = SelectStatement {
279-
tables: vec![Table::from("Vote")],
280-
fields: vec![
281-
FieldDefinitionExpression::Col(Column::from("id")),
282-
FieldDefinitionExpression::Value(FieldValueExpression::Literal(
283-
Literal::Integer(1).into(),
284-
)),
285-
],
286-
..Default::default()
287-
};
288-
let second_select = SelectStatement {
289-
tables: vec![Table::from("Rating")],
290-
fields: vec![
291-
FieldDefinitionExpression::Col(Column::from("id")),
292-
FieldDefinitionExpression::Col(Column::from("stars")),
293-
],
294-
..Default::default()
295-
};
296-
let expected = CompoundSelectStatement {
297-
selects: vec![
298-
(None, first_select),
299-
(Some(CompoundSelectOperator::Union), second_select),
300-
],
301-
order: None,
302-
limit: None,
303-
};
304-
305-
assert_eq!(res.unwrap().1, expected);
306-
}
307-
}

src/dms/delete.rs

Lines changed: 0 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -54,69 +54,3 @@ impl fmt::Display for DeleteStatement {
5454
Ok(())
5555
}
5656
}
57-
58-
#[cfg(test)]
59-
mod tests {
60-
use base::column::Column;
61-
use base::condition::ConditionBase::Field;
62-
use base::condition::ConditionExpression::{Base, ComparisonOp};
63-
use base::condition::{ConditionBase, ConditionTree};
64-
use base::Literal;
65-
use base::Operator;
66-
67-
use super::*;
68-
69-
#[test]
70-
fn simple_delete() {
71-
let str = "DELETE FROM users;";
72-
let res = DeleteStatement::parse(str);
73-
assert_eq!(
74-
res.unwrap().1,
75-
DeleteStatement {
76-
table: Table::from("users"),
77-
..Default::default()
78-
}
79-
);
80-
}
81-
82-
#[test]
83-
fn simple_delete_schema() {
84-
let str = "DELETE FROM db1.users;";
85-
let res = DeleteStatement::parse(str);
86-
assert_eq!(
87-
res.unwrap().1,
88-
DeleteStatement {
89-
table: Table::from(("db1", "users")),
90-
..Default::default()
91-
}
92-
);
93-
}
94-
95-
#[test]
96-
fn delete_with_where_clause() {
97-
let str = "DELETE FROM users WHERE id = 1;";
98-
let res = DeleteStatement::parse(str);
99-
100-
let expected_left = Base(Field(Column::from("id")));
101-
let expected_where_cond = Some(ComparisonOp(ConditionTree {
102-
left: Box::new(expected_left),
103-
right: Box::new(Base(ConditionBase::Literal(Literal::Integer(1)))),
104-
operator: Operator::Equal,
105-
}));
106-
assert_eq!(
107-
res.unwrap().1,
108-
DeleteStatement {
109-
table: Table::from("users"),
110-
where_clause: expected_where_cond,
111-
}
112-
);
113-
}
114-
115-
#[test]
116-
fn format_delete() {
117-
let str = "DELETE FROM users WHERE id = 1";
118-
let expected = "DELETE FROM users WHERE id = 1";
119-
let res = DeleteStatement::parse(str);
120-
assert_eq!(format!("{}", res.unwrap().1), expected);
121-
}
122-
}

0 commit comments

Comments
 (0)