49 lines
1.8 KiB
Go
49 lines
1.8 KiB
Go
package api
|
|
|
|
import (
|
|
"github.com/stretchr/testify/assert"
|
|
"go-nkode/models"
|
|
"testing"
|
|
)
|
|
|
|
func TestNKodeAPI(t *testing.T) {
|
|
for idx := 0; idx < 10; idx++ {
|
|
username := "test_username"
|
|
passcodeLen := 4
|
|
nkodePolicy := models.NewDefaultNKodePolicy()
|
|
keypadSize := models.KeypadSize{AttrsPerKey: 10, NumbOfKeys: 3}
|
|
nkodeApi := NewNKodeAPI()
|
|
customerId, err := nkodeApi.CreateNewCustomer(keypadSize, nkodePolicy)
|
|
assert.NoError(t, err)
|
|
sessionId, setInterface, err := nkodeApi.GenerateSignupInterface(*customerId)
|
|
assert.NoError(t, err)
|
|
keypadSize = models.KeypadSize{AttrsPerKey: 3, NumbOfKeys: 3}
|
|
userPasscode := setInterface[:passcodeLen]
|
|
setKeySelect, err := SelectKeyByAttrIdx(setInterface, userPasscode, keypadSize)
|
|
assert.NoError(t, err)
|
|
confirmInterface, err := nkodeApi.SetNKode(username, *customerId, setKeySelect, *sessionId)
|
|
assert.NoError(t, err)
|
|
confirmKeySelect, err := SelectKeyByAttrIdx(confirmInterface, userPasscode, keypadSize)
|
|
err = nkodeApi.ConfirmNKode(*customerId, confirmKeySelect, *sessionId)
|
|
assert.NoError(t, err)
|
|
|
|
keypadSize = models.KeypadSize{AttrsPerKey: 10, NumbOfKeys: 3}
|
|
loginInterface, err := nkodeApi.GetLoginInterface(username, *customerId)
|
|
assert.NoError(t, err)
|
|
loginKeySelection, err := SelectKeyByAttrIdx(loginInterface, userPasscode, keypadSize)
|
|
assert.NoError(t, err)
|
|
err = nkodeApi.Login(*customerId, username, loginKeySelection)
|
|
assert.NoError(t, err)
|
|
|
|
err = nkodeApi.RenewAttributes(*customerId)
|
|
assert.NoError(t, err)
|
|
|
|
loginInterface, err = nkodeApi.GetLoginInterface(username, *customerId)
|
|
assert.NoError(t, err)
|
|
loginKeySelection, err = SelectKeyByAttrIdx(loginInterface, userPasscode, keypadSize)
|
|
assert.NoError(t, err)
|
|
err = nkodeApi.Login(*customerId, username, loginKeySelection)
|
|
assert.NoError(t, err)
|
|
}
|
|
}
|