Issue_004_Test.cs 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. using System.ComponentModel.DataAnnotations;
  2. using System.ComponentModel.DataAnnotations.Schema;
  3. using Microsoft.VisualStudio.TestTools.UnitTesting;
  4. namespace Vitorm.MsTest.Issue000_099.Issues
  5. {
  6. /// <summary>
  7. /// https://github.com/Vit-Orm/Vitorm/issues/4
  8. /// #4 support schema name of table for MySql
  9. /// </summary>
  10. [TestClass]
  11. public class Issue_004_Test
  12. {
  13. [TestMethod]
  14. public void Test_SqlServer()
  15. {
  16. var name = Guid.NewGuid().ToString();
  17. // #1 Init
  18. using var dbContext = Data.DataProvider("Vitorm.MsTest.SqlServer").CreateSqlDbContext();
  19. using var tran = dbContext.BeginTransaction();
  20. var dbSet = dbContext.DbSet<MyUser>();
  21. dbContext.Execute(@"create schema issue004_schema;");
  22. dbContext.Execute(@"
  23. CREATE TABLE issue004_schema.Issue004_MyUser (id int NOT NULL primary key, name varchar(1000) DEFAULT NULL);
  24. insert into issue004_schema.Issue004_MyUser(id,name) values(1,@name);
  25. ", param: new Dictionary<string, object> { ["name"] = name });
  26. // #2 Assert
  27. {
  28. var user = dbSet.Get(1);
  29. Assert.AreEqual(name, user.name);
  30. }
  31. }
  32. [TestMethod]
  33. public void Test_MySql()
  34. {
  35. var name = Guid.NewGuid().ToString();
  36. // #1 Init
  37. using var dbContext = Data.DataProvider("Vitorm.MsTest.MySql").CreateSqlDbContext();
  38. using var tran = dbContext.BeginTransaction();
  39. var dbSet = dbContext.DbSet<MyUser>();
  40. dbContext.Execute(@"
  41. create schema IF NOT EXISTS `issue004_schema`;
  42. use `issue004_schema`;
  43. drop table if exists `issue004_schema`.`Issue004_MyUser`;
  44. CREATE TABLE IF NOT EXISTS `issue004_schema`.`Issue004_MyUser` (`id` int NOT NULL primary key, `name` varchar(1000) DEFAULT NULL);
  45. insert into `issue004_schema`.`Issue004_MyUser`(`id`,name) values(1,@name);
  46. ", param: new Dictionary<string, object> { ["name"] = name });
  47. // #2 Assert
  48. {
  49. var user = dbSet.Get(1);
  50. Assert.AreEqual(name, user.name);
  51. }
  52. }
  53. [TestMethod]
  54. public void Test_Sqlite()
  55. {
  56. var name = Guid.NewGuid().ToString();
  57. // #1 Init
  58. using var dbContext = Data.DataProvider("Vitorm.MsTest.Sqlite").CreateSqlDbContext();
  59. using var tran = dbContext.BeginTransaction();
  60. var dbSet = dbContext.DbSet<MyUser>();
  61. dbSet.TryDropTable();
  62. dbSet.TryCreateTable();
  63. dbSet.Add(new MyUser { id = 1, name = name });
  64. // #2 Assert
  65. {
  66. var user = dbSet.Get(1);
  67. Assert.AreEqual(name, user.name);
  68. }
  69. }
  70. // Entity
  71. [Table("Issue004_MyUser", Schema = "issue004_schema")]
  72. public class MyUser
  73. {
  74. [Key]
  75. public int id { get; set; }
  76. public string name { get; set; }
  77. }
  78. }
  79. }