CodeExceptionTest.cs 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. using Microsoft.VisualStudio.TestPlatform.CommunicationUtilities;
  2. using Quadarax.Foundation.Core.Attributes;
  3. using Quadarax.Foundation.Core.Exceptions;
  4. namespace qdr.fnd.core.test.Exceptions
  5. {
  6. internal class CodeExceptionTest
  7. {
  8. const string CS_MESSAGE = "Foo";
  9. const string CS_EN_MESSAGE1 = "Foo message";
  10. const string CS_EN_MESSAGE2 = "Fii message";
  11. const string CS_EN_MESSAGE3 = "Arguments {0},{1}";
  12. const int CS_CODE = 1234;
  13. enum TestErrorCodeEnum
  14. {
  15. [ErrorMessage(CS_EN_MESSAGE1)]
  16. Foo = 1,
  17. [ErrorMessage(CS_EN_MESSAGE2)]
  18. Bar = 2,
  19. NotDef = 3,
  20. [ErrorMessage(CS_EN_MESSAGE3)]
  21. Args = 4
  22. }
  23. [Test(TestOf = typeof(CodeException))]
  24. public void CheckCodeAndMessageSettingOk()
  25. {
  26. var ex = new CodeException(CS_CODE, CS_MESSAGE);
  27. Assert.That(ex.Code, Is.EqualTo(CS_CODE));
  28. Assert.That(ex.Message, Is.EqualTo(CS_MESSAGE));
  29. Assert.That(ex.InnerException, Is.Null);
  30. }
  31. [Test(TestOf = typeof(CodeException))]
  32. public void CheckCodeAndMessageInnerSettingOk()
  33. {
  34. var exInner = new Exception("Fee");
  35. var ex = new CodeException(CS_CODE, CS_MESSAGE, exInner);
  36. Assert.That(ex.Code, Is.EqualTo(CS_CODE));
  37. Assert.That(ex.Message, Is.EqualTo(CS_MESSAGE));
  38. Assert.That(ex.InnerException, Is.Not.Null);
  39. Assert.That(ex.InnerException.Message, Is.EqualTo(ex.InnerException.Message));
  40. }
  41. [Test(TestOf = typeof(CodeException))]
  42. public void CheckGenericCodeOk()
  43. {
  44. var ex = new CodeException<TestErrorCodeEnum>(TestErrorCodeEnum.Foo);
  45. Assert.That(ex.Code, Is.EqualTo(TestErrorCodeEnum.Foo));
  46. Assert.That(ex.Message, Is.EqualTo(CS_EN_MESSAGE1));
  47. Assert.That(ex.InnerException, Is.Null);
  48. }
  49. [Test(TestOf = typeof(CodeException))]
  50. public void CheckGenericCodeArguments()
  51. {
  52. var ex = new CodeException<TestErrorCodeEnum>(TestErrorCodeEnum.Args,1,"AAA");
  53. Assert.That(ex.Code, Is.EqualTo(TestErrorCodeEnum.Args));
  54. Assert.That(ex.Message, Is.EqualTo(string.Format(CS_EN_MESSAGE3,1,"AAA")));
  55. Assert.That(ex.InnerException, Is.Null);
  56. }
  57. [Test(TestOf = typeof(CodeException))]
  58. public void CheckGenericCodeNotDefinedOk()
  59. {
  60. var ex = new CodeException<TestErrorCodeEnum>(TestErrorCodeEnum.NotDef);
  61. Assert.That(ex.Message, Is.EqualTo($"Error message code: {TestErrorCodeEnum.NotDef} [{Convert.ToInt32(TestErrorCodeEnum.NotDef)}]"));
  62. }
  63. }
  64. }