Compare commits
3 Commits
76185c3aa1
...
9ec23d395c
Author | SHA1 | Date | |
---|---|---|---|
9ec23d395c | |||
c1389b4ab3 | |||
95e142860e |
@ -91,7 +91,7 @@ func main() {
|
|||||||
rfs.AddLocalFunc("verify_pin", ussdHandlers.VerifyPin)
|
rfs.AddLocalFunc("verify_pin", ussdHandlers.VerifyPin)
|
||||||
rfs.AddLocalFunc("check_identifier", ussdHandlers.CheckIdentifier)
|
rfs.AddLocalFunc("check_identifier", ussdHandlers.CheckIdentifier)
|
||||||
rfs.AddLocalFunc("check_account_status", ussdHandlers.CheckAccountStatus)
|
rfs.AddLocalFunc("check_account_status", ussdHandlers.CheckAccountStatus)
|
||||||
rfs.AddLocalFunc("unlock_account", ussdHandlers.Authorize)
|
rfs.AddLocalFunc("authorize_account", ussdHandlers.Authorize)
|
||||||
rfs.AddLocalFunc("quit", ussdHandlers.Quit)
|
rfs.AddLocalFunc("quit", ussdHandlers.Quit)
|
||||||
rfs.AddLocalFunc("check_balance", ussdHandlers.CheckBalance)
|
rfs.AddLocalFunc("check_balance", ussdHandlers.CheckBalance)
|
||||||
rfs.AddLocalFunc("validate_recipient", ussdHandlers.ValidateRecipient)
|
rfs.AddLocalFunc("validate_recipient", ussdHandlers.ValidateRecipient)
|
||||||
@ -110,8 +110,8 @@ func main() {
|
|||||||
rfs.AddLocalFunc("save_yob", ussdHandlers.SaveYob)
|
rfs.AddLocalFunc("save_yob", ussdHandlers.SaveYob)
|
||||||
rfs.AddLocalFunc("save_offerings", ussdHandlers.SaveOfferings)
|
rfs.AddLocalFunc("save_offerings", ussdHandlers.SaveOfferings)
|
||||||
rfs.AddLocalFunc("quit_with_balance", ussdHandlers.QuitWithBalance)
|
rfs.AddLocalFunc("quit_with_balance", ussdHandlers.QuitWithBalance)
|
||||||
rfs.AddLocalFunc("reset_unlocked", ussdHandlers.ResetAccountAuthorized)
|
rfs.AddLocalFunc("reset_account_authorized", ussdHandlers.ResetAccountAuthorized)
|
||||||
rfs.AddLocalFunc("reset_unlock_for_update", ussdHandlers.ResetAllowUpdate)
|
rfs.AddLocalFunc("reset_allow_update", ussdHandlers.ResetAllowUpdate)
|
||||||
rfs.AddLocalFunc("get_profile_info", ussdHandlers.GetProfileInfo)
|
rfs.AddLocalFunc("get_profile_info", ussdHandlers.GetProfileInfo)
|
||||||
rfs.AddLocalFunc("verify_yob", ussdHandlers.VerifyYob)
|
rfs.AddLocalFunc("verify_yob", ussdHandlers.VerifyYob)
|
||||||
rfs.AddLocalFunc("reset_incorrect_date_format", ussdHandlers.ResetIncorrectYob)
|
rfs.AddLocalFunc("reset_incorrect_date_format", ussdHandlers.ResetIncorrectYob)
|
||||||
|
@ -332,3 +332,67 @@ func TestSavePin(t *testing.T) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
func TestSaveLocation(t *testing.T) {
|
||||||
|
// Create a new instance of MockAccountFileHandler
|
||||||
|
mockFileHandler := new(mocks.MockAccountFileHandler)
|
||||||
|
|
||||||
|
// Define test cases
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
input []byte
|
||||||
|
existingData map[string]string
|
||||||
|
writeError error
|
||||||
|
expectedResult resource.Result
|
||||||
|
expectedError error
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
name: "Successful Save",
|
||||||
|
input: []byte("Mombasa"),
|
||||||
|
existingData: map[string]string{"Location": "Mombasa"},
|
||||||
|
writeError: nil,
|
||||||
|
expectedResult: resource.Result{},
|
||||||
|
expectedError: nil,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "Empty location input",
|
||||||
|
input: []byte{},
|
||||||
|
existingData: map[string]string{"OtherKey": "OtherValue"},
|
||||||
|
writeError: nil,
|
||||||
|
expectedResult: resource.Result{},
|
||||||
|
expectedError: nil,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
// Set up the mock expectations
|
||||||
|
mockFileHandler.On("ReadAccountData").Return(tt.existingData, tt.expectedError)
|
||||||
|
if tt.expectedError == nil && len(tt.input) > 0 {
|
||||||
|
mockFileHandler.On("WriteAccountData", mock.MatchedBy(func(data map[string]string) bool {
|
||||||
|
return data["Location"] == string(tt.input)
|
||||||
|
})).Return(tt.writeError)
|
||||||
|
}else if len(tt.input) == 0 {
|
||||||
|
// For empty input, no WriteAccountData call should be made
|
||||||
|
mockFileHandler.On("WriteAccountData", mock.Anything).Maybe().Return(tt.writeError)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Create the Handlers instance with the mock file handler
|
||||||
|
h := &Handlers{
|
||||||
|
accountFileHandler: mockFileHandler,
|
||||||
|
}
|
||||||
|
|
||||||
|
// Call the method
|
||||||
|
result, err := h.SaveLocation(context.Background(), "save_location", tt.input)
|
||||||
|
|
||||||
|
// Assert the results
|
||||||
|
assert.Equal(t, tt.expectedResult, result)
|
||||||
|
assert.Equal(t, tt.expectedError, err)
|
||||||
|
|
||||||
|
// Assert all expectations were met
|
||||||
|
mockFileHandler.AssertExpectations(t)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
@ -1,6 +1,6 @@
|
|||||||
LOAD reset_unlocked 16
|
LOAD reset_account_authorized 16
|
||||||
LOAD reset_unlock_for_update 0
|
LOAD reset_allow_update 0
|
||||||
RELOAD reset_unlock_for_update
|
RELOAD reset_allow_update
|
||||||
MOUT edit_name 1
|
MOUT edit_name 1
|
||||||
MOUT edit_gender 2
|
MOUT edit_gender 2
|
||||||
MOUT edit_yob 3
|
MOUT edit_yob 3
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
LOAD reset_unlock_for_update 0
|
LOAD reset_allow_update 0
|
||||||
MOUT profile 1
|
MOUT profile 1
|
||||||
MOUT change_language 2
|
MOUT change_language 2
|
||||||
MOUT check_balance 3
|
MOUT check_balance 3
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
LOAD unlock_account 0
|
LOAD authorize_account 0
|
||||||
HALT
|
HALT
|
||||||
RELOAD unlock_account
|
RELOAD authorize_account
|
||||||
MOVE _
|
MOVE _
|
||||||
|
@ -6,9 +6,10 @@ MAP get_sender
|
|||||||
MOUT back 0
|
MOUT back 0
|
||||||
MOUT quit 9
|
MOUT quit 9
|
||||||
HALT
|
HALT
|
||||||
LOAD unlock_account 1
|
LOAD authorize_account 1
|
||||||
RELOAD unlock_account
|
RELOAD authorize_account
|
||||||
CATCH incorrect_pin 15 1
|
CATCH incorrect_pin 15 1
|
||||||
INCMP _ 0
|
INCMP _ 0
|
||||||
INCMP quit 9
|
INCMP quit 9
|
||||||
MOVE transaction_initiated
|
MOVE transaction_initiated
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user