package nkode import ( "github.com/stretchr/testify/assert" "go-nkode/core/model" "testing" ) func TestNKodeAPI(t *testing.T) { for idx := 0; idx < 10; idx++ { username := "test_username" passcodeLen := 4 nkodePolicy := model.NewDefaultNKodePolicy() keypadSize := model.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 = model.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 = model.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) } }