1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175
|
package metadata
import (
"testing"
"github.com/google/go-cmp/cmp"
)
func TestAccessPrivileges_String(t *testing.T) {
tests := []struct {
name string
ps ObjectPrivileges
want string
}{
{
name: "multi",
ps: ObjectPrivileges{
{Grantee: "user1", Grantor: "user1", PrivilegeType: "INSERT", IsGrantable: true},
{Grantee: "user1", Grantor: "user1", PrivilegeType: "SELECT"},
{Grantee: "user2", Grantor: "user1", PrivilegeType: "INSERT"},
{Grantee: "user2", Grantor: "user1", PrivilegeType: "SELECT", IsGrantable: true},
{Grantee: "user3", Grantor: "user1", PrivilegeType: "SELECT", IsGrantable: true},
{Grantee: "user3", Grantor: "user2", PrivilegeType: "UPDATE"},
},
want: "user1=INSERT*,SELECT/user1\n" +
"user2=INSERT,SELECT*/user1\n" +
"user3=SELECT*/user1\n" +
"user3=UPDATE/user2",
},
{
name: "one",
ps: ObjectPrivileges{
{Grantee: "user1", Grantor: "user1", PrivilegeType: "INSERT"},
},
want: "user1=INSERT/user1",
},
{
name: "empty",
ps: ObjectPrivileges{},
want: "",
},
{
name: "empty-grantor",
ps: ObjectPrivileges{
{Grantee: "user1", Grantor: "", PrivilegeType: "INSERT", IsGrantable: true},
{Grantee: "user1", Grantor: "", PrivilegeType: "SELECT"},
{Grantee: "user2", Grantor: "", PrivilegeType: "INSERT"},
{Grantee: "user2", Grantor: "", PrivilegeType: "SELECT", IsGrantable: true},
{Grantee: "user3", Grantor: "", PrivilegeType: "UPDATE"},
},
want: "user1=INSERT*,SELECT\n" +
"user2=INSERT,SELECT*\n" +
"user3=UPDATE",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got := tt.ps.String()
if diff := cmp.Diff(tt.want, got); diff != "" {
t.Errorf("Wrong AccessPrivileges.String(): (-expected, +got):\n%s", diff)
}
})
}
}
func TestColumnPrivileges_String(t *testing.T) {
tests := []struct {
name string
ps ColumnPrivileges
want string
}{
{
name: "multi",
ps: ColumnPrivileges{
{Column: "col1", Grantee: "user1", Grantor: "user1", PrivilegeType: "INSERT", IsGrantable: true},
{Column: "col1", Grantee: "user1", Grantor: "user1", PrivilegeType: "SELECT"},
{Column: "col1", Grantee: "user2", Grantor: "user1", PrivilegeType: "INSERT"},
{Column: "col1", Grantee: "user2", Grantor: "user1", PrivilegeType: "SELECT", IsGrantable: true},
{Column: "col1", Grantee: "user3", Grantor: "user1", PrivilegeType: "SELECT", IsGrantable: true},
{Column: "col1", Grantee: "user3", Grantor: "user2", PrivilegeType: "UPDATE"},
{Column: "col2", Grantee: "user1", Grantor: "user1", PrivilegeType: "INSERT", IsGrantable: true},
{Column: "col2", Grantee: "user1", Grantor: "user1", PrivilegeType: "SELECT"},
{Column: "col2", Grantee: "user2", Grantor: "user1", PrivilegeType: "INSERT"},
{Column: "col2", Grantee: "user2", Grantor: "user1", PrivilegeType: "SELECT", IsGrantable: true},
{Column: "col2", Grantee: "user3", Grantor: "user2", PrivilegeType: "UPDATE"},
},
want: "col1:\n" +
" user1=INSERT*,SELECT/user1\n" +
" user2=INSERT,SELECT*/user1\n" +
" user3=SELECT*/user1\n" +
" user3=UPDATE/user2\n" +
"col2:\n" +
" user1=INSERT*,SELECT/user1\n" +
" user2=INSERT,SELECT*/user1\n" +
" user3=UPDATE/user2",
},
{
name: "one-multi",
ps: ColumnPrivileges{
{Column: "col2", Grantee: "user1", Grantor: "user1", PrivilegeType: "INSERT", IsGrantable: true},
{Column: "col3", Grantee: "user1", Grantor: "user1", PrivilegeType: "INSERT", IsGrantable: true},
{Column: "col3", Grantee: "user1", Grantor: "user1", PrivilegeType: "SELECT"},
{Column: "col3", Grantee: "user2", Grantor: "user1", PrivilegeType: "INSERT"},
{Column: "col3", Grantee: "user2", Grantor: "user1", PrivilegeType: "SELECT", IsGrantable: true},
{Column: "col3", Grantee: "user3", Grantor: "user2", PrivilegeType: "UPDATE"},
},
want: "col2:\n" +
" user1=INSERT*/user1\n" +
"col3:\n" +
" user1=INSERT*,SELECT/user1\n" +
" user2=INSERT,SELECT*/user1\n" +
" user3=UPDATE/user2",
},
{
name: "multi-one",
ps: ColumnPrivileges{
{Column: "col1", Grantee: "user1", Grantor: "user1", PrivilegeType: "INSERT", IsGrantable: true},
{Column: "col1", Grantee: "user1", Grantor: "user1", PrivilegeType: "SELECT"},
{Column: "col1", Grantee: "user2", Grantor: "user1", PrivilegeType: "INSERT"},
{Column: "col1", Grantee: "user2", Grantor: "user1", PrivilegeType: "SELECT", IsGrantable: true},
{Column: "col1", Grantee: "user3", Grantor: "user2", PrivilegeType: "UPDATE"},
{Column: "col2", Grantee: "user1", Grantor: "user1", PrivilegeType: "INSERT", IsGrantable: true},
},
want: "col1:\n" +
" user1=INSERT*,SELECT/user1\n" +
" user2=INSERT,SELECT*/user1\n" +
" user3=UPDATE/user2\n" +
"col2:\n" +
" user1=INSERT*/user1",
},
{
name: "one",
ps: ColumnPrivileges{
{Column: "col1", Grantee: "user1", Grantor: "user1", PrivilegeType: "INSERT"},
},
want: "col1:\n user1=INSERT/user1",
},
{
name: "empty",
ps: ColumnPrivileges{},
want: "",
},
{
name: "empty-grantor",
ps: ColumnPrivileges{
{Column: "col1", Grantee: "user1", Grantor: "", PrivilegeType: "INSERT", IsGrantable: true},
{Column: "col1", Grantee: "user1", Grantor: "", PrivilegeType: "SELECT"},
{Column: "col1", Grantee: "user2", Grantor: "", PrivilegeType: "INSERT"},
{Column: "col1", Grantee: "user2", Grantor: "", PrivilegeType: "SELECT", IsGrantable: true},
{Column: "col1", Grantee: "user3", Grantor: "", PrivilegeType: "UPDATE"},
{Column: "col2", Grantee: "user1", Grantor: "", PrivilegeType: "INSERT", IsGrantable: true},
{Column: "col2", Grantee: "user1", Grantor: "", PrivilegeType: "SELECT"},
{Column: "col2", Grantee: "user2", Grantor: "", PrivilegeType: "INSERT"},
{Column: "col2", Grantee: "user2", Grantor: "", PrivilegeType: "SELECT", IsGrantable: true},
{Column: "col2", Grantee: "user3", Grantor: "", PrivilegeType: "UPDATE"},
},
want: "col1:\n" +
" user1=INSERT*,SELECT\n" +
" user2=INSERT,SELECT*\n" +
" user3=UPDATE\n" +
"col2:\n" +
" user1=INSERT*,SELECT\n" +
" user2=INSERT,SELECT*\n" +
" user3=UPDATE",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got := tt.ps.String()
if diff := cmp.Diff(tt.want, got); diff != "" {
t.Errorf("Wrong ColumnPrivileges.String(): (-expected, +got):\n%s", diff)
}
})
}
}
|