Skip to content

Commit

Permalink
test : update test siutes to suit new test macro
Browse files Browse the repository at this point in the history
  • Loading branch information
ChobobDev committed Dec 16, 2023
1 parent 6563814 commit 5ed311a
Showing 1 changed file with 20 additions and 64 deletions.
84 changes: 20 additions & 64 deletions test-suite/src/array.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,86 +6,42 @@ use {
},
};

test_case!(array, async move {
run!(
"
CREATE TABLE Test (
id INTEGER DEFAULT 1,
surname TEXT NULL,
name LIST NOT NULL,
);"
);

test! {
name: "basic insert - single item",
sql: "INSERT INTO Test (id, surname, name) VALUES (1, 'CHO', ['Seongbin','Bernie']);",
expected: Ok(Payload::Insert(1))
};
test! {
name: "insert multiple rows",
sql: "
INSERT INTO Test (id, surname, name)
VALUES
(3, 'CHO', Array['Seongbin','Bernie','Chobobdev']),
(2, 'CHO', Array['devgony','Henry']);
",
expected: Ok(Payload::Insert(2))
};
test! {
sql: "INSERT INTO Test VALUES(5,'DOE', ['Jhon']);",
expected: Ok(Payload::Insert(1))
};

test! {
sql: "INSERT INTO Test (surname, name) VALUES ('DOE', ['Jane']);",
expected: Ok(Payload::Insert(1))
};

test! {
sql: "INSERT INTO Test (name) VALUES (['GlueSQL']);",
expected: Ok(Payload::Insert(1))
};

test! {
sql: "INSERT INTO Test (id, surname) VALUES (1, 'CHO');",
expected: Err(InsertError::LackOfRequiredColumn("name".to_owned()).into())
};

test! {
sql: "SELECT * FROM Test;",
expected: Ok(select_with_null!(
test_case!(array,{
let g = get_tester!();
g.run("CREATE TABLE Test (id INTEGER DEFAULT 1,surname TEXT NULL, name LIST NOT NULL);").await;

g.named_test("basic insert - single item","INSERT INTO Test (id, surname, name) VALUES (1, 'CHO', ['Seongbin','Bernie']);",Ok(Payload::Insert(1)),).await;
g.named_test("insert multiple rows","INSERT INTO Test (id, surname, name) VALUES (3, 'CHO', Array['Seongbin','Bernie','Chobobdev']), (2, 'CHO', Array['devgony','Henry']);", Ok(Payload::Insert(2)),).await;
g.test("INSERT INTO Test VALUES(5,'DOE', ['Jhon']);",Ok(Payload::Insert(1)),).await;
g.test("INSERT INTO Test (surname, name) VALUES ('DOE', ['Jane']);",Ok(Payload::Insert(1)),).await;
g.test("INSERT INTO Test (name) VALUES (['GlueSQL']);",Ok(Payload::Insert(1)),).await;
g.test("INSERT INTO Test (id, surname) VALUES (1, 'CHO');",Err(InsertError::LackOfRequiredColumn("name".to_owned()).into()),).await;
g.test("SELECT * FROM Test;",Ok(select_with_null!(
id | surname | name;
I64(1) Str("CHO".to_owned()) List(vec![Str("Seongbin".to_owned()),Str("Bernie".to_owned())]);
I64(3) Str("CHO".to_owned()) List(vec![Str("Seongbin".to_owned()),Str("Bernie".to_owned()),Str("Chobobdev".to_owned())]);
I64(2) Str("CHO".to_owned()) List(vec![Str("devgony".to_owned()),Str("Henry".to_owned())]);
I64(5) Str("DOE".to_owned()) List(vec![Str("Jhon".to_owned())]);
I64(1) Str("DOE".to_owned()) List(vec![Str("Jane".to_owned())]);
I64(1) Null List(vec![Str("GlueSQL".to_owned())])
))
};
)),
).await;

run!("CREATE TABLE Target AS SELECT * FROM Test WHERE 1 = 0;");
g.run("CREATE TABLE Target AS SELECT * FROM Test WHERE 1 = 0;").await;

test! {
name: "insert into target from source",
sql: "INSERT INTO Target SELECT * FROM Test;",
expected: Ok(Payload::Insert(6))
};
g.named_test("insert into target from source","INSERT INTO Target SELECT * FROM Test;",Ok(Payload::Insert(6)),).await;

test! {
name: "target rows are equivalent to source rows",
sql: "SELECT * FROM Target;",
expected: Ok(select_with_null!(
g.named_test("target rows are equivalent to source rows","SELECT * FROM Target;",Ok(select_with_null!(
id | surname | name;
I64(1) Str("CHO".to_owned()) List(vec![Str("Seongbin".to_owned()),Str("Bernie".to_owned())]);
I64(3) Str("CHO".to_owned()) List(vec![Str("Seongbin".to_owned()),Str("Bernie".to_owned()),Str("Chobobdev".to_owned())]);
I64(2) Str("CHO".to_owned()) List(vec![Str("devgony".to_owned()),Str("Henry".to_owned())]);
I64(5) Str("DOE".to_owned()) List(vec![Str("Jhon".to_owned())]);
I64(1) Str("DOE".to_owned()) List(vec![Str("Jane".to_owned())]);
I64(1) Null List(vec![Str("GlueSQL".to_owned())])
))
};
)),
).await;

run!("DELETE FROM Item");
run!("DELETE FROM Target");
g.run("DELETE FROM Item").await;
g.run("DELETE FROM Target").await;
});

0 comments on commit 5ed311a

Please sign in to comment.