123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- using System.Data;
- using Microsoft.VisualStudio.TestTools.UnitTesting;
- namespace Vitorm.MsTest.CustomTest
- {
- [TestClass]
- public class Procedure_Test
- {
- [TestMethod]
- public void Procedure()
- {
- using var dbContext = DataSource.CreateDbContext();
- // create procedure
- {
- dbContext.Execute(@"
- DROP PROCEDURE IF EXISTS GetUser;
- CREATE PROCEDURE GetUser(IN uid INT)
- BEGIN
- SELECT * FROM `User` WHERE userId = uid order by userId;
- SELECT * FROM `User` WHERE userId != uid order by userId;
- END
- ");
- }
- // ExecuteReader
- {
- using var reader = dbContext.ExecuteReader("GetUser", new() { ["uid"] = 1 }, isProcedure: true);
- var userList = reader.ReadEntity<User>().ToList();
- Assert.AreEqual("1", String.Join(",", userList.Select(u => u.id)));
- }
- // ExecuteReader
- {
- using var reader = dbContext.ExecuteReader("GetUser", new() { ["uid"] = 1 }, isProcedure: true);
- {
- var userList = reader.ReadEntity<User>().ToList();
- Assert.AreEqual("1", String.Join(",", userList.Select(u => u.id)));
- }
- reader.NextResult();
- {
- var userList = reader.ReadEntity<User>().ToList();
- Assert.AreEqual("2,3,4,5,6", String.Join(",", userList.Select(u => u.id)));
- }
- }
- // ExecuteReader
- {
- using var reader = dbContext.ExecuteReader("GetUser", new() { ["uid"] = 0 }, isProcedure: true);
- {
- var userList = reader.ReadEntity<User>().ToList();
- Assert.AreEqual("", String.Join(",", userList.Select(u => u.id)));
- }
- reader.NextResult();
- {
- var userList = reader.ReadEntity<User>().ToList();
- Assert.AreEqual("1,2,3,4,5,6", String.Join(",", userList.Select(u => u.id)));
- }
- }
- // ExecuteReader
- {
- var userId = dbContext.ExecuteScalar("GetUser", new() { ["uid"] = 1 }, isProcedure: true);
- Assert.AreEqual(1, userId);
- }
- }
- [TestMethod]
- public async Task ProcedureAsync()
- {
- using var dbContext = DataSource.CreateDbContext();
- // create procedure
- {
- await dbContext.ExecuteAsync(@"
- DROP PROCEDURE IF EXISTS GetUser;
- CREATE PROCEDURE GetUser(IN uid INT)
- BEGIN
- SELECT * FROM `User` WHERE userId = uid order by userId;
- SELECT * FROM `User` WHERE userId != uid order by userId;
- END
- ");
- }
- // ExecuteReader
- {
- using var reader = await dbContext.ExecuteReaderAsync("GetUser", new() { ["uid"] = 1 }, isProcedure: true);
- var userList = reader.ReadEntity<User>().ToList();
- Assert.AreEqual("1", String.Join(",", userList.Select(u => u.id)));
- }
- // ExecuteReader
- {
- using var reader = await dbContext.ExecuteReaderAsync("GetUser", new() { ["uid"] = 1 }, isProcedure: true);
- {
- var userList = reader.ReadEntity<User>().ToList();
- Assert.AreEqual("1", String.Join(",", userList.Select(u => u.id)));
- }
- reader.NextResult();
- {
- var userList = reader.ReadEntity<User>().ToList();
- Assert.AreEqual("2,3,4,5,6", String.Join(",", userList.Select(u => u.id)));
- }
- }
- // ExecuteReader
- {
- using var reader = await dbContext.ExecuteReaderAsync("GetUser", new() { ["uid"] = 0 }, isProcedure: true);
- {
- var userList = reader.ReadEntity<User>().ToList();
- Assert.AreEqual("", String.Join(",", userList.Select(u => u.id)));
- }
- reader.NextResult();
- {
- var userList = reader.ReadEntity<User>().ToList();
- Assert.AreEqual("1,2,3,4,5,6", String.Join(",", userList.Select(u => u.id)));
- }
- }
- // ExecuteReader
- {
- var userId = await dbContext.ExecuteScalarAsync("GetUser", new() { ["uid"] = 1 }, isProcedure: true);
- Assert.AreEqual(1, userId);
- }
- }
- }
- }
|