Skip to content

Commit d26ac65

Browse files
committed
Addition - Execute Scalar
1 parent 52bed86 commit d26ac65

File tree

11 files changed

+1013
-4
lines changed

11 files changed

+1013
-4
lines changed

QueryDB.Core.Tests/MSSQLTests.cs

Lines changed: 177 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,183 @@ public void Test_MSSQL_FetchData_Entity_Strict_Error_Check()
310310

311311
#endregion
312312

313+
#region Execute Scalar Tests - << string ExecuteScalar(string sqlStatement); >>
314+
315+
[TestMethod]
316+
[TestCategory(DB_TESTS), TestCategory(MSSQL_TESTS)]
317+
public void Test_MSSQL_ExecuteScalar_As_StringReturn_Scalar_Queries()
318+
{
319+
var countOfRecords = Queries.MSSQLQueries.TestDB.ScalarQueries.Count_Of_Records;
320+
var max = Queries.MSSQLQueries.TestDB.ScalarQueries.Max;
321+
var min = Queries.MSSQLQueries.TestDB.ScalarQueries.Min;
322+
var sum = Queries.MSSQLQueries.TestDB.ScalarQueries.Sum;
323+
var avg = Queries.MSSQLQueries.TestDB.ScalarQueries.Avg;
324+
var singleValueSelect = Queries.MSSQLQueries.TestDB.ScalarQueries.Single_Value_Select;
325+
326+
var dbContext = new DBContext(DB.MSSQL, MSSQLConnectionString);
327+
328+
var count = dbContext.ExecuteScalar(countOfRecords);
329+
Assert.AreEqual("12", count);
330+
var maxValue = dbContext.ExecuteScalar(max);
331+
Assert.AreEqual("10000.00", maxValue);
332+
var minValue = dbContext.ExecuteScalar(min);
333+
Assert.AreEqual("3000.00", minValue);
334+
var sumValue = dbContext.ExecuteScalar(sum);
335+
Assert.AreEqual("161000.00", sumValue);
336+
var avgValue = dbContext.ExecuteScalar(avg);
337+
Assert.AreEqual("6520.000000", avgValue);
338+
var singleValue = dbContext.ExecuteScalar(singleValueSelect);
339+
Assert.AreEqual("2", singleValue);
340+
}
341+
342+
[TestMethod]
343+
[TestCategory(DB_TESTS), TestCategory(MSSQL_TESTS)]
344+
public void Test_MSSQL_ExecuteScalar_As_StringReturn_DefaultValue()
345+
{
346+
var noValueReturned = Queries.MSSQLQueries.TestDB.ScalarQueries.No_Value_Returned;
347+
var dBNullValue = Queries.MSSQLQueries.TestDB.ScalarQueries.DB_Null_Value;
348+
349+
var dbContext = new DBContext(DB.MSSQL, MSSQLConnectionString);
350+
351+
var result = dbContext.ExecuteScalar(noValueReturned);
352+
Assert.IsInstanceOfType<string>(result);
353+
Assert.AreEqual("", result);
354+
355+
result = dbContext.ExecuteScalar(dBNullValue);
356+
Assert.IsInstanceOfType<string>(result);
357+
Assert.AreEqual(string.Empty, result);
358+
}
359+
360+
#endregion
361+
362+
#region Execute Scalar Tests - << T ExecuteScalar<T>(string sqlStatement); >>
363+
364+
[TestMethod]
365+
[TestCategory(DB_TESTS), TestCategory(MSSQL_TESTS)]
366+
public void Test_MSSQL_ExecuteScalar_As_TypedReturn_Scalar_Queries()
367+
{
368+
var countOfRecords = Queries.MSSQLQueries.TestDB.ScalarQueries.Count_Of_Records;
369+
var max = Queries.MSSQLQueries.TestDB.ScalarQueries.Max;
370+
var min = Queries.MSSQLQueries.TestDB.ScalarQueries.Min;
371+
var sum = Queries.MSSQLQueries.TestDB.ScalarQueries.Sum;
372+
var avg = Queries.MSSQLQueries.TestDB.ScalarQueries.Avg;
373+
var singleValueSelect = Queries.MSSQLQueries.TestDB.ScalarQueries.Single_Value_Select;
374+
375+
var dbContext = new DBContext(DB.MSSQL, MSSQLConnectionString);
376+
377+
var count = dbContext.ExecuteScalar<int>(countOfRecords);
378+
Assert.AreEqual(12, count);
379+
var maxValue = dbContext.ExecuteScalar<float>(max);
380+
Assert.AreEqual(10000.00, maxValue);
381+
var minValue = dbContext.ExecuteScalar<float>(min);
382+
Assert.AreEqual(3000.00, minValue);
383+
var sumValue = dbContext.ExecuteScalar<float>(sum);
384+
Assert.AreEqual(161000.00, sumValue);
385+
var avgValue = dbContext.ExecuteScalar<decimal>(avg);
386+
Assert.AreEqual((decimal)6520.000000, avgValue);
387+
var singleValue = dbContext.ExecuteScalar<string>(singleValueSelect);
388+
Assert.AreEqual("2", singleValue);
389+
}
390+
391+
[TestMethod]
392+
[TestCategory(DB_TESTS), TestCategory(MSSQL_TESTS)]
393+
public void Test_MSSQL_ExecuteScalar_As_TypedReturn_DefaultValue()
394+
{
395+
var dBNullValue = Queries.MSSQLQueries.TestDB.ScalarQueries.DB_Null_Value;
396+
397+
var dbContext = new DBContext(DB.MSSQL, MSSQLConnectionString);
398+
399+
dynamic result = dbContext.ExecuteScalar<int>(dBNullValue);
400+
Assert.IsInstanceOfType<int>(result);
401+
Assert.AreEqual(default(int), result);
402+
403+
result = dbContext.ExecuteScalar<long>(dBNullValue);
404+
Assert.IsInstanceOfType<long>(result);
405+
Assert.AreEqual(default(long), result);
406+
407+
result = dbContext.ExecuteScalar<short>(dBNullValue);
408+
Assert.IsInstanceOfType<short>(result);
409+
Assert.AreEqual(default(short), result);
410+
411+
result = dbContext.ExecuteScalar<uint>(dBNullValue);
412+
Assert.IsInstanceOfType<uint>(result);
413+
Assert.AreEqual(default(uint), result);
414+
415+
result = dbContext.ExecuteScalar<ulong>(dBNullValue);
416+
Assert.IsInstanceOfType<ulong>(result);
417+
Assert.AreEqual(default(ulong), result);
418+
419+
result = dbContext.ExecuteScalar<ushort>(dBNullValue);
420+
Assert.IsInstanceOfType<ushort>(result);
421+
Assert.AreEqual(default(ushort), result);
422+
423+
result = dbContext.ExecuteScalar<decimal>(dBNullValue);
424+
Assert.IsInstanceOfType<decimal>(result);
425+
Assert.AreEqual(default(decimal), result);
426+
427+
result = dbContext.ExecuteScalar<double>(dBNullValue);
428+
Assert.IsInstanceOfType<double>(result);
429+
Assert.AreEqual(default(double), result);
430+
431+
result = dbContext.ExecuteScalar<float>(dBNullValue);
432+
Assert.IsInstanceOfType<float>(result);
433+
Assert.AreEqual(default(float), result);
434+
435+
result = dbContext.ExecuteScalar<byte>(dBNullValue);
436+
Assert.IsInstanceOfType<byte>(result);
437+
Assert.AreEqual(default(byte), result);
438+
439+
result = dbContext.ExecuteScalar<bool>(dBNullValue);
440+
Assert.IsInstanceOfType<bool>(result);
441+
Assert.AreEqual(default(bool), result);
442+
443+
result = dbContext.ExecuteScalar<DateTime>(dBNullValue);
444+
Assert.IsInstanceOfType<DateTime>(result);
445+
Assert.AreEqual(default(DateTime), result);
446+
447+
result = dbContext.ExecuteScalar<Guid>(dBNullValue);
448+
Assert.IsInstanceOfType<Guid>(result);
449+
Assert.AreEqual(default(Guid), result);
450+
451+
result = dbContext.ExecuteScalar<string>(dBNullValue);
452+
Assert.IsNull(result);
453+
Assert.AreEqual(default(string), result);
454+
455+
result = dbContext.ExecuteScalar<int?>(dBNullValue);
456+
Assert.IsNull(result);
457+
Assert.AreEqual(default(int?), result);
458+
459+
result = dbContext.ExecuteScalar<long?>(dBNullValue);
460+
Assert.IsNull(result);
461+
Assert.AreEqual(default(long?), result);
462+
463+
result = dbContext.ExecuteScalar<short?>(dBNullValue);
464+
Assert.IsNull(result);
465+
Assert.AreEqual(default(short?), result);
466+
467+
result = dbContext.ExecuteScalar<decimal?>(dBNullValue);
468+
Assert.IsNull(result);
469+
Assert.AreEqual(default(decimal?), result);
470+
471+
result = dbContext.ExecuteScalar<double?>(dBNullValue);
472+
Assert.IsNull(result);
473+
Assert.AreEqual(default(double?), result);
474+
475+
result = dbContext.ExecuteScalar<float?>(dBNullValue);
476+
Assert.IsNull(result);
477+
Assert.AreEqual(default(float?), result);
478+
479+
result = dbContext.ExecuteScalar<bool?>(dBNullValue);
480+
Assert.IsNull(result);
481+
Assert.AreEqual(default(bool?), result);
482+
483+
result = dbContext.ExecuteScalar<DateTime?>(dBNullValue);
484+
Assert.IsNull(result);
485+
Assert.AreEqual(default(DateTime?), result);
486+
}
487+
488+
#endregion
489+
313490
#region Execute Command Tests - << int ExecuteCommand(string sqlStatement) >>
314491

