public static void GetErrorCode___Should_return_null___When_error_code_was_not_added_to_exception()
        {
            // Arrange,
            var exception = new ArgumentException();

            // Act
            var actual = exception.GetErrorCode();

            // Assert
            actual.Should().BeNull();
        }
        public static void GetErrorCode___Should_throw_ArgumentNullException___When_parameter_dataKeyForErrorCode_is_null()
        {
            // Arrange
            var exception = new ArgumentException();

            // Act
            var actual = Record.Exception(() => exception.GetErrorCode(dataKeyForErrorCode: null));

            // Assert
            actual.Should().BeOfType <ArgumentNullException>();
            actual.Message.Should().Contain("dataKeyForErrorCode");
        }
        public static void GetErrorCode___Should_return_error_code___When_error_code_was_added_to_exception()
        {
            // Arrange,
            var exception = new ArgumentException();
            var expected  = "this-is-an-ERROR_CODE";

            exception.AddErrorCode(expected);

            // Act
            var actual = exception.GetErrorCode();

            // Assert
            actual.Should().Be(expected);
        }
        public static void GetErrorCode___Should_return_error_code___When_error_code_was_added_to_exception_and_retrieved_from_exception_using_custom_dataKeyForErrorCode()
        {
            // Arrange,
            var exception           = new ArgumentException();
            var dataKeyForErrorCode = A.Dummy <string>();
            var expected            = "this-is-an-ERROR_CODE";

            exception.AddErrorCode(expected, dataKeyForErrorCode: dataKeyForErrorCode);

            // Act
            var actual = exception.GetErrorCode(dataKeyForErrorCode);

            // Assert
            actual.Should().Be(expected);
        }