package gcp

import (
	"reflect"
	"testing"

	iamgcpapi "google.golang.org/api/iam/v1"
)

func TestFindBindingPolicyorCreate(t *testing.T) {
	type args struct {
		bindings []*iamgcpapi.Binding
	}
	tests := []struct {
		name  string
		args  args
		want  int
		want1 iamgcpapi.Binding
	}{
		{
			name: "",
			args: args{bindings: []*iamgcpapi.Binding{}},
			want: -1,
			want1: iamgcpapi.Binding{
				Role: AccessServiceAccountRole,
			},
		},
		{
			name: "",
			args: args{bindings: []*iamgcpapi.Binding{
				{
					Role:    AccessServiceAccountRole,
					Members: []string{},
				},
			}},
			want: 0,
			want1: iamgcpapi.Binding{
				Role:    AccessServiceAccountRole,
				Members: []string{},
			},
		},
		{
			name: "",
			args: args{bindings: []*iamgcpapi.Binding{
				nil,
				{
					Role:    AccessServiceAccountRole,
					Members: []string{},
				},
			}},
			want: 1,
			want1: iamgcpapi.Binding{
				Role:    AccessServiceAccountRole,
				Members: []string{},
			},
		},
	}
	for _, tt := range tests {
		t.Run(tt.name, func(t *testing.T) {
			got, got1 := FindBindingPolicyorCreate(tt.args.bindings)
			if got != tt.want {
				t.Errorf("FindBindingPolicyorCreate() got = %v, want %v", got, tt.want)
			}
			if !reflect.DeepEqual(got1, tt.want1) {
				t.Errorf("FindBindingPolicyorCreate() got1 = %v, want %v", got1, tt.want1)
			}
		})
	}
}
