MySqlConnectorMiscellaneousTests.cs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. using Shouldly;
  2. using Xunit;
  3. namespace PetaPoco.Tests.Integration.Databases.MySqlConnector
  4. {
  5. [Collection("MySqlConnector")]
  6. public class MySqlConnectorMiscellaneousTests : BaseDatabase
  7. {
  8. public MySqlConnectorMiscellaneousTests()
  9. : base(new MySqlConnectorDBTestProvider())
  10. {
  11. }
  12. [Fact]
  13. public void Insert_GivenPocoWithColumnsOfDifferentAccessSpecifiers_ShouldInsert()
  14. {
  15. var p = new AccessSpecifiersPoco();
  16. p.SetValues(1, 2, 3, 4);
  17. DB.Insert(p);
  18. var otherP = DB.Single<AccessSpecifiersPoco>(p.Id);
  19. otherP.ShouldBeValid(1, 2, 3, 4);
  20. }
  21. [Fact]
  22. public void Update_GivenPocoWithColumnsOfDifferentAccessSpecifiers_ShouldUpdate()
  23. {
  24. var p = new AccessSpecifiersPoco();
  25. p.SetValues(1, 2, 3, 4);
  26. DB.Insert(p);
  27. p.SetValues(2, 3, 4, 5);
  28. DB.Update(p);
  29. var otherP = DB.Single<AccessSpecifiersPoco>(p.Id);
  30. otherP.ShouldBeValid(2, 3, 4, 5);
  31. }
  32. [ExplicitColumns]
  33. [TableName("BugInvestigation_3F489XV0")]
  34. [PrimaryKey("Id")]
  35. public class AccessSpecifiersPoco
  36. {
  37. [Column]
  38. public int Id { get; set; }
  39. [Column("TC1")]
  40. public int Column1 { get; set; }
  41. [Column("TC2")]
  42. internal int Column2 { get; set; }
  43. [Column("TC3")]
  44. private int Column3 { get; set; }
  45. [Column("TC4")]
  46. protected int Column4 { get; set; }
  47. public void SetValues(int c1, int c2, int c3, int c4)
  48. {
  49. Column1 = c1;
  50. Column2 = c2;
  51. Column3 = c3;
  52. Column4 = c4;
  53. }
  54. public void ShouldBeValid(int c1, int c2, int c3, int c4)
  55. {
  56. Column1.ShouldBe(c1);
  57. Column2.ShouldBe(c2);
  58. Column3.ShouldBe(c3);
  59. Column4.ShouldBe(c4);
  60. }
  61. }
  62. }
  63. }