|
|
|
|
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);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 参数使用不同
|
|
|
|
|
/// SQL语句中用?代表参数,按参数顺序传参
|
|
|
|
|
/// 参数名以不用@开头都可以
|
|
|
|
|
/// </summary>
|
|
|
|
|
[Fact]
|
|
|
|
|
public void Scalar_Test()
|
|
|
|
|
{
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
var sqlText = @"select count(*) as Total from Student where Age>? ;";
|
|
|
|
|
var paras = new List<OdbcParameter>()
|
|
|
|
|
{
|
|
|
|
|
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<OdbcParameter>()
|
|
|
|
|
{
|
|
|
|
|
new OdbcParameter("Age",1),
|
|
|
|
|
new OdbcParameter("Name","王高峰"),
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
var total = _dbUtil.ExecuteNonQuery(sqlText, paras);
|
|
|
|
|
|
|
|
|
|
Assert.True(total >= 0);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void Dispose()
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|