ory-am/hydra

View on GitHub
oauth2/equalKeys.go

Summary

Maintainability
B
4 hrs
Test Coverage
// Copyright © 2022 Ory Corp
// SPDX-License-Identifier: Apache-2.0

package oauth2

import (
    "testing"

    "github.com/oleiade/reflections"
    "github.com/stretchr/testify/assert"
    "github.com/stretchr/testify/require"
)

func AssertObjectKeysEqual(t *testing.T, a, b interface{}, keys ...string) {
    assert.True(t, len(keys) > 0, "No keys provided.")
    for _, k := range keys {
        c, err := reflections.GetField(a, k)
        assert.Nil(t, err)
        d, err := reflections.GetField(b, k)
        assert.Nil(t, err)
        assert.Equal(t, c, d, "%s", k)
    }
}

func AssertObjectKeysNotEqual(t *testing.T, a, b interface{}, keys ...string) {
    assert.True(t, len(keys) > 0, "No keys provided.")
    for _, k := range keys {
        c, err := reflections.GetField(a, k)
        assert.Nil(t, err)
        d, err := reflections.GetField(b, k)
        assert.Nil(t, err)
        assert.NotEqual(t, c, d, "%s", k)
    }
}

func RequireObjectKeysEqual(t *testing.T, a, b interface{}, keys ...string) {
    assert.True(t, len(keys) > 0, "No keys provided.")
    for _, k := range keys {
        c, err := reflections.GetField(a, k)
        assert.Nil(t, err)
        d, err := reflections.GetField(b, k)
        assert.Nil(t, err)
        require.Equal(t, c, d, "%s", k)
    }
}
func RequireObjectKeysNotEqual(t *testing.T, a, b interface{}, keys ...string) {
    assert.True(t, len(keys) > 0, "No keys provided.")
    for _, k := range keys {
        c, err := reflections.GetField(a, k)
        assert.Nil(t, err)
        d, err := reflections.GetField(b, k)
        assert.Nil(t, err)
        require.NotEqual(t, c, d, "%s", k)
    }
}