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#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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