public void CreateSubAccount_ExistingSubAccountWithAccountNumberAndBank_ReturnsError()
        {
            // Arrange
            string bankCode              = AppConstants.ACCESS_BANK_CODE;
            string accountNumber         = AppConstants.VALID_ACCESSBANK_ACCOUNT_NUMBER;
            string businessName          = AppConstants.SAMPLE_BUSINESS_NAME;
            string businessEmail         = AppConstants.SAMPLE_EMAIL;
            double splitValue            = 0.5;
            string businessContact       = AppConstants.SAMPLE_CUSTOMER_NAME;
            string businessContactMobile = AppConstants.SAMPLE_PHONE_NUMBER;
            string businessMobile        = AppConstants.SAMPLE_PHONE_NUMBER;

            // Act
            var result1 = _subAccounts.CreateSubAccount(bankCode,
                                                        accountNumber,
                                                        businessName,
                                                        businessEmail,
                                                        Country.Nigeria,
                                                        SplitType.Percentage,
                                                        splitValue,
                                                        businessContact,
                                                        businessContactMobile,
                                                        businessMobile);

            var result2 = _subAccounts.CreateSubAccount(bankCode,
                                                        accountNumber,
                                                        businessName,
                                                        businessEmail,
                                                        Country.Nigeria,
                                                        SplitType.Percentage,
                                                        splitValue,
                                                        businessContact,
                                                        businessContactMobile,
                                                        businessMobile);

            // Delete newly created subAccount
            // for purposing of re-creating in future test runs
            _subAccounts.DeleteSubAccount(result1.Data.Id);

            // Assert
            Assert.NotNull(result2);
            Assert.IsType <CreateSubAccountResponse>(result2);
            Assert.Equal(expected: AppConstants.ERROR_STATUS, actual: result2.Status);
            Assert.Equal(expected: AppConstants.EXISTING_SUB_ACCOUNT_ERROR_MESSAGE, actual: result2.Message);
            Assert.Null(result2.Data);
        }
        public void DeleteSubAccount_InvalidSecretKey_ReturnsError()
        {
            // Arrange
            int subAccountId = AppConstants.VALID_SUBACCOUNT_ID;

            var flutterwaveSecretKey = "";

            _subAccounts = new SubAccounts(new FlutterwaveApi(flutterwaveSecretKey));

            // Act
            var result = _subAccounts.DeleteSubAccount(subAccountId);

            // Assert
            Assert.NotNull(result);
            Assert.IsType <DeleteSubAccountResponse>(result);
            Assert.Equal(expected: AppConstants.ERROR_STATUS, actual: result.Status);
            Assert.Equal(expected: AppConstants.INVALID_AUTHORIZATION_KEY_ERROR_MESSAGE, actual: result.Message);
            Assert.Null(result.Data);
        }