func TestHash(t *testing.T) { h := &BCrypt{ WorkFactor: 10, } password := "******" hash, err := h.Hash(password) assert.Nil(t, err) assert.NotNil(t, hash) assert.NotEqual(t, hash, password) }
func TestCreateAndGetCases(t *testing.T) { for _, c := range []struct { data []string extra string pass bool find bool }{ {[]string{"1", "1@bar", "secret"}, `{"foo": "bar"}`, true, true}, {[]string{"1", "1@foo", "secret"}, `{"foo": "bar"}`, false, true}, {[]string{"2", "1@bar", "secret"}, `{"foo": "bar"}`, false, false}, } { result, err := store.Create(c.data[0], c.data[1], c.data[2], c.extra) if c.pass { assert.Nil(t, err) assert.Equal(t, c.data[0], result.GetID()) assert.Equal(t, c.data[1], result.GetEmail()) assert.NotEqual(t, c.data[2], result.GetPassword()) assert.Equal(t, c.extra, result.GetData()) result, err = store.Get(c.data[0]) if c.find { assert.Nil(t, err) assert.Equal(t, c.data[0], result.GetID()) assert.Equal(t, c.data[1], result.GetEmail()) assert.NotEqual(t, c.data[2], result.GetPassword()) assert.Equal(t, c.extra, result.GetData()) } else { assert.NotNil(t, err) } } else { assert.NotNil(t, err) _, err = store.Get(c.data[0]) if c.find { assert.Nil(t, err) } else { assert.NotNil(t, err) } } } }
func TestUpdatePassword(t *testing.T) { account, err := store.Create("4", "4@bar", "old secret", `{"foo": "bar"}`) assert.Nil(t, err) _, err = store.UpdatePassword("4", "wrong old secret", "new secret") assert.NotNil(t, err) updatedAccount, err := store.UpdatePassword("4", "old secret", "new secret") assert.Nil(t, err) resultAccount, err := store.Get("4") assert.Nil(t, err) assert.Equal(t, updatedAccount.GetPassword(), resultAccount.GetPassword()) assert.NotEqual(t, account.GetPassword(), resultAccount.GetPassword()) }
func TestUpdateEmail(t *testing.T) { _, err := store.Create("3", "3@bar", "secret", `{"foo": "bar"}`) assert.Nil(t, err) _, err = store.UpdateEmail("3", "3@foo", "wrong secret") assert.NotNil(t, err) _, err = store.UpdateEmail("3", "3@foo", "secret") assert.Nil(t, err) r, err := store.Get("3") assert.Nil(t, err) assert.Equal(t, "3", r.GetID()) assert.Equal(t, "3@foo", r.GetEmail()) assert.NotEqual(t, "secret", r.GetPassword()) }
// NotEqual asserts that the specified values are NOT equal. // // require.NotEqual(t, obj1, obj2, "two objects shouldn't be equal") func NotEqual(t TestingT, expected, actual interface{}, msgAndArgs ...interface{}) { if !assert.NotEqual(t, expected, actual, msgAndArgs...) { t.FailNow() } }