defoker 0.0.5 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +35 -0
- data/bin/defoker +17 -6
- data/lib/date_base_name.rb +6 -6
- data/lib/defoker/version.rb +1 -1
- data/lib/defoker_core.rb +43 -30
- data/lib/defoker_dsl.rb +2 -1
- data/lib/defoker_dsl_model.rb +4 -2
- data/spec/date_base_name_spec.rb +482 -482
- data/spec/defoker_core_spec.rb +21 -33
- metadata +2 -2
data/spec/date_base_name_spec.rb
CHANGED
@@ -1,482 +1,482 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
require 'spec_helper'
|
3
|
-
require 'date_base_name'
|
4
|
-
require 'date'
|
5
|
-
|
6
|
-
describe Defoker::DateBaseName do
|
7
|
-
context :to_yyyymmdd do
|
8
|
-
cases = [
|
9
|
-
{
|
10
|
-
case_no: 1,
|
11
|
-
case_title: 'no addition, 1digit month, 1digit day case',
|
12
|
-
date: Date.new(2014, 9, 9),
|
13
|
-
additional: '',
|
14
|
-
expected: '20140909'
|
15
|
-
},
|
16
|
-
{
|
17
|
-
case_no: 2,
|
18
|
-
case_title: 'no addition, 2digit month, 1digit day case',
|
19
|
-
date: Date.new(2014, 12, 9),
|
20
|
-
additional: '',
|
21
|
-
expected: '20141209'
|
22
|
-
},
|
23
|
-
{
|
24
|
-
case_no: 3,
|
25
|
-
case_title: 'no addition, 1digit month, 2digit day case',
|
26
|
-
date: Date.new(2014, 9, 12),
|
27
|
-
additional: '',
|
28
|
-
expected: '20140912'
|
29
|
-
},
|
30
|
-
{
|
31
|
-
case_no: 4,
|
32
|
-
case_title: 'with addition case',
|
33
|
-
date: Date.new(2014, 9, 12),
|
34
|
-
additional: 'hoge',
|
35
|
-
expected: '20140912_hoge'
|
36
|
-
},
|
37
|
-
{
|
38
|
-
case_no: 5,
|
39
|
-
case_title: 'omit addition case',
|
40
|
-
date: Date.new(2014, 9, 12),
|
41
|
-
additional: nil,
|
42
|
-
expected: '20140912'
|
43
|
-
},
|
44
|
-
{
|
45
|
-
case_no: 6,
|
46
|
-
case_title: 'invalid date case',
|
47
|
-
date: '20140912',
|
48
|
-
expect_error: true
|
49
|
-
},
|
50
|
-
{
|
51
|
-
case_no: 7,
|
52
|
-
case_title: 'datetime case',
|
53
|
-
date: DateTime.new(2014, 9, 12),
|
54
|
-
additional: nil,
|
55
|
-
expected: '20140912'
|
56
|
-
}
|
57
|
-
]
|
58
|
-
|
59
|
-
cases.each do |c|
|
60
|
-
it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
|
61
|
-
begin
|
62
|
-
case_before c
|
63
|
-
|
64
|
-
# -- given --
|
65
|
-
|
66
|
-
|
67
|
-
# -- when --
|
68
|
-
actual =
|
69
|
-
if c[:additional]
|
70
|
-
|
71
|
-
else
|
72
|
-
if c[:expect_error]
|
73
|
-
expect {
|
74
|
-
next
|
75
|
-
end
|
76
|
-
|
77
|
-
end
|
78
|
-
|
79
|
-
# -- then --
|
80
|
-
expect(actual).to eq(c[:expected])
|
81
|
-
ensure
|
82
|
-
case_after c
|
83
|
-
end
|
84
|
-
end
|
85
|
-
|
86
|
-
def case_before(c)
|
87
|
-
# implement each case before
|
88
|
-
end
|
89
|
-
|
90
|
-
def case_after(c)
|
91
|
-
# implement each case after
|
92
|
-
end
|
93
|
-
end
|
94
|
-
end
|
95
|
-
|
96
|
-
context :to_yyyymmdd_list do
|
97
|
-
cases = [
|
98
|
-
{
|
99
|
-
case_no: 1,
|
100
|
-
case_title: 'no addition 4days case',
|
101
|
-
day: Date.new(2014, 9, 9),
|
102
|
-
count: 4,
|
103
|
-
expected: %w(20140909 20140910 20140911 20140912)
|
104
|
-
},
|
105
|
-
{
|
106
|
-
case_no: 2,
|
107
|
-
case_title: 'no addition 1day case',
|
108
|
-
day: Date.new(2014, 9, 12),
|
109
|
-
count: 1,
|
110
|
-
expected: ['20140912']
|
111
|
-
},
|
112
|
-
{
|
113
|
-
case_no: 3,
|
114
|
-
case_title: 'with addition 4days case',
|
115
|
-
day: Date.new(2014, 9, 9),
|
116
|
-
count: 4,
|
117
|
-
additional: 'hoge',
|
118
|
-
expected: %w(20140909_hoge 20140910_hoge 20140911_hoge 20140912_hoge)
|
119
|
-
},
|
120
|
-
{
|
121
|
-
case_no: 4,
|
122
|
-
case_title: 'invalid date case',
|
123
|
-
day: '20140912',
|
124
|
-
expect_error: true
|
125
|
-
}
|
126
|
-
]
|
127
|
-
|
128
|
-
cases.each do |c|
|
129
|
-
it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
|
130
|
-
begin
|
131
|
-
case_before c
|
132
|
-
|
133
|
-
# -- given --
|
134
|
-
|
135
|
-
|
136
|
-
# -- when --
|
137
|
-
actual =
|
138
|
-
if c[:count] && c[:additional]
|
139
|
-
|
140
|
-
elsif c[:count]
|
141
|
-
|
142
|
-
elsif c[:additional]
|
143
|
-
|
144
|
-
else
|
145
|
-
if c[:expect_error]
|
146
|
-
expect {
|
147
|
-
next
|
148
|
-
end
|
149
|
-
|
150
|
-
end
|
151
|
-
|
152
|
-
# -- then --
|
153
|
-
expect(actual).to eq(c[:expected])
|
154
|
-
ensure
|
155
|
-
case_after c
|
156
|
-
end
|
157
|
-
end
|
158
|
-
|
159
|
-
def case_before(c)
|
160
|
-
# implement each case before
|
161
|
-
end
|
162
|
-
|
163
|
-
def case_after(c)
|
164
|
-
# implement each case after
|
165
|
-
end
|
166
|
-
end
|
167
|
-
end
|
168
|
-
|
169
|
-
context :to_yyyymm do
|
170
|
-
cases = [
|
171
|
-
{
|
172
|
-
case_no: 1,
|
173
|
-
case_title: 'no addition, 1digit month',
|
174
|
-
month: Date.new(2014, 9),
|
175
|
-
additional: '',
|
176
|
-
expected: '201409'
|
177
|
-
},
|
178
|
-
{
|
179
|
-
case_no: 2,
|
180
|
-
case_title: 'no addition, 2digit month',
|
181
|
-
month: Date.new(2014, 12),
|
182
|
-
additional: '',
|
183
|
-
expected: '201412'
|
184
|
-
},
|
185
|
-
{
|
186
|
-
case_no: 4,
|
187
|
-
case_title: 'with addition case',
|
188
|
-
month: Date.new(2014, 9),
|
189
|
-
additional: 'hoge',
|
190
|
-
expected: '201409_hoge'
|
191
|
-
},
|
192
|
-
{
|
193
|
-
case_no: 5,
|
194
|
-
case_title: 'omit addition case',
|
195
|
-
month: Date.new(2014, 9),
|
196
|
-
additional: nil,
|
197
|
-
expected: '201409'
|
198
|
-
},
|
199
|
-
{
|
200
|
-
case_no: 6,
|
201
|
-
case_title: 'invalid month case',
|
202
|
-
month: '201409',
|
203
|
-
expect_error: true
|
204
|
-
},
|
205
|
-
{
|
206
|
-
case_no: 7,
|
207
|
-
case_title: 'datetime case',
|
208
|
-
month: DateTime.new(2014, 9),
|
209
|
-
additional: nil,
|
210
|
-
expected: '201409'
|
211
|
-
}
|
212
|
-
]
|
213
|
-
|
214
|
-
cases.each do |c|
|
215
|
-
it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
|
216
|
-
begin
|
217
|
-
case_before c
|
218
|
-
|
219
|
-
# -- given --
|
220
|
-
|
221
|
-
|
222
|
-
# -- when --
|
223
|
-
actual =
|
224
|
-
if c[:additional]
|
225
|
-
|
226
|
-
else
|
227
|
-
if c[:expect_error]
|
228
|
-
expect {
|
229
|
-
next
|
230
|
-
end
|
231
|
-
|
232
|
-
end
|
233
|
-
|
234
|
-
# -- then --
|
235
|
-
expect(actual).to eq(c[:expected])
|
236
|
-
ensure
|
237
|
-
case_after c
|
238
|
-
end
|
239
|
-
end
|
240
|
-
|
241
|
-
def case_before(c)
|
242
|
-
# implement each case before
|
243
|
-
end
|
244
|
-
|
245
|
-
def case_after(c)
|
246
|
-
# implement each case after
|
247
|
-
end
|
248
|
-
end
|
249
|
-
end
|
250
|
-
|
251
|
-
context :to_yyyymm_list do
|
252
|
-
cases = [
|
253
|
-
{
|
254
|
-
case_no: 1,
|
255
|
-
case_title: 'no addition 4months case',
|
256
|
-
month: Date.new(2014, 10),
|
257
|
-
count: 4,
|
258
|
-
expected: %w(201410 201411 201412 201501)
|
259
|
-
},
|
260
|
-
{
|
261
|
-
case_no: 2,
|
262
|
-
case_title: 'no addition 1month case',
|
263
|
-
month: Date.new(2014, 9),
|
264
|
-
count: 1,
|
265
|
-
expected: ['201409']
|
266
|
-
},
|
267
|
-
{
|
268
|
-
case_no: 3,
|
269
|
-
case_title: 'with addition 4months case',
|
270
|
-
month: Date.new(2014, 10),
|
271
|
-
count: 4,
|
272
|
-
additional: 'hoge',
|
273
|
-
expected: %w(201410_hoge 201411_hoge 201412_hoge 201501_hoge)
|
274
|
-
},
|
275
|
-
{
|
276
|
-
case_no: 4,
|
277
|
-
case_title: 'no addition, no count, 3months case',
|
278
|
-
month: Date.new(2014, 10),
|
279
|
-
expected: %w(201410 201411 201412)
|
280
|
-
},
|
281
|
-
{
|
282
|
-
case_no: 5,
|
283
|
-
case_title: 'invalid month case',
|
284
|
-
month: '201409',
|
285
|
-
expect_error: true
|
286
|
-
}
|
287
|
-
]
|
288
|
-
|
289
|
-
cases.each do |c|
|
290
|
-
it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
|
291
|
-
begin
|
292
|
-
case_before c
|
293
|
-
|
294
|
-
# -- given --
|
295
|
-
|
296
|
-
|
297
|
-
# -- when --
|
298
|
-
actual =
|
299
|
-
if c[:count] && c[:additional]
|
300
|
-
|
301
|
-
elsif c[:count]
|
302
|
-
|
303
|
-
elsif c[:additional]
|
304
|
-
|
305
|
-
else
|
306
|
-
if c[:expect_error]
|
307
|
-
expect {
|
308
|
-
next
|
309
|
-
end
|
310
|
-
|
311
|
-
end
|
312
|
-
|
313
|
-
# -- then --
|
314
|
-
expect(actual).to eq(c[:expected])
|
315
|
-
ensure
|
316
|
-
case_after c
|
317
|
-
end
|
318
|
-
end
|
319
|
-
|
320
|
-
def case_before(c)
|
321
|
-
# implement each case before
|
322
|
-
end
|
323
|
-
|
324
|
-
def case_after(c)
|
325
|
-
# implement each case after
|
326
|
-
end
|
327
|
-
end
|
328
|
-
end
|
329
|
-
|
330
|
-
context :to_yyyy do
|
331
|
-
cases = [
|
332
|
-
{
|
333
|
-
case_no: 1,
|
334
|
-
case_title: 'no addition case',
|
335
|
-
year: Date.new(2014),
|
336
|
-
additional: '',
|
337
|
-
expected: '2014'
|
338
|
-
},
|
339
|
-
{
|
340
|
-
case_no: 2,
|
341
|
-
case_title: 'with addition case',
|
342
|
-
year: Date.new(2014),
|
343
|
-
additional: 'hoge',
|
344
|
-
expected: '2014_hoge'
|
345
|
-
},
|
346
|
-
{
|
347
|
-
case_no: 3,
|
348
|
-
case_title: 'omit addition case',
|
349
|
-
year: Date.new(2014),
|
350
|
-
expected: '2014'
|
351
|
-
},
|
352
|
-
{
|
353
|
-
case_no: 4,
|
354
|
-
case_title: 'invalid year case',
|
355
|
-
year: '2014',
|
356
|
-
expect_error: true
|
357
|
-
},
|
358
|
-
{
|
359
|
-
case_no: 5,
|
360
|
-
case_title: 'datetime case',
|
361
|
-
year: DateTime.new(2014),
|
362
|
-
additional: nil,
|
363
|
-
expected: '2014'
|
364
|
-
}
|
365
|
-
]
|
366
|
-
|
367
|
-
cases.each do |c|
|
368
|
-
it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
|
369
|
-
begin
|
370
|
-
case_before c
|
371
|
-
|
372
|
-
# -- given --
|
373
|
-
|
374
|
-
|
375
|
-
# -- when --
|
376
|
-
actual =
|
377
|
-
if c[:additional]
|
378
|
-
|
379
|
-
else
|
380
|
-
if c[:expect_error]
|
381
|
-
expect {
|
382
|
-
next
|
383
|
-
end
|
384
|
-
|
385
|
-
end
|
386
|
-
|
387
|
-
# -- then --
|
388
|
-
expect(actual).to eq(c[:expected])
|
389
|
-
ensure
|
390
|
-
case_after c
|
391
|
-
end
|
392
|
-
end
|
393
|
-
|
394
|
-
def case_before(c)
|
395
|
-
# implement each case before
|
396
|
-
end
|
397
|
-
|
398
|
-
def case_after(c)
|
399
|
-
# implement each case after
|
400
|
-
end
|
401
|
-
end
|
402
|
-
end
|
403
|
-
|
404
|
-
context :to_yyyy_list do
|
405
|
-
cases = [
|
406
|
-
{
|
407
|
-
case_no: 1,
|
408
|
-
case_title: 'no addition 4years case',
|
409
|
-
year: Date.new(2014),
|
410
|
-
count: 4,
|
411
|
-
expected: %w(2014 2015 2016 2017)
|
412
|
-
},
|
413
|
-
{
|
414
|
-
case_no: 2,
|
415
|
-
case_title: 'no addition 1year case',
|
416
|
-
year: Date.new(2014),
|
417
|
-
count: 1,
|
418
|
-
expected: ['2014']
|
419
|
-
},
|
420
|
-
{
|
421
|
-
case_no: 3,
|
422
|
-
case_title: 'with addition 4years case',
|
423
|
-
year: Date.new(2014, 10),
|
424
|
-
count: 4,
|
425
|
-
additional: 'hoge',
|
426
|
-
expected: %w(2014_hoge 2015_hoge 2016_hoge 2017_hoge)
|
427
|
-
},
|
428
|
-
{
|
429
|
-
case_no: 4,
|
430
|
-
case_title: 'no addition, no count, 3years case',
|
431
|
-
year: Date.new(2014),
|
432
|
-
expected: %w(2014 2015 2016)
|
433
|
-
},
|
434
|
-
{
|
435
|
-
case_no: 5,
|
436
|
-
case_title: 'invalid year case',
|
437
|
-
from_or_range: '2014',
|
438
|
-
expect_error: true
|
439
|
-
}
|
440
|
-
]
|
441
|
-
|
442
|
-
cases.each do |c|
|
443
|
-
it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
|
444
|
-
begin
|
445
|
-
case_before c
|
446
|
-
|
447
|
-
# -- given --
|
448
|
-
|
449
|
-
|
450
|
-
# -- when --
|
451
|
-
actual =
|
452
|
-
if c[:count] && c[:additional]
|
453
|
-
|
454
|
-
elsif c[:count]
|
455
|
-
|
456
|
-
elsif c[:additional]
|
457
|
-
|
458
|
-
else
|
459
|
-
if c[:expect_error]
|
460
|
-
expect {
|
461
|
-
next
|
462
|
-
end
|
463
|
-
|
464
|
-
end
|
465
|
-
|
466
|
-
# -- then --
|
467
|
-
expect(actual).to eq(c[:expected])
|
468
|
-
ensure
|
469
|
-
case_after c
|
470
|
-
end
|
471
|
-
end
|
472
|
-
|
473
|
-
def case_before(c)
|
474
|
-
# implement each case before
|
475
|
-
end
|
476
|
-
|
477
|
-
def case_after(c)
|
478
|
-
# implement each case after
|
479
|
-
end
|
480
|
-
end
|
481
|
-
end
|
482
|
-
end
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
require 'date_base_name'
|
4
|
+
require 'date'
|
5
|
+
|
6
|
+
describe Defoker::DateBaseName do
|
7
|
+
context :to_yyyymmdd do
|
8
|
+
cases = [
|
9
|
+
{
|
10
|
+
case_no: 1,
|
11
|
+
case_title: 'no addition, 1digit month, 1digit day case',
|
12
|
+
date: Date.new(2014, 9, 9),
|
13
|
+
additional: '',
|
14
|
+
expected: '20140909'
|
15
|
+
},
|
16
|
+
{
|
17
|
+
case_no: 2,
|
18
|
+
case_title: 'no addition, 2digit month, 1digit day case',
|
19
|
+
date: Date.new(2014, 12, 9),
|
20
|
+
additional: '',
|
21
|
+
expected: '20141209'
|
22
|
+
},
|
23
|
+
{
|
24
|
+
case_no: 3,
|
25
|
+
case_title: 'no addition, 1digit month, 2digit day case',
|
26
|
+
date: Date.new(2014, 9, 12),
|
27
|
+
additional: '',
|
28
|
+
expected: '20140912'
|
29
|
+
},
|
30
|
+
{
|
31
|
+
case_no: 4,
|
32
|
+
case_title: 'with addition case',
|
33
|
+
date: Date.new(2014, 9, 12),
|
34
|
+
additional: 'hoge',
|
35
|
+
expected: '20140912_hoge'
|
36
|
+
},
|
37
|
+
{
|
38
|
+
case_no: 5,
|
39
|
+
case_title: 'omit addition case',
|
40
|
+
date: Date.new(2014, 9, 12),
|
41
|
+
additional: nil,
|
42
|
+
expected: '20140912'
|
43
|
+
},
|
44
|
+
{
|
45
|
+
case_no: 6,
|
46
|
+
case_title: 'invalid date case',
|
47
|
+
date: '20140912',
|
48
|
+
expect_error: true
|
49
|
+
},
|
50
|
+
{
|
51
|
+
case_no: 7,
|
52
|
+
case_title: 'datetime case',
|
53
|
+
date: DateTime.new(2014, 9, 12),
|
54
|
+
additional: nil,
|
55
|
+
expected: '20140912'
|
56
|
+
}
|
57
|
+
]
|
58
|
+
|
59
|
+
cases.each do |c|
|
60
|
+
it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
|
61
|
+
begin
|
62
|
+
case_before c
|
63
|
+
|
64
|
+
# -- given --
|
65
|
+
# nothing
|
66
|
+
|
67
|
+
# -- when --
|
68
|
+
actual =
|
69
|
+
if c[:additional]
|
70
|
+
Defoker::DateBaseName.to_yyyymmdd(c[:date], additional: c[:additional])
|
71
|
+
else
|
72
|
+
if c[:expect_error]
|
73
|
+
expect { Defoker::DateBaseName.to_yyyymmdd(c[:date]) }.to raise_error(ArgumentError)
|
74
|
+
next
|
75
|
+
end
|
76
|
+
Defoker::DateBaseName.to_yyyymmdd(c[:date])
|
77
|
+
end
|
78
|
+
|
79
|
+
# -- then --
|
80
|
+
expect(actual).to eq(c[:expected])
|
81
|
+
ensure
|
82
|
+
case_after c
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
def case_before(c)
|
87
|
+
# implement each case before
|
88
|
+
end
|
89
|
+
|
90
|
+
def case_after(c)
|
91
|
+
# implement each case after
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
95
|
+
|
96
|
+
context :to_yyyymmdd_list do
|
97
|
+
cases = [
|
98
|
+
{
|
99
|
+
case_no: 1,
|
100
|
+
case_title: 'no addition 4days case',
|
101
|
+
day: Date.new(2014, 9, 9),
|
102
|
+
count: 4,
|
103
|
+
expected: %w(20140909 20140910 20140911 20140912)
|
104
|
+
},
|
105
|
+
{
|
106
|
+
case_no: 2,
|
107
|
+
case_title: 'no addition 1day case',
|
108
|
+
day: Date.new(2014, 9, 12),
|
109
|
+
count: 1,
|
110
|
+
expected: ['20140912']
|
111
|
+
},
|
112
|
+
{
|
113
|
+
case_no: 3,
|
114
|
+
case_title: 'with addition 4days case',
|
115
|
+
day: Date.new(2014, 9, 9),
|
116
|
+
count: 4,
|
117
|
+
additional: 'hoge',
|
118
|
+
expected: %w(20140909_hoge 20140910_hoge 20140911_hoge 20140912_hoge)
|
119
|
+
},
|
120
|
+
{
|
121
|
+
case_no: 4,
|
122
|
+
case_title: 'invalid date case',
|
123
|
+
day: '20140912',
|
124
|
+
expect_error: true
|
125
|
+
}
|
126
|
+
]
|
127
|
+
|
128
|
+
cases.each do |c|
|
129
|
+
it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
|
130
|
+
begin
|
131
|
+
case_before c
|
132
|
+
|
133
|
+
# -- given --
|
134
|
+
# nothing
|
135
|
+
|
136
|
+
# -- when --
|
137
|
+
actual =
|
138
|
+
if c[:count] && c[:additional]
|
139
|
+
Defoker::DateBaseName.to_yyyymmdd_list(c[:day], count: c[:count], additional: c[:additional])
|
140
|
+
elsif c[:count]
|
141
|
+
Defoker::DateBaseName.to_yyyymmdd_list(c[:day], count: c[:count])
|
142
|
+
elsif c[:additional]
|
143
|
+
Defoker::DateBaseName.to_yyyymmdd_list(c[:day], additional: c[:additional])
|
144
|
+
else
|
145
|
+
if c[:expect_error]
|
146
|
+
expect { Defoker::DateBaseName.to_yyyymmdd_list(c[:day]) }.to raise_error(ArgumentError)
|
147
|
+
next
|
148
|
+
end
|
149
|
+
Defoker::DateBaseName.to_yyyymmdd_list(c[:day])
|
150
|
+
end
|
151
|
+
|
152
|
+
# -- then --
|
153
|
+
expect(actual).to eq(c[:expected])
|
154
|
+
ensure
|
155
|
+
case_after c
|
156
|
+
end
|
157
|
+
end
|
158
|
+
|
159
|
+
def case_before(c)
|
160
|
+
# implement each case before
|
161
|
+
end
|
162
|
+
|
163
|
+
def case_after(c)
|
164
|
+
# implement each case after
|
165
|
+
end
|
166
|
+
end
|
167
|
+
end
|
168
|
+
|
169
|
+
context :to_yyyymm do
|
170
|
+
cases = [
|
171
|
+
{
|
172
|
+
case_no: 1,
|
173
|
+
case_title: 'no addition, 1digit month',
|
174
|
+
month: Date.new(2014, 9),
|
175
|
+
additional: '',
|
176
|
+
expected: '201409'
|
177
|
+
},
|
178
|
+
{
|
179
|
+
case_no: 2,
|
180
|
+
case_title: 'no addition, 2digit month',
|
181
|
+
month: Date.new(2014, 12),
|
182
|
+
additional: '',
|
183
|
+
expected: '201412'
|
184
|
+
},
|
185
|
+
{
|
186
|
+
case_no: 4,
|
187
|
+
case_title: 'with addition case',
|
188
|
+
month: Date.new(2014, 9),
|
189
|
+
additional: 'hoge',
|
190
|
+
expected: '201409_hoge'
|
191
|
+
},
|
192
|
+
{
|
193
|
+
case_no: 5,
|
194
|
+
case_title: 'omit addition case',
|
195
|
+
month: Date.new(2014, 9),
|
196
|
+
additional: nil,
|
197
|
+
expected: '201409'
|
198
|
+
},
|
199
|
+
{
|
200
|
+
case_no: 6,
|
201
|
+
case_title: 'invalid month case',
|
202
|
+
month: '201409',
|
203
|
+
expect_error: true
|
204
|
+
},
|
205
|
+
{
|
206
|
+
case_no: 7,
|
207
|
+
case_title: 'datetime case',
|
208
|
+
month: DateTime.new(2014, 9),
|
209
|
+
additional: nil,
|
210
|
+
expected: '201409'
|
211
|
+
}
|
212
|
+
]
|
213
|
+
|
214
|
+
cases.each do |c|
|
215
|
+
it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
|
216
|
+
begin
|
217
|
+
case_before c
|
218
|
+
|
219
|
+
# -- given --
|
220
|
+
# nothing
|
221
|
+
|
222
|
+
# -- when --
|
223
|
+
actual =
|
224
|
+
if c[:additional]
|
225
|
+
Defoker::DateBaseName.to_yyyymm(c[:month], additional: c[:additional])
|
226
|
+
else
|
227
|
+
if c[:expect_error]
|
228
|
+
expect { Defoker::DateBaseName.to_yyyymm(c[:month]) }.to raise_error(ArgumentError)
|
229
|
+
next
|
230
|
+
end
|
231
|
+
Defoker::DateBaseName.to_yyyymm(c[:month])
|
232
|
+
end
|
233
|
+
|
234
|
+
# -- then --
|
235
|
+
expect(actual).to eq(c[:expected])
|
236
|
+
ensure
|
237
|
+
case_after c
|
238
|
+
end
|
239
|
+
end
|
240
|
+
|
241
|
+
def case_before(c)
|
242
|
+
# implement each case before
|
243
|
+
end
|
244
|
+
|
245
|
+
def case_after(c)
|
246
|
+
# implement each case after
|
247
|
+
end
|
248
|
+
end
|
249
|
+
end
|
250
|
+
|
251
|
+
context :to_yyyymm_list do
|
252
|
+
cases = [
|
253
|
+
{
|
254
|
+
case_no: 1,
|
255
|
+
case_title: 'no addition 4months case',
|
256
|
+
month: Date.new(2014, 10),
|
257
|
+
count: 4,
|
258
|
+
expected: %w(201410 201411 201412 201501)
|
259
|
+
},
|
260
|
+
{
|
261
|
+
case_no: 2,
|
262
|
+
case_title: 'no addition 1month case',
|
263
|
+
month: Date.new(2014, 9),
|
264
|
+
count: 1,
|
265
|
+
expected: ['201409']
|
266
|
+
},
|
267
|
+
{
|
268
|
+
case_no: 3,
|
269
|
+
case_title: 'with addition 4months case',
|
270
|
+
month: Date.new(2014, 10),
|
271
|
+
count: 4,
|
272
|
+
additional: 'hoge',
|
273
|
+
expected: %w(201410_hoge 201411_hoge 201412_hoge 201501_hoge)
|
274
|
+
},
|
275
|
+
{
|
276
|
+
case_no: 4,
|
277
|
+
case_title: 'no addition, no count, 3months case',
|
278
|
+
month: Date.new(2014, 10),
|
279
|
+
expected: %w(201410 201411 201412)
|
280
|
+
},
|
281
|
+
{
|
282
|
+
case_no: 5,
|
283
|
+
case_title: 'invalid month case',
|
284
|
+
month: '201409',
|
285
|
+
expect_error: true
|
286
|
+
}
|
287
|
+
]
|
288
|
+
|
289
|
+
cases.each do |c|
|
290
|
+
it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
|
291
|
+
begin
|
292
|
+
case_before c
|
293
|
+
|
294
|
+
# -- given --
|
295
|
+
# nothing
|
296
|
+
|
297
|
+
# -- when --
|
298
|
+
actual =
|
299
|
+
if c[:count] && c[:additional]
|
300
|
+
Defoker::DateBaseName.to_yyyymm_list(c[:month], count: c[:count], additional: c[:additional])
|
301
|
+
elsif c[:count]
|
302
|
+
Defoker::DateBaseName.to_yyyymm_list(c[:month], count: c[:count])
|
303
|
+
elsif c[:additional]
|
304
|
+
Defoker::DateBaseName.to_yyyymm_list(c[:month], additional: c[:additional])
|
305
|
+
else
|
306
|
+
if c[:expect_error]
|
307
|
+
expect { Defoker::DateBaseName.to_yyyymm_list(c[:month]) }.to raise_error(ArgumentError)
|
308
|
+
next
|
309
|
+
end
|
310
|
+
Defoker::DateBaseName.to_yyyymm_list(c[:month])
|
311
|
+
end
|
312
|
+
|
313
|
+
# -- then --
|
314
|
+
expect(actual).to eq(c[:expected])
|
315
|
+
ensure
|
316
|
+
case_after c
|
317
|
+
end
|
318
|
+
end
|
319
|
+
|
320
|
+
def case_before(c)
|
321
|
+
# implement each case before
|
322
|
+
end
|
323
|
+
|
324
|
+
def case_after(c)
|
325
|
+
# implement each case after
|
326
|
+
end
|
327
|
+
end
|
328
|
+
end
|
329
|
+
|
330
|
+
context :to_yyyy do
|
331
|
+
cases = [
|
332
|
+
{
|
333
|
+
case_no: 1,
|
334
|
+
case_title: 'no addition case',
|
335
|
+
year: Date.new(2014),
|
336
|
+
additional: '',
|
337
|
+
expected: '2014'
|
338
|
+
},
|
339
|
+
{
|
340
|
+
case_no: 2,
|
341
|
+
case_title: 'with addition case',
|
342
|
+
year: Date.new(2014),
|
343
|
+
additional: 'hoge',
|
344
|
+
expected: '2014_hoge'
|
345
|
+
},
|
346
|
+
{
|
347
|
+
case_no: 3,
|
348
|
+
case_title: 'omit addition case',
|
349
|
+
year: Date.new(2014),
|
350
|
+
expected: '2014'
|
351
|
+
},
|
352
|
+
{
|
353
|
+
case_no: 4,
|
354
|
+
case_title: 'invalid year case',
|
355
|
+
year: '2014',
|
356
|
+
expect_error: true
|
357
|
+
},
|
358
|
+
{
|
359
|
+
case_no: 5,
|
360
|
+
case_title: 'datetime case',
|
361
|
+
year: DateTime.new(2014),
|
362
|
+
additional: nil,
|
363
|
+
expected: '2014'
|
364
|
+
}
|
365
|
+
]
|
366
|
+
|
367
|
+
cases.each do |c|
|
368
|
+
it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
|
369
|
+
begin
|
370
|
+
case_before c
|
371
|
+
|
372
|
+
# -- given --
|
373
|
+
# nothing
|
374
|
+
|
375
|
+
# -- when --
|
376
|
+
actual =
|
377
|
+
if c[:additional]
|
378
|
+
Defoker::DateBaseName.to_yyyy(c[:year], additional: c[:additional])
|
379
|
+
else
|
380
|
+
if c[:expect_error]
|
381
|
+
expect { Defoker::DateBaseName.to_yyyy(c[:year]) }.to raise_error(ArgumentError)
|
382
|
+
next
|
383
|
+
end
|
384
|
+
Defoker::DateBaseName.to_yyyy(c[:year])
|
385
|
+
end
|
386
|
+
|
387
|
+
# -- then --
|
388
|
+
expect(actual).to eq(c[:expected])
|
389
|
+
ensure
|
390
|
+
case_after c
|
391
|
+
end
|
392
|
+
end
|
393
|
+
|
394
|
+
def case_before(c)
|
395
|
+
# implement each case before
|
396
|
+
end
|
397
|
+
|
398
|
+
def case_after(c)
|
399
|
+
# implement each case after
|
400
|
+
end
|
401
|
+
end
|
402
|
+
end
|
403
|
+
|
404
|
+
context :to_yyyy_list do
|
405
|
+
cases = [
|
406
|
+
{
|
407
|
+
case_no: 1,
|
408
|
+
case_title: 'no addition 4years case',
|
409
|
+
year: Date.new(2014),
|
410
|
+
count: 4,
|
411
|
+
expected: %w(2014 2015 2016 2017)
|
412
|
+
},
|
413
|
+
{
|
414
|
+
case_no: 2,
|
415
|
+
case_title: 'no addition 1year case',
|
416
|
+
year: Date.new(2014),
|
417
|
+
count: 1,
|
418
|
+
expected: ['2014']
|
419
|
+
},
|
420
|
+
{
|
421
|
+
case_no: 3,
|
422
|
+
case_title: 'with addition 4years case',
|
423
|
+
year: Date.new(2014, 10),
|
424
|
+
count: 4,
|
425
|
+
additional: 'hoge',
|
426
|
+
expected: %w(2014_hoge 2015_hoge 2016_hoge 2017_hoge)
|
427
|
+
},
|
428
|
+
{
|
429
|
+
case_no: 4,
|
430
|
+
case_title: 'no addition, no count, 3years case',
|
431
|
+
year: Date.new(2014),
|
432
|
+
expected: %w(2014 2015 2016)
|
433
|
+
},
|
434
|
+
{
|
435
|
+
case_no: 5,
|
436
|
+
case_title: 'invalid year case',
|
437
|
+
from_or_range: '2014',
|
438
|
+
expect_error: true
|
439
|
+
}
|
440
|
+
]
|
441
|
+
|
442
|
+
cases.each do |c|
|
443
|
+
it "|case_no=#{c[:case_no]}|case_title=#{c[:case_title]}" do
|
444
|
+
begin
|
445
|
+
case_before c
|
446
|
+
|
447
|
+
# -- given --
|
448
|
+
# nothing
|
449
|
+
|
450
|
+
# -- when --
|
451
|
+
actual =
|
452
|
+
if c[:count] && c[:additional]
|
453
|
+
Defoker::DateBaseName.to_yyyy_list(c[:year], count: c[:count], additional: c[:additional])
|
454
|
+
elsif c[:count]
|
455
|
+
Defoker::DateBaseName.to_yyyy_list(c[:year], count: c[:count])
|
456
|
+
elsif c[:additional]
|
457
|
+
Defoker::DateBaseName.to_yyyy_list(c[:year], additional: c[:additional])
|
458
|
+
else
|
459
|
+
if c[:expect_error]
|
460
|
+
expect { Defoker::DateBaseName.to_yyyy_list(c[:year]) }.to raise_error(ArgumentError)
|
461
|
+
next
|
462
|
+
end
|
463
|
+
Defoker::DateBaseName.to_yyyy_list(c[:year])
|
464
|
+
end
|
465
|
+
|
466
|
+
# -- then --
|
467
|
+
expect(actual).to eq(c[:expected])
|
468
|
+
ensure
|
469
|
+
case_after c
|
470
|
+
end
|
471
|
+
end
|
472
|
+
|
473
|
+
def case_before(c)
|
474
|
+
# implement each case before
|
475
|
+
end
|
476
|
+
|
477
|
+
def case_after(c)
|
478
|
+
# implement each case after
|
479
|
+
end
|
480
|
+
end
|
481
|
+
end
|
482
|
+
end
|