@@ -121,6 +121,210 @@ func TestResourcePermissionsRead_RemovedCluster(t *testing.T) {
121121 }.ApplyNoError (t )
122122}
123123
124+ func TestResourcePermissionsRead_Mlflow_Model (t * testing.T ) {
125+ d , err := qa.ResourceFixture {
126+ // Pass list of API request mocks
127+ Fixtures : []qa.HTTPFixture {
128+ me ,
129+ {
130+ Method : http .MethodGet ,
131+ Resource : "/api/2.0/permissions/registered-models/fakeuuid123" ,
132+ Response : ObjectACL {
133+ ObjectID : "/registered-models/fakeuuid123" ,
134+ ObjectType : "registered-model" ,
135+ AccessControlList : []AccessControl {
136+ {
137+ UserName : TestingUser ,
138+ PermissionLevel : "CAN_READ" ,
139+ },
140+ {
141+ UserName : TestingAdminUser ,
142+ PermissionLevel : "CAN_MANAGE" ,
143+ },
144+ },
145+ },
146+ },
147+ },
148+ Resource : ResourcePermissions (),
149+ Read : true ,
150+ New : true ,
151+ ID : "/registered-models/fakeuuid123" ,
152+ }.Apply (t )
153+ assert .NoError (t , err , err )
154+ assert .Equal (t , "/registered-models/fakeuuid123" , d .Id ())
155+ ac := d .Get ("access_control" ).(* schema.Set )
156+ require .Equal (t , 1 , len (ac .List ()))
157+ firstElem := ac .List ()[0 ].(map [string ]any )
158+ assert .Equal (t , TestingUser , firstElem ["user_name" ])
159+ assert .Equal (t , "CAN_READ" , firstElem ["permission_level" ])
160+ }
161+
162+ func TestResourcePermissionsCreate_Mlflow_Model (t * testing.T ) {
163+ d , err := qa.ResourceFixture {
164+ Fixtures : []qa.HTTPFixture {
165+ me ,
166+ {
167+ Method : http .MethodPut ,
168+ Resource : "/api/2.0/permissions/registered-models/fakeuuid123" ,
169+ ExpectedRequest : AccessControlChangeList {
170+ AccessControlList : []AccessControlChange {
171+ {
172+ UserName : TestingUser ,
173+ PermissionLevel : "CAN_READ" ,
174+ },
175+ {
176+ UserName : TestingAdminUser ,
177+ PermissionLevel : "CAN_MANAGE" ,
178+ },
179+ },
180+ },
181+ },
182+ {
183+ Method : http .MethodGet ,
184+ Resource : "/api/2.0/permissions/registered-models/fakeuuid123" ,
185+ Response : ObjectACL {
186+ ObjectID : "/registered-models/fakeuuid123" ,
187+ ObjectType : "registered-model" ,
188+ AccessControlList : []AccessControl {
189+ {
190+ UserName : TestingUser ,
191+ PermissionLevel : "CAN_READ" ,
192+ },
193+ {
194+ UserName : TestingAdminUser ,
195+ PermissionLevel : "CAN_MANAGE" ,
196+ },
197+ },
198+ },
199+ },
200+ },
201+ Resource : ResourcePermissions (),
202+ State : map [string ]any {
203+ "registered_model_id" : "fakeuuid123" ,
204+ "access_control" : []any {
205+ map [string ]any {
206+ "user_name" : TestingUser ,
207+ "permission_level" : "CAN_READ" ,
208+ },
209+ },
210+ },
211+ Create : true ,
212+ }.Apply (t )
213+ assert .NoError (t , err , err )
214+ ac := d .Get ("access_control" ).(* schema.Set )
215+ require .Equal (t , 1 , len (ac .List ()))
216+ firstElem := ac .List ()[0 ].(map [string ]any )
217+ assert .Equal (t , TestingUser , firstElem ["user_name" ])
218+ assert .Equal (t , "CAN_READ" , firstElem ["permission_level" ])
219+ }
220+
221+ func TestResourcePermissionsUpdate_Mlflow_Model (t * testing.T ) {
222+ d , err := qa.ResourceFixture {
223+ Fixtures : []qa.HTTPFixture {
224+ me ,
225+ {
226+ Method : http .MethodPut ,
227+ Resource : "/api/2.0/permissions/registered-models/fakeuuid123" ,
228+ ExpectedRequest : AccessControlChangeList {
229+ AccessControlList : []AccessControlChange {
230+ {
231+ UserName : TestingUser ,
232+ PermissionLevel : "CAN_READ" ,
233+ },
234+ {
235+ UserName : TestingAdminUser ,
236+ PermissionLevel : "CAN_MANAGE" ,
237+ },
238+ },
239+ },
240+ },
241+ {
242+ Method : http .MethodGet ,
243+ Resource : "/api/2.0/permissions/registered-models/fakeuuid123" ,
244+ Response : ObjectACL {
245+ ObjectID : "/registered-models/fakeuuid123" ,
246+ ObjectType : "registered-model" ,
247+ AccessControlList : []AccessControl {
248+ {
249+ UserName : TestingUser ,
250+ PermissionLevel : "CAN_READ" ,
251+ },
252+ {
253+ UserName : TestingAdminUser ,
254+ PermissionLevel : "CAN_MANAGE" ,
255+ },
256+ },
257+ },
258+ },
259+ },
260+ InstanceState : map [string ]string {
261+ "registered_model_id" : "fakeuuid123" ,
262+ },
263+ HCL : `
264+ registered_model_id = "fakeuuid123"
265+
266+ access_control {
267+ user_name = "ben"
268+ permission_level = "CAN_READ"
269+ }
270+ ` ,
271+ Resource : ResourcePermissions (),
272+ Update : true ,
273+ // Removed: true,
274+ ID : "/registered-models/fakeuuid123" ,
275+ }.Apply (t )
276+ assert .NoError (t , err , err )
277+ assert .Equal (t , "/registered-models/fakeuuid123" , d .Id ())
278+ ac := d .Get ("access_control" ).(* schema.Set )
279+ require .Equal (t , 1 , len (ac .List ()))
280+ firstElem := ac .List ()[0 ].(map [string ]any )
281+ assert .Equal (t , TestingUser , firstElem ["user_name" ])
282+ assert .Equal (t , "CAN_READ" , firstElem ["permission_level" ])
283+ }
284+
285+ func TestResourcePermissionsDelete_Mlflow_Model (t * testing.T ) {
286+ d , err := qa.ResourceFixture {
287+ Fixtures : []qa.HTTPFixture {
288+ me ,
289+ {
290+ Method : http .MethodGet ,
291+ Resource : "/api/2.0/permissions/registered-models/fakeuuid123" ,
292+ Response : ObjectACL {
293+ ObjectID : "/registered-models/fakeuuid123" ,
294+ ObjectType : "registered-model" ,
295+ AccessControlList : []AccessControl {
296+ {
297+ UserName : TestingUser ,
298+ PermissionLevel : "CAN_READ" ,
299+ },
300+ {
301+ UserName : TestingAdminUser ,
302+ PermissionLevel : "CAN_MANAGE" ,
303+ },
304+ },
305+ },
306+ },
307+ {
308+ Method : http .MethodPut ,
309+ Resource : "/api/2.0/permissions/registered-models/fakeuuid123" ,
310+ ExpectedRequest : AccessControlChangeList {
311+ AccessControlList : []AccessControlChange {
312+ {
313+ UserName : TestingAdminUser ,
314+ PermissionLevel : "CAN_MANAGE" ,
315+ },
316+ },
317+ },
318+ },
319+ },
320+ Resource : ResourcePermissions (),
321+ Delete : true ,
322+ ID : "/registered-models/fakeuuid123" ,
323+ }.Apply (t )
324+ assert .NoError (t , err , err )
325+ assert .Equal (t , "/registered-models/fakeuuid123" , d .Id ())
326+ }
327+
124328func TestResourcePermissionsRead_SQLA_Asset (t * testing.T ) {
125329 d , err := qa.ResourceFixture {
126330 Fixtures : []qa.HTTPFixture {
0 commit comments