126 lines
7.6 KiB
C#
126 lines
7.6 KiB
C#
using System;
|
|
using System.Data.SqlClient;
|
|
using NUnit.Framework;
|
|
using System.Data;
|
|
|
|
|
|
namespace DatabaseUnitTesting
|
|
{
|
|
[TestFixture]
|
|
public class SensorsDigitalInUnitTests : TestSetups
|
|
{
|
|
|
|
[Test]
|
|
// ============================================================
|
|
// Send new valid digital in sensor parameters to sp_SensorsDigitalInUpdateInsert and
|
|
// compare all fields except LastModified and new ID. Pass if all fields in SensorsDigitalIn
|
|
// table are entered.
|
|
// ============================================================
|
|
[Category("sp_SensorsDigitalInUpdateInsert")]
|
|
public void VerifyWriteToDigitalInTable_sp_SensorsDigitalInUpdateInsertTest()
|
|
{
|
|
string filename = TestResultPath + "DigitalInSensorInsertTest.xml";
|
|
// only data in SensorsDigitalIn table will be compared
|
|
UnitTests.AddObjectComparison("dbo", "SensorsDigitalIn");
|
|
// But the LastModified column is excluded from comparison,
|
|
// just to demonstrate how we do it.
|
|
UnitTests.AddColumnToIgnore("dbo", "SensorsDigitalIn", "LastModified");
|
|
UnitTests.AddColumnToIgnore("dbo", "SensorsDigitalIn", "Id");
|
|
Command.CommandType = CommandType.StoredProcedure;
|
|
Command.CommandText = "sp_SensorsDigitalInUpdateInsert";
|
|
|
|
Command.Parameters.Add(new SqlParameter("@SerialNumber", SqlDbType.NVarChar) { Value = "DigiInSerialNum" });
|
|
Command.Parameters.Add(new SqlParameter("@SettingMode", SqlDbType.Int) { Value = 8 });
|
|
Command.Parameters.Add(new SqlParameter("@ScaleMultiplier", SqlDbType.NVarChar) { Value = "ArbitraryHighAndLow,1,2" });
|
|
Command.Parameters.Add(new SqlParameter("@LastModified", SqlDbType.DateTime) { Value = DateTime.Now });
|
|
Command.Parameters.Add(new SqlParameter("@LastModifiedBy", SqlDbType.NVarChar) { Value = "TestUser" });
|
|
Command.Parameters.Add(new SqlParameter("@eId", SqlDbType.NVarChar) { Value = "EID" });
|
|
Command.Parameters.Add(new SqlParameter("@UserValue1", SqlDbType.NVarChar) { Value = "" });
|
|
Command.Parameters.Add(new SqlParameter("@UserValue2", SqlDbType.NVarChar) { Value = "" });
|
|
Command.Parameters.Add(new SqlParameter("@UserValue3", SqlDbType.NVarChar) { Value = "" });
|
|
Command.Parameters.Add(new SqlParameter("@UserTags", SqlDbType.VarBinary) { Value = new byte[10 * sizeof(int)] });
|
|
|
|
var newIdParam = new SqlParameter("@new_id", System.Data.SqlDbType.Int) { Direction = System.Data.ParameterDirection.Output };
|
|
Command.Parameters.Add(newIdParam);
|
|
var errorNumberParam = new SqlParameter("@errorNumber", System.Data.SqlDbType.Int) { Direction = System.Data.ParameterDirection.Output };
|
|
Command.Parameters.Add(errorNumberParam);
|
|
var errorMessageParam = new SqlParameter("@errorMessage", System.Data.SqlDbType.NVarChar, 250) { Direction = System.Data.ParameterDirection.Output };
|
|
Command.Parameters.Add(errorMessageParam);
|
|
|
|
Command.ExecuteNonQuery();
|
|
if (BSETUPMODE)
|
|
UnitTests.WriteDiffsToXml(filename);
|
|
else
|
|
Assert.IsTrue(UnitTests.CompareDiffsToXml(filename));
|
|
}
|
|
|
|
|
|
[Test]
|
|
// ============================================================
|
|
// Send valid digital in sensor parameters to sp_SensorsDigitalInUpdateInsert for a sensor
|
|
// already in the database and compare all fields except LastModified and new ID.
|
|
// Pass if all fields in SensorsDigitalIn table are entered.
|
|
// ============================================================
|
|
[Category("sp_SensorsDigitalInUpdateInsert")]
|
|
public void VerifyUpdateToDigitalIn_sp_SensorsDigitalInUpdateInsertTest()
|
|
{
|
|
string filename = TestResultPath + "DigitalInSensorUpdateTest.xml";
|
|
// only data in SensorsDigitalIn table will be compared
|
|
UnitTests.AddObjectComparison("dbo", "SensorsDigitalIn");
|
|
// But the LastModified column is excluded from comparison,
|
|
// just to demonstrate how we do it.
|
|
UnitTests.AddColumnToIgnore("dbo", "SensorsDigitalIn", "LastModified");
|
|
UnitTests.AddColumnToIgnore("dbo", "SensorsDigitalIn", "Id");
|
|
|
|
//SqlCommand command = connection.CreateCommand();
|
|
//command.Transaction = transaction;
|
|
Command.CommandType = CommandType.StoredProcedure;
|
|
Command.CommandText = "sp_SensorsDigitalInUpdateInsert";
|
|
|
|
Command.Parameters.Add(new SqlParameter("@SerialNumber", SqlDbType.NVarChar) { Value = "DigiInSerialNum" });
|
|
Command.Parameters.Add(new SqlParameter("@SettingMode", SqlDbType.Int) { Value = 8 });
|
|
Command.Parameters.Add(new SqlParameter("@ScaleMultiplier", SqlDbType.NVarChar) { Value = "ArbitraryHighAndLow,1,2" });
|
|
Command.Parameters.Add(new SqlParameter("@LastModified", SqlDbType.DateTime) { Value = DateTime.Now });
|
|
Command.Parameters.Add(new SqlParameter("@LastModifiedBy", SqlDbType.NVarChar) { Value = "TestUser" });
|
|
Command.Parameters.Add(new SqlParameter("@eId", SqlDbType.NVarChar) { Value = "EID" });
|
|
Command.Parameters.Add(new SqlParameter("@UserValue1", SqlDbType.NVarChar) { Value = "" });
|
|
Command.Parameters.Add(new SqlParameter("@UserValue2", SqlDbType.NVarChar) { Value = "" });
|
|
Command.Parameters.Add(new SqlParameter("@UserValue3", SqlDbType.NVarChar) { Value = "" });
|
|
Command.Parameters.Add(new SqlParameter("@UserTags", SqlDbType.VarBinary) { Value = new byte[10 * sizeof(int)] });
|
|
|
|
var newIdParam = new SqlParameter("@new_id", System.Data.SqlDbType.Int) { Direction = System.Data.ParameterDirection.Output };
|
|
Command.Parameters.Add(newIdParam);
|
|
var errorNumberParam = new SqlParameter("@errorNumber", System.Data.SqlDbType.Int) { Direction = System.Data.ParameterDirection.Output };
|
|
Command.Parameters.Add(errorNumberParam);
|
|
var errorMessageParam = new SqlParameter("@errorMessage", System.Data.SqlDbType.NVarChar, 250) { Direction = System.Data.ParameterDirection.Output };
|
|
Command.Parameters.Add(errorMessageParam);
|
|
|
|
Command.ExecuteNonQuery();
|
|
|
|
//Now that the sensor is saved, make a change so "update" is called
|
|
Command.Parameters[5].Value = "EID_Modified";
|
|
Command.ExecuteNonQuery();
|
|
|
|
|
|
if (BSETUPMODE)
|
|
UnitTests.WriteDiffsToXml(filename);
|
|
else
|
|
Assert.IsTrue(UnitTests.CompareDiffsToXml(filename));
|
|
}
|
|
|
|
//[Test]
|
|
// ============================================================
|
|
// Send valid digital in sensor parameters to sp_SensorsDigitalInUpdateInsert for a sensor
|
|
// already in the database and verify no new row is created in dbo.Sensors.
|
|
//
|
|
// ============================================================
|
|
|
|
|
|
//[Test]
|
|
// ============================================================
|
|
// Send valid digital in sensor parameters to sp_SensorsDigitalInUpdateInsert for a new sensor
|
|
// to be entered into the db and verify a new row is created in dbo.Sensors.
|
|
//
|
|
// ============================================================
|
|
}
|
|
} |