using System; using System.Collections.Generic; using System.Text; using System.Data.Odbc; using Xunit; using Shouldly; using AccessStudy.Core; namespace AccessStudy.CoreTest { public class OdbcUtilTest:IDisposable { private readonly OdbcUtil _dbUtil; public OdbcUtilTest() { _dbUtil = new OdbcUtil(); } [Fact] public void DbUtil_NotNull_Test() { Assert.NotNull(_dbUtil); } [Fact] public void DbConnet_Test() { var con = _dbUtil.DbConnection; Assert.NotNull(con); Action action = () => { con.Open(); con.Close(); con.Dispose(); }; Should.NotThrow(action); } [Fact] public void DataSet_Test() { var ds = _dbUtil.GetDataSet("Student"); Assert.NotNull(ds); Assert.NotNull(ds.Tables); Assert.True(ds.Tables.Count > 0); } [Fact] public void DataTable_Test() { var dt = _dbUtil.GetDataTable("Student"); Assert.NotNull(dt); } [Fact] public void DataReader_Test() { Action action = () => { var dataReader = _dbUtil.GetDataReader("Student"); while (dataReader.Read()) { break; } dataReader.Close(); }; Should.NotThrow(action); } /// /// 参数使用不同 /// SQL语句中用?代表参数,按参数顺序传参 /// 参数名以不用@开头都可以 /// [Fact] public void Scalar_Test() { // var sqlText = @"select count(*) as Total from Student where Age>? ;"; var paras = new List() { new OdbcParameter("@Age",1), }; var total = (int)_dbUtil.GetScalar(sqlText, paras); Assert.True(total >= 0); } [Fact] public void NonQuery_Test() { var sqlText = @"update Student Set Age=Age+1 where Age>? AND Name <>?;"; var paras = new List() { new OdbcParameter("Age",1), new OdbcParameter("Name","王高峰"), }; var total = _dbUtil.ExecuteNonQuery(sqlText, paras); Assert.True(total >= 0); } public void Dispose() { } } }