using System; using System.Data.SqlClient; using NUnit.Framework; using System.Data; namespace DatabaseUnitTesting { [TestFixture] public class SensorsAnalogTests : TestSetups { [Test] // ============================================================ // Send new valid analog sensor parameters to sp_SensorsAnalogUpdateInsert and // compare all fields except LastModified and new ID. Pass if all fields in SensorsAnalog // table are entered. // ============================================================ [Category("sp_SensorsAnalogUpdateInsert")] public void VerifyWriteToAnalogTable_sp_SensorsAnalogUpdateInsertTest() { string filename = TestResultPath + "AnalogSensorInsertTest.xml"; // only data in SensorsAnalog table will be compared UnitTests.AddObjectComparison("dbo", "SensorsAnalog"); // But the LastModified column is excluded from comparison, // just to demonstrate how we do it. UnitTests.AddColumnToIgnore("dbo", "SensorsAnalog", "LastModified"); UnitTests.AddColumnToIgnore("dbo", "SensorsAnalog", "Id"); UnitTests.AddColumnToIgnore("dbo", "SensorsAnalog", "Created"); Command.CommandType = CommandType.StoredProcedure; Command.CommandText = "sp_SensorsAnalogUpdateInsert"; Command.Parameters.Add(new SqlParameter("@SerialNumber", SqlDbType.NVarChar, 50) { Value = "CubicSensor_18" }); Command.Parameters.Add(new SqlParameter("@UserSerialNumber", SqlDbType.NVarChar, 50) { Value = "" }); Command.Parameters.Add(new SqlParameter("@Model", SqlDbType.NVarChar, 50) { Value = "" }); Command.Parameters.Add(new SqlParameter("@Manufacturer", SqlDbType.NVarChar, 50) { Value = "DTS" }); Command.Parameters.Add(new SqlParameter("@Status", SqlDbType.SmallInt) { Value = 0 }); Command.Parameters.Add(new SqlParameter("@MeasurementUnit", SqlDbType.NVarChar, 50) { Value = "mm" }); Command.Parameters.Add(new SqlParameter("@OffsetToleranceLow", SqlDbType.Float) { Value = -100 }); Command.Parameters.Add(new SqlParameter("@OffsetToleranceHigh", SqlDbType.Float) { Value = 100 }); Command.Parameters.Add(new SqlParameter("@eId", SqlDbType.NVarChar, 50) { Value = "AABBCCDD" }); Command.Parameters.Add(new SqlParameter("@Capacity", SqlDbType.Float) { Value = 2000 }); Command.Parameters.Add(new SqlParameter("@Comment", SqlDbType.NVarChar, 255) { Value = "" }); Command.Parameters.Add(new SqlParameter("@BridgeType", SqlDbType.SmallInt) { Value = 3 }); Command.Parameters.Add(new SqlParameter("@BridgeLegMode", SqlDbType.SmallInt) { Value = 0 }); Command.Parameters.Add(new SqlParameter("@Shunt", SqlDbType.SmallInt) { Value = 1 }); Command.Parameters.Add(new SqlParameter("@Invert", SqlDbType.Bit) { Value = 0 }); Command.Parameters.Add(new SqlParameter("@UserValue1", SqlDbType.NVarChar, 50) { Value = "" }); Command.Parameters.Add(new SqlParameter("@UserValue2", SqlDbType.NVarChar, 50) { Value = "" }); Command.Parameters.Add(new SqlParameter("@UserValue3", SqlDbType.NVarChar, 50) { Value = "" }); Command.Parameters.Add(new SqlParameter("@FilterClass", SqlDbType.NVarChar, 50) { Value = "None" }); Command.Parameters.Add(new SqlParameter("@BridgeResistance", SqlDbType.Float) { Value = 349 }); Command.Parameters.Add(new SqlParameter("@IsoCode", SqlDbType.NVarChar, 50) { Value = "???????????????P" }); Command.Parameters.Add(new SqlParameter("@CheckOffset", SqlDbType.Bit) { Value = 1 }); Command.Parameters.Add(new SqlParameter("@SupportedExcitation", SqlDbType.NVarChar, 50) { Value = "Volt5" }); Command.Parameters.Add(new SqlParameter("@InitialEU", SqlDbType.Float) { Value = .501 }); Command.Parameters.Add(new SqlParameter("@CalInterval", SqlDbType.Int) { Value = 365 }); Command.Parameters.Add(new SqlParameter("@CalibrationSignal", SqlDbType.Bit) { Value = 0 }); Command.Parameters.Add(new SqlParameter("@InternalShuntResistance", SqlDbType.Float) { Value = 0 }); Command.Parameters.Add(new SqlParameter("@ExternalShuntResistance", SqlDbType.Float) { Value = 0 }); Command.Parameters.Add(new SqlParameter("@UniPolar", SqlDbType.Bit) { Value = 0 }); Command.Parameters.Add(new SqlParameter("@RangeLow", SqlDbType.Float) { Value = 10 }); Command.Parameters.Add(new SqlParameter("@RangeAve", SqlDbType.Float) { Value = 100 }); Command.Parameters.Add(new SqlParameter("@RangeHigh", SqlDbType.Float) { Value = 1000 }); Command.Parameters.Add(new SqlParameter("@Created", SqlDbType.DateTime) { Value = DateTime.Now }); Command.Parameters.Add(new SqlParameter("@TimesUsed", SqlDbType.BigInt) { Value = 0 }); Command.Parameters.Add(new SqlParameter("@SensorCategory", SqlDbType.Int) { Value = 0 }); Command.Parameters.Add(new SqlParameter("@BypassFilter", SqlDbType.Bit) { Value = 0 }); Command.Parameters.Add(new SqlParameter("@CouplingMode", SqlDbType.SmallInt) { Value = 0 }); Command.Parameters.Add(new SqlParameter("@Version", SqlDbType.Int) { Value = 1 }); Command.Parameters.Add(new SqlParameter("@LastModified", SqlDbType.DateTime) { Value = DateTime.Now }); Command.Parameters.Add(new SqlParameter("@ModifiedBy", SqlDbType.NVarChar, 50) { Value = "TestUser" }); Command.Parameters.Add(new SqlParameter("@LocalOnly", SqlDbType.Bit) { Value = 0 }); Command.Parameters.Add(new SqlParameter("@AxisNumber", SqlDbType.SmallInt) { Value = 0 }); Command.Parameters.Add(new SqlParameter("@NumberOfAxes", SqlDbType.SmallInt) { Value = 1 }); Command.Parameters.Add(new SqlParameter("@UserTags", SqlDbType.VarBinary) { Value = new byte[10 * sizeof(int)] }); Command.Parameters.Add(new SqlParameter("@DoNotUse", SqlDbType.Bit) { Value = 0 }); Command.Parameters.Add(new SqlParameter("@Broken", SqlDbType.Bit) { Value = 0 }); Command.Parameters.Add(new SqlParameter("@DiagnosticsMode", SqlDbType.Bit) { Value = 0 }); Command.Parameters.Add(new SqlParameter("@FirstUseDate", SqlDbType.DateTime) { Value = DBNull.Value }); Command.Parameters.Add(new SqlParameter("@LatestCalibrationId", SqlDbType.Int) { Value = DBNull.Value }); var newIdParam = new SqlParameter("@new_id", SqlDbType.Int) { Direction = ParameterDirection.Output }; Command.Parameters.Add(newIdParam); var errorNumberParam = new SqlParameter("@errorNumber", SqlDbType.Int) { Direction = ParameterDirection.Output }; Command.Parameters.Add(errorNumberParam); var errorMessageParam = new SqlParameter("@errorMessage", SqlDbType.NVarChar, 250) { Direction = ParameterDirection.Output }; Command.Parameters.Add(errorMessageParam); Command.ExecuteNonQuery(); if (BSETUPMODE) UnitTests.WriteDiffsToXml(filename); else Assert.IsTrue(UnitTests.CompareDiffsToXml(filename)); } //[Test] // ============================================================ // Send valid analog sensor parameters to sp_SensorsAnalogUpdateInsert for a sensor // already in the database and compare all fields except LastModified, new ID, and Created. // Pass if all fields in SensorsAnalog table are entered. // ============================================================ //[Test] // ============================================================ // Send valid analog sensor parameters to sp_SensorsAnalogUpdateInsert for a sensor // already in the database and verify no new row is created in dbo.Sensors. // // ============================================================ //[Test] // ============================================================ // Send valid analog sensor parameters to sp_SensorsAnalogUpdateInsert for a new sensor // to be entered into the db and verify a new row is created in dbo.Sensors. // // ============================================================ } }