@@ -33,6 +33,19 @@ func TestRepository_GetCollaborators(t *testing.T) {
33
33
test (2 )
34
34
test (3 )
35
35
test (4 )
36
+
37
+ // Test db.ListOptions
38
+ repo := unittest .AssertExistsAndLoadBean (t , & repo_model.Repository {ID : 22 })
39
+
40
+ collaborators1 , err := repo_model .GetCollaborators (db .DefaultContext , repo .ID , db.ListOptions {PageSize : 1 , Page : 1 })
41
+ assert .NoError (t , err )
42
+ assert .Len (t , collaborators1 , 1 )
43
+
44
+ collaborators2 , err := repo_model .GetCollaborators (db .DefaultContext , repo .ID , db.ListOptions {PageSize : 1 , Page : 2 })
45
+ assert .NoError (t , err )
46
+ assert .Len (t , collaborators2 , 1 )
47
+
48
+ assert .NotEqualValues (t , collaborators1 [0 ].ID , collaborators2 [0 ].ID )
36
49
}
37
50
38
51
func TestRepository_IsCollaborator (t * testing.T ) {
@@ -66,5 +79,80 @@ func TestRepository_ChangeCollaborationAccessMode(t *testing.T) {
66
79
67
80
assert .NoError (t , repo_model .ChangeCollaborationAccessMode (db .DefaultContext , repo , unittest .NonexistentID , perm .AccessModeAdmin ))
68
81
82
+ // Disvard invalid input.
83
+ assert .NoError (t , repo_model .ChangeCollaborationAccessMode (db .DefaultContext , repo , 4 , perm .AccessMode (unittest .NonexistentID )))
84
+
69
85
unittest .CheckConsistencyFor (t , & repo_model.Repository {ID : repo .ID })
70
86
}
87
+
88
+ func TestRepository_CountCollaborators (t * testing.T ) {
89
+ assert .NoError (t , unittest .PrepareTestDatabase ())
90
+
91
+ repo1 := unittest .AssertExistsAndLoadBean (t , & repo_model.Repository {ID : 4 })
92
+ count , err := repo_model .CountCollaborators (repo1 .ID )
93
+ assert .NoError (t , err )
94
+ assert .EqualValues (t , 2 , count )
95
+
96
+ repo2 := unittest .AssertExistsAndLoadBean (t , & repo_model.Repository {ID : 22 })
97
+ count , err = repo_model .CountCollaborators (repo2 .ID )
98
+ assert .NoError (t , err )
99
+ assert .EqualValues (t , 2 , count )
100
+
101
+ // Non-existent repository.
102
+ count , err = repo_model .CountCollaborators (unittest .NonexistentID )
103
+ assert .NoError (t , err )
104
+ assert .EqualValues (t , 0 , count )
105
+ }
106
+
107
+ func TestRepository_IsOwnerMemberCollaborator (t * testing.T ) {
108
+ assert .NoError (t , unittest .PrepareTestDatabase ())
109
+
110
+ repo1 := unittest .AssertExistsAndLoadBean (t , & repo_model.Repository {ID : 3 })
111
+
112
+ // Organisation owner.
113
+ actual , err := repo_model .IsOwnerMemberCollaborator (repo1 , 2 )
114
+ assert .NoError (t , err )
115
+ assert .True (t , actual )
116
+
117
+ // Team member.
118
+ actual , err = repo_model .IsOwnerMemberCollaborator (repo1 , 4 )
119
+ assert .NoError (t , err )
120
+ assert .True (t , actual )
121
+
122
+ // Normal user.
123
+ actual , err = repo_model .IsOwnerMemberCollaborator (repo1 , 1 )
124
+ assert .NoError (t , err )
125
+ assert .False (t , actual )
126
+
127
+ repo2 := unittest .AssertExistsAndLoadBean (t , & repo_model.Repository {ID : 4 })
128
+
129
+ // Collaborator.
130
+ actual , err = repo_model .IsOwnerMemberCollaborator (repo2 , 4 )
131
+ assert .NoError (t , err )
132
+ assert .True (t , actual )
133
+
134
+ repo3 := unittest .AssertExistsAndLoadBean (t , & repo_model.Repository {ID : 15 })
135
+
136
+ // Repository owner.
137
+ actual , err = repo_model .IsOwnerMemberCollaborator (repo3 , 2 )
138
+ assert .NoError (t , err )
139
+ assert .True (t , actual )
140
+ }
141
+
142
+ func TestRepo_GetCollaboration (t * testing.T ) {
143
+ assert .NoError (t , unittest .PrepareTestDatabase ())
144
+
145
+ repo := unittest .AssertExistsAndLoadBean (t , & repo_model.Repository {ID : 4 })
146
+
147
+ // Existing collaboration.
148
+ collab , err := repo_model .GetCollaboration (db .DefaultContext , repo .ID , 4 )
149
+ assert .NoError (t , err )
150
+ assert .NotNil (t , collab )
151
+ assert .EqualValues (t , 4 , collab .UserID )
152
+ assert .EqualValues (t , 4 , collab .RepoID )
153
+
154
+ // Non-existing collaboration.
155
+ collab , err = repo_model .GetCollaboration (db .DefaultContext , repo .ID , 1 )
156
+ assert .NoError (t , err )
157
+ assert .Nil (t , collab )
158
+ }
0 commit comments