]>
Commit | Line | Data |
---|---|---|
11fdf7f2 TL |
1 | import { HttpClientTestingModule, HttpTestingController } from '@angular/common/http/testing'; |
2 | import { TestBed } from '@angular/core/testing'; | |
3 | ||
f67539c2 | 4 | import { configureTestBed, RgwHelper } from '~/testing/unit-test-helper'; |
11fdf7f2 TL |
5 | import { RgwBucketService } from './rgw-bucket.service'; |
6 | ||
7 | describe('RgwBucketService', () => { | |
8 | let service: RgwBucketService; | |
9 | let httpTesting: HttpTestingController; | |
10 | ||
11 | configureTestBed({ | |
12 | providers: [RgwBucketService], | |
13 | imports: [HttpClientTestingModule] | |
14 | }); | |
15 | ||
16 | beforeEach(() => { | |
f67539c2 TL |
17 | service = TestBed.inject(RgwBucketService); |
18 | httpTesting = TestBed.inject(HttpTestingController); | |
19 | RgwHelper.selectDaemon(); | |
11fdf7f2 TL |
20 | }); |
21 | ||
22 | afterEach(() => { | |
23 | httpTesting.verify(); | |
24 | }); | |
25 | ||
26 | it('should be created', () => { | |
27 | expect(service).toBeTruthy(); | |
28 | }); | |
29 | ||
f91f0fd5 TL |
30 | it('should call list', () => { |
31 | service.list().subscribe(); | |
f67539c2 | 32 | const req = httpTesting.expectOne(`api/rgw/bucket?${RgwHelper.DAEMON_QUERY_PARAM}&stats=true`); |
11fdf7f2 | 33 | expect(req.request.method).toBe('GET'); |
11fdf7f2 TL |
34 | }); |
35 | ||
36 | it('should call get', () => { | |
37 | service.get('foo').subscribe(); | |
f67539c2 | 38 | const req = httpTesting.expectOne(`api/rgw/bucket/foo?${RgwHelper.DAEMON_QUERY_PARAM}`); |
11fdf7f2 TL |
39 | expect(req.request.method).toBe('GET'); |
40 | }); | |
41 | ||
42 | it('should call create', () => { | |
9f95a23c | 43 | service |
b3b6e05e | 44 | .create('foo', 'bar', 'default', 'default-placement', false, 'COMPLIANCE', '5') |
9f95a23c TL |
45 | .subscribe(); |
46 | const req = httpTesting.expectOne( | |
b3b6e05e | 47 | `api/rgw/bucket?bucket=foo&uid=bar&zonegroup=default&placement_target=default-placement&lock_enabled=false&lock_mode=COMPLIANCE&lock_retention_period_days=5&${RgwHelper.DAEMON_QUERY_PARAM}` |
9f95a23c | 48 | ); |
11fdf7f2 TL |
49 | expect(req.request.method).toBe('POST'); |
50 | }); | |
51 | ||
52 | it('should call update', () => { | |
9f95a23c | 53 | service |
b3b6e05e | 54 | .update('foo', 'bar', 'baz', 'Enabled', 'Enabled', '1', '223344', 'GOVERNANCE', '10') |
9f95a23c TL |
55 | .subscribe(); |
56 | const req = httpTesting.expectOne( | |
b3b6e05e | 57 | `api/rgw/bucket/foo?${RgwHelper.DAEMON_QUERY_PARAM}&bucket_id=bar&uid=baz&versioning_state=Enabled&mfa_delete=Enabled&mfa_token_serial=1&mfa_token_pin=223344&lock_mode=GOVERNANCE&lock_retention_period_days=10` |
9f95a23c | 58 | ); |
11fdf7f2 TL |
59 | expect(req.request.method).toBe('PUT'); |
60 | }); | |
61 | ||
62 | it('should call delete, with purgeObjects = true', () => { | |
63 | service.delete('foo').subscribe(); | |
f67539c2 TL |
64 | const req = httpTesting.expectOne( |
65 | `api/rgw/bucket/foo?${RgwHelper.DAEMON_QUERY_PARAM}&purge_objects=true` | |
66 | ); | |
11fdf7f2 TL |
67 | expect(req.request.method).toBe('DELETE'); |
68 | }); | |
69 | ||
70 | it('should call delete, with purgeObjects = false', () => { | |
71 | service.delete('foo', false).subscribe(); | |
f67539c2 TL |
72 | const req = httpTesting.expectOne( |
73 | `api/rgw/bucket/foo?${RgwHelper.DAEMON_QUERY_PARAM}&purge_objects=false` | |
74 | ); | |
11fdf7f2 TL |
75 | expect(req.request.method).toBe('DELETE'); |
76 | }); | |
77 | ||
78 | it('should call exists', () => { | |
79 | let result; | |
80 | service.exists('foo').subscribe((resp) => { | |
81 | result = resp; | |
82 | }); | |
b3b6e05e | 83 | const req = httpTesting.expectOne(`api/rgw/bucket/foo?${RgwHelper.DAEMON_QUERY_PARAM}`); |
11fdf7f2 TL |
84 | expect(req.request.method).toBe('GET'); |
85 | req.flush(['foo', 'bar']); | |
86 | expect(result).toBe(true); | |
87 | }); | |
b3b6e05e TL |
88 | |
89 | it('should convert lock retention period to days', () => { | |
90 | expect(service.getLockDays({ lock_retention_period_years: 1000 })).toBe(365242); | |
91 | expect(service.getLockDays({ lock_retention_period_days: 5 })).toBe(5); | |
92 | expect(service.getLockDays({})).toBe(0); | |
93 | }); | |
11fdf7f2 | 94 | }); |