extern crate odbc_sys;
use odbc_sys::*;
use std::ptr::null_mut;
#[test]
fn allocate_environment() {
let mut env: Handle = null_mut();
unsafe {
assert_eq!(
SqlReturn::SUCCESS,
SQLAllocHandle(HandleType::Env, null_mut(), &mut env as *mut Handle)
);
assert_eq!(SqlReturn::SUCCESS, SQLFreeHandle(HandleType::Env, env));
}
}
#[test]
fn allocate_connection() {
let mut env: Handle = null_mut();
let mut conn: Handle = null_mut();
unsafe {
assert_eq!(
SqlReturn::SUCCESS,
SQLAllocHandle(HandleType::Env, null_mut(), &mut env as *mut Handle)
);
assert_eq!(
SqlReturn::SUCCESS,
SQLSetEnvAttr(
env as HEnv,
EnvironmentAttribute::OdbcVersion,
AttrOdbcVersion::Odbc3.into(),
0
)
);
assert_eq!(
SqlReturn::SUCCESS,
SQLAllocHandle(HandleType::Dbc, env, &mut conn as *mut Handle)
);
assert_eq!(SqlReturn::SUCCESS, SQLFreeHandle(HandleType::Dbc, conn));
assert_eq!(SqlReturn::SUCCESS, SQLFreeHandle(HandleType::Env, env));
}
}
#[test]
fn allocate_connection_error() {
let mut env: Handle = null_mut();
let mut conn: Handle = null_mut();
unsafe {
assert_eq!(
SqlReturn::SUCCESS,
SQLAllocHandle(HandleType::Env, null_mut(), &mut env as *mut Handle)
);
assert_eq!(
SqlReturn::ERROR,
SQLAllocHandle(HandleType::Dbc, env, &mut conn as *mut Handle)
);
assert_eq!(SqlReturn::SUCCESS, SQLFreeHandle(HandleType::Env, env));
}
}