use iridium_core::{types::Value, Engine};
#[test]
fn test_sp_helpindex() {
let engine = Engine::new();
engine
.exec("CREATE TABLE T1 (c1 INT PRIMARY KEY, c2 VARCHAR(10) UNIQUE)")
.unwrap();
let res = engine.query("EXEC sp_helpindex 'T1'").unwrap();
assert!(res.rows.len() >= 1);
}
#[test]
fn test_identity_builtins() {
let engine = Engine::new();
let res = engine
.query("SELECT SUSER_NAME(), SUSER_SID(), USER_SID()")
.unwrap();
assert_eq!(res.rows.len(), 1);
assert_eq!(res.rows[0][0], Value::NVarChar("sa".to_string()));
assert!(matches!(res.rows[0][1], Value::VarBinary(_)));
assert!(matches!(res.rows[0][2], Value::VarBinary(_)));
}
#[test]
fn test_metadata_synonyms_objects() {
let engine = Engine::new();
engine.exec("CREATE TABLE T1 (id INT)").unwrap();
engine.exec("CREATE SYNONYM S1 FOR T1").unwrap();
let res = engine
.query("SELECT * FROM sys.synonyms WHERE name = 'S1'")
.unwrap();
assert_eq!(res.rows.len(), 1, "S1 should be in sys.synonyms");
let res = engine
.query("SELECT * FROM sys.objects WHERE name = 'S1'")
.unwrap();
assert_eq!(res.rows.len(), 1, "S1 should be in sys.objects");
}