@@ -34,223 +34,111 @@ class BucketFilterTest {
3434 }
3535
3636 @Test
37- fun testBucketFilterWithLimitOnly () {
38- val filter = BucketFilter ().apply {
39- limit = 20
40- }
41- val params = filter.build()
37+ fun testBucketFilterIndividualParameters () {
38+ // Test limit only
39+ var filter = BucketFilter ().apply { limit = 20 }
40+ var params = filter.build()
4241 assertEquals(" 20" , params[" limit" ])
4342 assertNull(params[" offset" ])
44- assertNull(params[" search" ])
45- assertNull(params[" sortOrder" ])
46- assertNull(params[" sortColumn" ])
47- }
4843
49- @Test
50- fun testBucketFilterWithOffsetOnly () {
51- val filter = BucketFilter ().apply {
52- offset = 15
53- }
54- val params = filter.build()
55- assertNull(params[" limit" ])
44+ // Test offset only
45+ filter = BucketFilter ().apply { offset = 15 }
46+ params = filter.build()
5647 assertEquals(" 15" , params[" offset" ])
57- assertNull(params[" search" ])
58- assertNull(params[" sortOrder" ])
59- assertNull(params[" sortColumn" ])
60- }
61-
62- @Test
63- fun testBucketFilterWithSearchOnly () {
64- val filter = BucketFilter ().apply {
65- search = " my-bucket"
66- }
67- val params = filter.build()
6848 assertNull(params[" limit" ])
69- assertNull(params[" offset" ])
70- assertEquals(" my-bucket" , params[" search" ])
71- assertNull(params[" sortOrder" ])
72- assertNull(params[" sortColumn" ])
73- }
74-
75- @Test
76- fun testBucketFilterWithLimitAndOffset () {
77- val filter = BucketFilter ().apply {
78- limit = 25
79- offset = 50
80- }
81- val params = filter.build()
82- assertEquals(" 25" , params[" limit" ])
83- assertEquals(" 50" , params[" offset" ])
84- assertNull(params[" search" ])
85- assertNull(params[" sortOrder" ])
86- assertNull(params[" sortColumn" ])
87- }
88-
89- @Test
90- fun testBucketFilterSortByIdAscending () {
91- val filter = BucketFilter ().apply {
92- sortBy(BucketFilter .SortColumn .ID , SortOrder .ASC )
93- }
94- val params = filter.build()
95- assertEquals(" id" , params[" sortColumn" ])
96- assertEquals(" asc" , params[" sortOrder" ])
97- }
98-
99- @Test
100- fun testBucketFilterSortByIdDescending () {
101- val filter = BucketFilter ().apply {
102- sortBy(BucketFilter .SortColumn .ID , SortOrder .DESC )
103- }
104- val params = filter.build()
105- assertEquals(" id" , params[" sortColumn" ])
106- assertEquals(" desc" , params[" sortOrder" ])
107- }
108-
109- @Test
110- fun testBucketFilterSortByNameAscending () {
111- val filter = BucketFilter ().apply {
112- sortBy(BucketFilter .SortColumn .NAME , SortOrder .ASC )
113- }
114- val params = filter.build()
115- assertEquals(" name" , params[" sortColumn" ])
116- assertEquals(" asc" , params[" sortOrder" ])
117- }
118-
119- @Test
120- fun testBucketFilterSortByNameDescending () {
121- val filter = BucketFilter ().apply {
122- sortBy(BucketFilter .SortColumn .NAME , SortOrder .DESC )
123- }
124- val params = filter.build()
125- assertEquals(" name" , params[" sortColumn" ])
126- assertEquals(" desc" , params[" sortOrder" ])
127- }
128-
129- @Test
130- fun testBucketFilterSortByCreatedAtAscending () {
131- val filter = BucketFilter ().apply {
132- sortBy(BucketFilter .SortColumn .CREATED_AT , SortOrder .ASC )
133- }
134- val params = filter.build()
135- assertEquals(" created_at" , params[" sortColumn" ])
136- assertEquals(" asc" , params[" sortOrder" ])
137- }
13849
139- @Test
140- fun testBucketFilterSortByCreatedAtDescending () {
141- val filter = BucketFilter ().apply {
142- sortBy(BucketFilter .SortColumn .CREATED_AT , SortOrder .DESC )
143- }
144- val params = filter.build()
145- assertEquals(" created_at" , params[" sortColumn" ])
146- assertEquals(" desc" , params[" sortOrder" ])
50+ // Test search only
51+ filter = BucketFilter ().apply { search = " my-bucket" }
52+ params = filter.build()
53+ assertEquals(" my-bucket" , params[" search" ])
54+ assertNull(params[" limit" ])
14755 }
14856
14957 @Test
150- fun testBucketFilterSortByUpdatedAtAscending () {
151- val filter = BucketFilter (). apply {
152- sortBy( BucketFilter . SortColumn . UPDATED_AT , SortOrder . ASC )
153- }
154- val params = filter.build()
155- assertEquals( " updated_at " , params[ " sortColumn " ])
156- assertEquals( " asc " , params[ " sortOrder " ])
157- }
58+ fun testBucketFilterSortColumns () {
59+ // Test all sort columns with both orders
60+ val columns = listOf (
61+ BucketFilter . SortColumn . ID to " id " ,
62+ BucketFilter . SortColumn . NAME to " name " ,
63+ BucketFilter . SortColumn . CREATED_AT to " created_at " ,
64+ BucketFilter . SortColumn . UPDATED_AT to " updated_at "
65+ )
15866
159- @Test
160- fun testBucketFilterSortByUpdatedAtDescending () {
161- val filter = BucketFilter ().apply {
162- sortBy(BucketFilter .SortColumn .UPDATED_AT , SortOrder .DESC )
163- }
164- val params = filter.build()
165- assertEquals(" updated_at" , params[" sortColumn" ])
166- assertEquals(" desc" , params[" sortOrder" ])
167- }
67+ for ((column, expectedName) in columns) {
68+ // Test ascending
69+ var filter = BucketFilter ().apply { sortBy(column, SortOrder .ASC ) }
70+ var params = filter.build()
71+ assertEquals(expectedName, params[" sortColumn" ])
72+ assertEquals(" asc" , params[" sortOrder" ])
16873
169- @Test
170- fun testBucketFilterSearchWithSpecialCharacters () {
171- val filter = BucketFilter ().apply {
172- search = " test-bucket_123"
74+ // Test descending
75+ filter = BucketFilter ().apply { sortBy(column, SortOrder .DESC ) }
76+ params = filter.build()
77+ assertEquals(expectedName, params[" sortColumn" ])
78+ assertEquals(" desc" , params[" sortOrder" ])
17379 }
174- val params = filter.build()
175- assertEquals(" test-bucket_123" , params[" search" ])
17680 }
17781
17882 @Test
179- fun testBucketFilterWithZeroLimit () {
180- val filter = BucketFilter ().apply {
83+ fun testBucketFilterEdgeCases () {
84+ // Zero values
85+ var filter = BucketFilter ().apply {
18186 limit = 0
182- }
183- val params = filter.build()
184- assertEquals(" 0" , params[" limit" ])
185- }
186-
187- @Test
188- fun testBucketFilterWithZeroOffset () {
189- val filter = BucketFilter ().apply {
19087 offset = 0
19188 }
192- val params = filter.build()
89+ var params = filter.build()
90+ assertEquals(" 0" , params[" limit" ])
19391 assertEquals(" 0" , params[" offset" ])
194- }
19592
196- @Test
197- fun testBucketFilterComplexScenario () {
198- val filter = BucketFilter ().apply {
199- limit = 50
200- offset = 100
201- search = " production"
202- sortBy(BucketFilter .SortColumn .CREATED_AT , SortOrder .DESC )
203- }
204- val params = filter.build()
205- assertEquals(" 50" , params[" limit" ])
206- assertEquals(" 100" , params[" offset" ])
207- assertEquals(" production" , params[" search" ])
208- assertEquals(" created_at" , params[" sortColumn" ])
209- assertEquals(" desc" , params[" sortOrder" ])
210- }
93+ // Empty search string
94+ filter = BucketFilter ().apply { search = " " }
95+ params = filter.build()
96+ assertEquals(" " , params[" search" ])
21197
212- @Test
213- fun testBucketFilterWithLargeNumbers () {
214- val filter = BucketFilter ().apply {
98+ // Special characters in search
99+ filter = BucketFilter ().apply { search = " test-bucket_123" }
100+ params = filter.build()
101+ assertEquals(" test-bucket_123" , params[" search" ])
102+
103+ // Large numbers
104+ filter = BucketFilter ().apply {
215105 limit = 1000
216106 offset = 5000
217107 }
218- val params = filter.build()
108+ params = filter.build()
219109 assertEquals(" 1000" , params[" limit" ])
220110 assertEquals(" 5000" , params[" offset" ])
221111 }
222112
223113 @Test
224- fun testBucketFilterSearchWithEmptyString () {
225- val filter = BucketFilter ().apply {
226- search = " "
114+ fun testBucketFilterCombinations () {
115+ // Limit and offset
116+ var filter = BucketFilter ().apply {
117+ limit = 25
118+ offset = 50
227119 }
228- val params = filter.build()
229- assertEquals(" " , params[" search" ])
230- }
120+ var params = filter.build()
121+ assertEquals(" 25" , params[" limit" ])
122+ assertEquals(" 50" , params[" offset" ])
123+ assertNull(params[" search" ])
231124
232- @Test
233- fun testBucketFilterWithSearchAndSort () {
234- val filter = BucketFilter ().apply {
125+ // Search and sort
126+ filter = BucketFilter ().apply {
235127 search = " images"
236128 sortBy(BucketFilter .SortColumn .UPDATED_AT , SortOrder .ASC )
237129 }
238- val params = filter.build()
130+ params = filter.build()
239131 assertEquals(" images" , params[" search" ])
240132 assertEquals(" updated_at" , params[" sortColumn" ])
241133 assertEquals(" asc" , params[" sortOrder" ])
242- assertNull(params[" limit" ])
243- assertNull(params[" offset" ])
244- }
245134
246- @Test
247- fun testBucketFilterPaginationScenario () {
248- val filter = BucketFilter ().apply {
135+ // Pagination with sort
136+ filter = BucketFilter ().apply {
249137 limit = 10
250138 offset = 30
251139 sortBy(BucketFilter .SortColumn .NAME , SortOrder .ASC )
252140 }
253- val params = filter.build()
141+ params = filter.build()
254142 assertEquals(" 10" , params[" limit" ])
255143 assertEquals(" 30" , params[" offset" ])
256144 assertEquals(" name" , params[" sortColumn" ])
0 commit comments