315492
[TestMethod]

QueryDB.Core.Tests/MySQLTests.cs

Lines changed: 178 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -290,6 +290,183 @@ public void Test_MySQL_FetchData_Entity_Strict_Error_Check()
290290

291291
#endregion
292292

293+
#region Execute Scalar Tests - << string ExecuteScalar(string sqlStatement); >>
294+
295+
[TestMethod]
296+
[TestCategory(DB_TESTS), TestCategory(MYSQL_TESTS)]
297+
public void Test_MySQL_ExecuteScalar_As_StringReturn_Scalar_Queries()
298+
{
299+
var countOfRecords = Queries.MySQLQueries.TestDB.ScalarQueries.Count_Of_Records;
300+
var max = Queries.MySQLQueries.TestDB.ScalarQueries.Max;
301+
var min = Queries.MySQLQueries.TestDB.ScalarQueries.Min;
302+
var sum = Queries.MySQLQueries.TestDB.ScalarQueries.Sum;
303+
var avg = Queries.MySQLQueries.TestDB.ScalarQueries.Avg;
304+
var singleValueSelect = Queries.MySQLQueries.TestDB.ScalarQueries.Single_Value_Select;
305+
306+
var dbContext = new DBContext(DB.MySQL, MySQLConnectionString);
307+
308+
var count = dbContext.ExecuteScalar(countOfRecords);
309+
Assert.AreEqual("12", count);
310+
var maxValue = dbContext.ExecuteScalar(max);
311+
Assert.AreEqual("10000.00", maxValue);
312+
var minValue = dbContext.ExecuteScalar(min);
313+
Assert.AreEqual("3000.00", minValue);
314+
var sumValue = dbContext.ExecuteScalar(sum);
315+
Assert.AreEqual("161000.00", sumValue);
316+
var avgValue = dbContext.ExecuteScalar(avg);
317+
Assert.AreEqual("6520.000000", avgValue);
318+
var singleValue = dbContext.ExecuteScalar(singleValueSelect);
319+
Assert.AreEqual("2", singleValue);
320+
}
321+
322+
[TestMethod]
323+
[TestCategory(DB_TESTS), TestCategory(MYSQL_TESTS)]
324+
public void Test_MySQL_ExecuteScalar_As_StringReturn_DefaultValue()
325+
{
326+
var noValueReturned = Queries.MySQLQueries.TestDB.ScalarQueries.No_Value_Returned;
327+
var dBNullValue = Queries.MySQLQueries.TestDB.ScalarQueries.DB_Null_Value;
328+
329+
var dbContext = new DBContext(DB.MySQL, MySQLConnectionString);
330+
331+
var result = dbContext.ExecuteScalar(noValueReturned);
332+
Assert.IsInstanceOfType<string>(result);
333+
Assert.AreEqual("", result);
334+
335+
result = dbContext.ExecuteScalar(dBNullValue);
336+
Assert.IsInstanceOfType<string>(result);
337+
Assert.AreEqual(string.Empty, result);
338+
}
339+
340+
#endregion
341+
342+
#region Execute Scalar Tests - << T ExecuteScalar<T>(string sqlStatement); >>
343+
344+
[TestMethod]
345+
[TestCategory(DB_TESTS), TestCategory(MYSQL_TESTS)]
346+
public void Test_MySQL_ExecuteScalar_As_TypedReturn_Scalar_Queries()
347+
{
348+
var countOfRecords = Queries.MySQLQueries.TestDB.ScalarQueries.Count_Of_Records;
349+
var max = Queries.MySQLQueries.TestDB.ScalarQueries.Max;
350+
var min = Queries.MySQLQueries.TestDB.ScalarQueries.Min;
351+
var sum = Queries.MySQLQueries.TestDB.ScalarQueries.Sum;
352+
var avg = Queries.MySQLQueries.TestDB.ScalarQueries.Avg;
353+
var singleValueSelect = Queries.MySQLQueries.TestDB.ScalarQueries.Single_Value_Select;
354+
355+
var dbContext = new DBContext(DB.MySQL, MySQLConnectionString);
356+
357+
var count = dbContext.ExecuteScalar<int>(countOfRecords);
358+
Assert.AreEqual(12, count);
359+
var maxValue = dbContext.ExecuteScalar<float>(max);
360+
Assert.AreEqual(10000.00, maxValue);
361+
var minValue = dbContext.ExecuteScalar<float>(min);
362+
Assert.AreEqual(3000.00, minValue);
363+
var sumValue = dbContext.ExecuteScalar<float>(sum);
364+
Assert.AreEqual(161000.00, sumValue);
365+
var avgValue = dbContext.ExecuteScalar<decimal>(avg);
366+
Assert.AreEqual((decimal)6520.000000, avgValue);
367+
var singleValue = dbContext.ExecuteScalar<string>(singleValueSelect);
368+
Assert.AreEqual("2", singleValue);
369+
}
370+
371+
[TestMethod]
372+
[TestCategory(DB_TESTS), TestCategory(MYSQL_TESTS)]
373+
public void Test_MySQL_ExecuteScalar_As_TypedReturn_DefaultValue()
374+
{
375+
var dBNullValue = Queries.MySQLQueries.TestDB.ScalarQueries.DB_Null_Value;
376+
377+
var dbContext = new DBContext(DB.MySQL, MySQLConnectionString);
378+
379+
dynamic result = dbContext.ExecuteScalar<int>(dBNullValue);
380+
Assert.IsInstanceOfType<int>(result);
381+
Assert.AreEqual(default(int), result);
382+
383+
result = dbContext.ExecuteScalar<long>(dBNullValue);
384+
Assert.IsInstanceOfType<long>(result);
385+
Assert.AreEqual(default(long), result);
386+
387+
result = dbContext.ExecuteScalar<short>(dBNullValue);
388+
Assert.IsInstanceOfType<short>(result);
389+
Assert.AreEqual(default(short), result);
390+
391+
result = dbContext.ExecuteScalar<uint>(dBNullValue);
392+
Assert.IsInstanceOfType<uint>(result);
393+
Assert.AreEqual(default(uint), result);
394+
395+
result = dbContext.ExecuteScalar<ulong>(dBNullValue);
396+
Assert.IsInstanceOfType<ulong>(result);
397+
Assert.AreEqual(default(ulong), result);
398+
399+
result = dbContext.ExecuteScalar<ushort>(dBNullValue);
400+
Assert.IsInstanceOfType<ushort>(result);
401+
Assert.AreEqual(default(ushort), result);
402+
403+
result = dbContext.ExecuteScalar<decimal>(dBNullValue);
404+
Assert.IsInstanceOfType<decimal>(result);
405+
Assert.AreEqual(default(decimal), result);
406+
407+
result = dbContext.ExecuteScalar<double>(dBNullValue);
408+
Assert.IsInstanceOfType<double>(result);
409+
Assert.AreEqual(default(double), result);
410+
411+
result = dbContext.ExecuteScalar<float>(dBNullValue);
412+
Assert.IsInstanceOfType<float>(result);
413+
Assert.AreEqual(default(float), result);
414+
415+
result = dbContext.ExecuteScalar<byte>(dBNullValue);
416+
Assert.IsInstanceOfType<byte>(result);
417+
Assert.AreEqual(default(byte), result);
418+
419+
result = dbContext.ExecuteScalar<bool>(dBNullValue);
420+
Assert.IsInstanceOfType<bool>(result);
421+
Assert.AreEqual(default(bool), result);
422+
423+
result = dbContext.ExecuteScalar<DateTime>(dBNullValue);
424+
Assert.IsInstanceOfType<DateTime>(result);
425+
Assert.AreEqual(default(DateTime), result);
426+
427+
result = dbContext.ExecuteScalar<Guid>(dBNullValue);
428+
Assert.IsInstanceOfType<Guid>(result);
429+
Assert.AreEqual(default(Guid), result);
430+
431+
result = dbContext.ExecuteScalar<string>(dBNullValue);
432+
Assert.IsNull(result);
433+
Assert.AreEqual(default(string), result);
434+
435+
result = dbContext.ExecuteScalar<int?>(dBNullValue);
436+
Assert.IsNull(result);
437+
Assert.AreEqual(default(int?), result);
438+
439+
result = dbContext.ExecuteScalar<long?>(dBNullValue);
440+
Assert.IsNull(result);
441+
Assert.AreEqual(default(long?), result);
442+
443+
result = dbContext.ExecuteScalar<short?>(dBNullValue);
444+
Assert.IsNull(result);
445+
Assert.AreEqual(default(short?), result);
446+
447+
result = dbContext.ExecuteScalar<decimal?>(dBNullValue);
448+
Assert.IsNull(result);
449+
Assert.AreEqual(default(decimal?), result);
450+
451+
result = dbContext.ExecuteScalar<double?>(dBNullValue);
452+
Assert.IsNull(result);
453+
Assert.AreEqual(default(double?), result);
454+
455+
result = dbContext.ExecuteScalar<float?>(dBNullValue);
456+
Assert.IsNull(result);
457+
Assert.AreEqual(default(float?), result);
458+
459+
result = dbContext.ExecuteScalar<bool?>(dBNullValue);
460+
Assert.IsNull(result);
461+
Assert.AreEqual(default(bool?), result);
462+
463+
result = dbContext.ExecuteScalar<DateTime?>(dBNullValue);
464+
Assert.IsNull(result);
465+
Assert.AreEqual(default(DateTime?), result);
466+
}
467+
468+
#endregion
469+
293470
#region Execute Command Tests - << int ExecuteCommand(string sqlStatement) >>
294471

295472
[TestMethod]
@@ -347,7 +524,7 @@ public void Test_MySQL_ExecuteCommand_DML_Queries()
347524
var insertSql = Queries.MySQLQueries.TestDB.DML.InsertSql;
348525
var updateSql = Queries.MySQLQueries.TestDB.DML.UpdateSql;
349526
var deleteSql = Queries.MySQLQueries.TestDB.DML.DeleteSql;
350-
var verifyDMLExecution = Queries.MSSQLQueries.TestDB.DML.VerifyDMLExecution;
527+
var verifyDMLExecution = Queries.MySQLQueries.TestDB.DML.VerifyDMLExecution;
351528

352529
var dbContext = new DBContext(DB.MySQL, MySQLConnectionString);
353530

0 commit comments

Comments
 (0)