1---
2- name: create source (check mode)
3  win_chocolatey_source:
4    name: chocolatey
5    source: https://chocolatey.org/api/v2/
6    state: present
7  register: create_check
8  check_mode: yes
9
10- name: check if source exists (check mode)
11  choco_source:
12  register: create_actual_check
13
14- name: assert create source (check mode)
15  assert:
16    that:
17    - create_check is changed
18    - create_actual_check.sources == []
19
20- name: create source
21  win_chocolatey_source:
22    name: chocolatey
23    source: https://chocolatey.org/api/v2/
24    state: present
25  register: create
26
27- name: check if source exists
28  choco_source:
29  register: create_actual
30
31- name: assert create source
32  assert:
33    that:
34    - create is changed
35    - create_actual.sources|length == 1
36    - create_actual.sources[0].name == 'chocolatey'
37    - create_actual.sources[0].source == 'https://chocolatey.org/api/v2/'
38    - create_actual.sources[0].disabled == False
39    - create_actual.sources[0].source_username == None
40    - create_actual.sources[0].priority == 0
41    - create_actual.sources[0].certificate == None
42    - create_actual.sources[0].bypass_proxy == False
43    - create_actual.sources[0].allow_self_service == False
44    - create_actual.sources[0].admin_only == False
45
46- name: create source (idempotent)
47  win_chocolatey_source:
48    name: chocolatey
49    source: https://chocolatey.org/api/v2/
50    state: present
51  register: create_again
52
53- name: assert create source (idempotent)
54  assert:
55    that:
56    - not create_again is changed
57
58- name: remove source (check mode)
59  win_chocolatey_source:
60    name: chocolatey
61    state: absent
62  register: remove_check
63  check_mode: yes
64
65- name: check if source is removed (check mode)
66  choco_source:
67  register: remove_actual_check
68
69- name: assert remove source (check mode)
70  assert:
71    that:
72    - remove_check is changed
73    - remove_actual_check.sources == create_actual.sources
74
75- name: remove source
76  win_chocolatey_source:
77    name: chocolatey
78    state: absent
79  register: remove
80
81- name: check if source is removed
82  choco_source:
83  register: remove_actual
84
85- name: assert remove source
86  assert:
87    that:
88    - remove is changed
89    - remove_actual.sources == []
90
91- name: remove source (idempotent)
92  win_chocolatey_source:
93    name: chocolatey
94    state: absent
95  register: remove_again
96
97- name: assert remove source (idempotent)
98  assert:
99    that:
100    - not remove_again is changed
101
102- name: create a disabled service (check mode)
103  win_chocolatey_source:
104    name: '{{ test_chocolatey_name }}'
105    source: C:\chocolatey repos
106    source_username: username
107    source_password: password
108    certificate: C:\cert.pfx
109    certificate_password: password
110    bypass_proxy: yes
111    priority: 1
112    state: disabled
113  register: create_special_check
114  check_mode: yes
115
116- name: check if source is created (check mode)
117  choco_source:
118  register: create_special_actual_check
119
120- name: assert create a disabled service (check mode)
121  assert:
122    that:
123    - create_special_check is changed
124    - create_special_actual_check.sources == []
125
126- name: create a disabled service
127  win_chocolatey_source:
128    name: '{{ test_chocolatey_name }}'
129    source: C:\chocolatey repos
130    source_username: username
131    source_password: password
132    certificate: C:\cert.pfx
133    certificate_password: password
134    bypass_proxy: yes
135    priority: 1
136    state: disabled
137  register: create_special
138
139- name: check if source is created
140  choco_source:
141  register: create_special_actual
142
143- name: assert create a disabled service
144  assert:
145    that:
146    - create_special is changed
147    - create_special_actual.sources|length == 1
148    - create_special_actual.sources[0].name == test_chocolatey_name
149    - create_special_actual.sources[0].source == 'C:\\chocolatey repos'
150    - create_special_actual.sources[0].disabled == True
151    - create_special_actual.sources[0].source_username == 'username'
152    - create_special_actual.sources[0].priority == 1
153    - create_special_actual.sources[0].certificate == 'C:\\cert.pfx'
154    - create_special_actual.sources[0].bypass_proxy == True
155    - create_special_actual.sources[0].allow_self_service == False
156    - create_special_actual.sources[0].admin_only == False
157
158- name: create a disabled service pass always update
159  win_chocolatey_source:
160    name: '{{ test_chocolatey_name }}'
161    source: C:\chocolatey repos
162    source_username: username
163    source_password: password
164    certificate: C:\cert.pfx
165    certificate_password: password
166    bypass_proxy: yes
167    priority: 1
168    state: disabled
169  register: create_special_pass_always
170
171- name: assert create a disabled service pass always update
172  assert:
173    that:
174    - create_special_pass_always is changed
175
176- name: create a disabled service (idempotent)
177  win_chocolatey_source:
178    name: '{{ test_chocolatey_name }}'
179    source: C:\chocolatey repos
180    source_username: username
181    source_password: password
182    certificate: C:\cert.pfx
183    certificate_password: password
184    bypass_proxy: yes
185    priority: 1
186    state: disabled
187    update_password: on_create
188  register: create_special_again
189
190- name: assert create a disabled service (idempotent)
191  assert:
192    that:
193    - not create_special_again is changed
194
195- name: edit an existing source (check mode)
196  win_chocolatey_source:
197    name: '{{ test_chocolatey_name }}'
198    source: C:\chocolatey repos2
199    source_username: username2
200    source_password: password2
201    certificate: C:\cert2.pfx
202    priority: '5'
203    state: present
204    update_password: on_create
205    admin_only: yes
206    allow_self_service: yes
207  register: modify_source_check
208  check_mode: yes
209
210- name: check if source is changed (check mode)
211  choco_source:
212  register: modify_source_check_actual
213
214- name: assert edit an existing source (check mode)
215  assert:
216    that:
217    - modify_source_check is changed
218    - modify_source_check_actual.sources == create_special_actual.sources
219
220- name: edit an existing source
221  win_chocolatey_source:
222    name: '{{ test_chocolatey_name }}'
223    source: C:\chocolatey repos2
224    source_username: username2
225    source_password: password2
226    certificate: C:\cert2.pfx
227    priority: '5'
228    state: present
229    update_password: on_create
230    admin_only: yes
231    allow_self_service: yes
232  register: modify_source
233
234- name: check if source is changed
235  choco_source:
236  register: modify_source_actual
237
238- name: assert edit an existing source
239  assert:
240    that:
241    - modify_source is changed
242    - modify_source_actual.sources[0].name == test_chocolatey_name
243    - modify_source_actual.sources[0].source == 'C:\\chocolatey repos2'
244    - modify_source_actual.sources[0].disabled == False
245    - modify_source_actual.sources[0].source_username == 'username2'
246    - modify_source_actual.sources[0].priority == 5
247    - modify_source_actual.sources[0].certificate == 'C:\\cert2.pfx'
248    - modify_source_actual.sources[0].bypass_proxy == False
249    - modify_source_actual.sources[0].allow_self_service == True
250    - modify_source_actual.sources[0].admin_only == True
251
252- name: edit an existing source (idempotent)
253  win_chocolatey_source:
254    name: '{{ test_chocolatey_name }}'
255    source: C:\chocolatey repos2
256    source_username: username2
257    source_password: password2
258    certificate: C:\cert2.pfx
259    priority: '5'
260    state: present
261    update_password: on_create
262    admin_only: yes
263    allow_self_service: yes
264  register: modify_source_again
265
266- name: assert edit an existing source (idempotent)
267  assert:
268    that:
269    - not modify_source_again is changed
270
271- name: disable source (check mode)
272  win_chocolatey_source:
273    name: '{{ test_chocolatey_name }}'
274    state: disabled
275  register: disable_source_check
276  check_mode: True
277
278- name: get result of disable source (check mode)
279  choco_source:
280  register: disable_source_actual_check
281
282- name: assert disable source (check mode)
283  assert:
284    that:
285    - disable_source_check is changed
286    - disable_source_actual_check.sources == modify_source_actual.sources
287
288- name: disable source
289  win_chocolatey_source:
290    name: '{{ test_chocolatey_name }}'
291    state: disabled
292  register: disable_source
293
294- name: get result of disable source
295  choco_source:
296  register: disable_source_actual
297
298- name: assert disable source
299  assert:
300    that:
301    - disable_source is changed
302    - disable_source_actual.sources[0].name == test_chocolatey_name
303    - disable_source_actual.sources[0].source == 'C:\\chocolatey repos2'
304    - disable_source_actual.sources[0].disabled == True
305    - disable_source_actual.sources[0].source_username == 'username2'
306    - disable_source_actual.sources[0].priority == 5
307    - disable_source_actual.sources[0].certificate == 'C:\\cert2.pfx'
308    - disable_source_actual.sources[0].bypass_proxy == False
309    - disable_source_actual.sources[0].allow_self_service == True
310    - disable_source_actual.sources[0].admin_only == True
311
312- name: disable source (idempotent)
313  win_chocolatey_source:
314    name: '{{ test_chocolatey_name }}'
315    state: disabled
316  register: disable_source_again
317
318- name: assert disable source (idempotent)
319  assert:
320    that:
321    - not disable_source_again is changed
322
323- name: enable source (check mode)
324  win_chocolatey_source:
325    name: '{{ test_chocolatey_name }}'
326    state: present
327  register: enable_source_check
328  check_mode: True
329
330- name: get result of enable source (check mode)
331  choco_source:
332  register: enable_source_actual_check
333
334- name: assert enable source (check mode)
335  assert:
336    that:
337    - enable_source_check is changed
338    - enable_source_actual_check.sources == disable_source_actual.sources
339
340- name: enable source
341  win_chocolatey_source:
342    name: '{{ test_chocolatey_name }}'
343    state: present
344  register: enable_source
345
346- name: get result of enable source
347  choco_source:
348  register: enable_source_actual
349
350- name: assert enable source
351  assert:
352    that:
353    - enable_source is changed
354    - enable_source_actual.sources[0].name == test_chocolatey_name
355    - enable_source_actual.sources[0].source == 'C:\\chocolatey repos2'
356    - enable_source_actual.sources[0].disabled == False
357    - enable_source_actual.sources[0].source_username == 'username2'
358    - enable_source_actual.sources[0].priority == 5
359    - enable_source_actual.sources[0].certificate == 'C:\\cert2.pfx'
360    - enable_source_actual.sources[0].bypass_proxy == False
361    - enable_source_actual.sources[0].allow_self_service == True
362    - enable_source_actual.sources[0].admin_only == True
363
364- name: enable source (idempotent)
365  win_chocolatey_source:
366    name: '{{ test_chocolatey_name }}'
367    state: present
368  register: enable_source_again
369
370- name: assert enable source (idempotent)
371  assert:
372    that:
373    - not enable_source_again is changed
374