You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

122 lines
2.6 KiB
C#

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()
{
}
}
}