flextures 3.1.3 → 4.0.0

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.
@@ -0,0 +1,111 @@
1
+ $:.push( File.join(File.dirname(File.expand_path(__FILE__)), '../') )
2
+
3
+ require 'test_helper'
4
+
5
+ describe :Hook do
6
+ describe Flextures::Loader do
7
+ describe ".parse_flextures_options" do
8
+ describe "set one table" do
9
+ before do
10
+ @list = Flextures::Loader.parse_flextures_options({},:users)
11
+ end
12
+
13
+ it "return table is Array" do
14
+ assert_equal true, @list.is_a?(Array)
15
+ end
16
+
17
+ it "return table is only one" do
18
+ assert_equal 1, @list.size
19
+ end
20
+
21
+ it "return data is content Hash data" do
22
+ assert_equal true, @list.first.is_a?(Hash)
23
+ end
24
+
25
+ it "return data is contain loading table infomation" do
26
+ h = { table: :users, file: "users", loader: :fun }
27
+ assert_equal h, @list.first
28
+ end
29
+ end
30
+
31
+ describe "if set file name option" do
32
+ before do
33
+ @list = Flextures::Loader.parse_flextures_options( {}, :users => :users_another3 )
34
+ end
35
+
36
+ it "returned data size is only one" do
37
+ assert_equal 1, @list.size
38
+ end
39
+
40
+ it " 'file' option is changed setted file name" do
41
+ assert_equal :users_another3, @list.first[:file]
42
+ end
43
+
44
+ it "returned data include data" do
45
+ h = { table: :users, file: :users_another3, loader: :fun }
46
+ assert_equal h, @list.first
47
+ end
48
+ end
49
+
50
+ describe "if set 'cache' option" do
51
+ before do
52
+ @list = Flextures::Loader.parse_flextures_options( { cache: true }, :users )
53
+ end
54
+
55
+ it "setted cache option" do
56
+ assert_equal true, @list.first[:cache]
57
+ end
58
+ end
59
+
60
+ describe " if set 'dir' option " do
61
+ before do
62
+ @list = Flextures::Loader.parse_flextures_options( { dir: "a/b/c" }, :users )
63
+ end
64
+
65
+ it "setted cache option" do
66
+ assert_equal "a/b/c", @list.first[:dir]
67
+ end
68
+ end
69
+
70
+ describe " if set 'controller' option " do
71
+ before do
72
+ @list = Flextures::Loader.parse_flextures_options( {}, { controller: "top" }, :users )
73
+ end
74
+
75
+ it "setted cache option" do
76
+ assert_equal "controllers/top", @list.first[:dir]
77
+ end
78
+ end
79
+
80
+ describe " if set 'controller' and 'action' option " do
81
+ before do
82
+ @list = Flextures::Loader.parse_flextures_options( {}, { controller: "top", action:"index" }, :users )
83
+ end
84
+
85
+ it "setted cache option" do
86
+ assert_equal "controllers/top/index", @list.first[:dir]
87
+ end
88
+ end
89
+
90
+ describe " if set 'model' option " do
91
+ before do
92
+ @list = Flextures::Loader.parse_flextures_options( {}, { model: "users" }, :users )
93
+ end
94
+
95
+ it "setted cache option" do
96
+ assert_equal "models/users", @list.first[:dir]
97
+ end
98
+ end
99
+
100
+ describe " if set 'model' and 'method' option " do
101
+ before do
102
+ @list = Flextures::Loader.parse_flextures_options( {}, { model: "users", method:"login" }, :users )
103
+ end
104
+
105
+ it "setted cache option" do
106
+ assert_equal "models/users/login", @list.first[:dir]
107
+ end
108
+ end
109
+ end
110
+ end
111
+ end
@@ -0,0 +1,313 @@
1
+ $:.push( File.join(File.dirname(File.expand_path(__FILE__)), '../') )
2
+ require 'test_helper'
3
+
4
+ describe Flextures::Loader do
5
+ describe "TRANSLATER" do
6
+ describe :binary do
7
+ it "'nil' value not changed" do
8
+ assert_equal nil, Flextures::Loader::TRANSLATER[:binary].call(nil)
9
+ end
10
+ end
11
+
12
+ describe :boolean do
13
+ it "'nil' value not changed" do
14
+ assert_equal nil, Flextures::Loader::TRANSLATER[:boolean].call(nil)
15
+ end
16
+
17
+ it "true value not changed" do
18
+ assert_equal true, Flextures::Loader::TRANSLATER[:boolean].call(true)
19
+ end
20
+
21
+ it "false value not changed" do
22
+ assert_equal false, Flextures::Loader::TRANSLATER[:boolean].call(false)
23
+ end
24
+
25
+ it "0 is change to 'false'" do
26
+ assert_equal false, Flextures::Loader::TRANSLATER[:boolean].call(0)
27
+ end
28
+
29
+ it "1 is change to 'true'" do
30
+ assert_equal true, Flextures::Loader::TRANSLATER[:boolean].call(1)
31
+ end
32
+
33
+ it "-1 is change to 'true'" do
34
+ assert_equal true, Flextures::Loader::TRANSLATER[:boolean].call(-1)
35
+ end
36
+
37
+ it "'0' is change to 'false'" do
38
+ assert_equal false, Flextures::Loader::TRANSLATER[:boolean].call('0')
39
+ end
40
+
41
+ it "'1' is change to 'true'" do
42
+ assert_equal true, Flextures::Loader::TRANSLATER[:boolean].call('1')
43
+ end
44
+
45
+ it "'true' value not changed" do
46
+ assert_equal true, Flextures::Loader::TRANSLATER[:boolean].call('true')
47
+ end
48
+
49
+ it "'false' value not changed" do
50
+ assert_equal false, Flextures::Loader::TRANSLATER[:boolean].call('false')
51
+ end
52
+
53
+ it "'non-falsy string data' is change to 'true'" do
54
+ assert_equal true, Flextures::Loader::TRANSLATER[:boolean].call("Hello")
55
+ end
56
+
57
+ it "'empty string' is change to 'true'" do
58
+ assert_equal false, Flextures::Loader::TRANSLATER[:boolean].call("")
59
+ end
60
+ end
61
+
62
+ describe :date do
63
+ it "正常値の文字列" do
64
+ assert_equal "2011/11/21", Flextures::Loader::TRANSLATER[:date].call("2011/11/21").strftime("%Y/%m/%d")
65
+ end
66
+
67
+ it "Timeオブジェクト" do
68
+ now = Time.now
69
+ assert_equal now.strftime("%Y/%m/%d"), Flextures::Loader::TRANSLATER[:date].call(now).strftime("%Y/%m/%d")
70
+ end
71
+
72
+ it "DateTimeオブジェクト" do
73
+ now = DateTime.now
74
+ assert_equal now.strftime("%Y/%m/%d"), Flextures::Loader::TRANSLATER[:date].call(now).strftime("%Y/%m/%d")
75
+ end
76
+
77
+ it "日付っぽい数字" do
78
+ now = "20111121"
79
+ assert_equal true, Flextures::Loader::TRANSLATER[:date].call(now).is_a?(Date)
80
+ end
81
+
82
+ it "nil" do
83
+ assert_equal nil, Flextures::Loader::TRANSLATER[:date].call(nil)
84
+ end
85
+
86
+ it "空文字" do
87
+ assert_equal nil, Flextures::Loader::TRANSLATER[:date].call("")
88
+ end
89
+ end
90
+
91
+ describe :datetime do
92
+ it "正常値の文字列" do
93
+ assert_equal "2011/11/21", Flextures::Loader::TRANSLATER[:date].call("2011/11/21").strftime("%Y/%m/%d")
94
+ end
95
+
96
+ it "Timeオブジェクト" do
97
+ now = Time.now
98
+ assert_equal now.strftime("%Y/%m/%d"), Flextures::Loader::TRANSLATER[:date].call(now).strftime("%Y/%m/%d")
99
+ end
100
+
101
+ it "DateTimeオブジェクト" do
102
+ now = DateTime.now
103
+ assert_equal now.strftime("%Y/%m/%d"), Flextures::Loader::TRANSLATER[:date].call(now).strftime("%Y/%m/%d")
104
+ end
105
+
106
+ it "日付っぽい数字" do
107
+ now = "20111121"
108
+ assert_equal true, Flextures::Loader::TRANSLATER[:date].call(now).is_a?(Date)
109
+ end
110
+
111
+ it "nil" do
112
+ assert_equal nil, Flextures::Loader::TRANSLATER[:date].call(nil)
113
+ end
114
+
115
+ it "空文字" do
116
+ assert_equal nil, Flextures::Loader::TRANSLATER[:date].call("")
117
+ end
118
+ end
119
+
120
+ describe :decimal do
121
+ it "null" do
122
+ assert_equal nil, Flextures::Loader::TRANSLATER[:decimal].call(nil)
123
+ end
124
+ end
125
+
126
+ describe :float do
127
+ it "null" do
128
+ assert_equal nil, Flextures::Loader::TRANSLATER[:float].call(nil)
129
+ end
130
+ end
131
+
132
+ describe :integer do
133
+ it "null" do
134
+ assert_equal nil, Flextures::Loader::TRANSLATER[:integer].call(nil)
135
+ end
136
+ end
137
+
138
+ describe :string do
139
+ it "null" do
140
+ assert_equal nil, Flextures::Loader::TRANSLATER[:string].call(nil)
141
+ end
142
+
143
+ it "空文字" do
144
+ assert_equal "", Flextures::Loader::TRANSLATER[:string].call("")
145
+ end
146
+
147
+ it "タブ混じり" do
148
+ s="\taaaaa"
149
+ assert_equal s, Flextures::Loader::TRANSLATER[:string].call(s)
150
+ end
151
+
152
+ it "改行混じり" do
153
+ s="aa\naaa"
154
+ assert_equal s, Flextures::Loader::TRANSLATER[:string].call(s)
155
+ end
156
+
157
+ it "スペース混じり" do
158
+ s="aa aaa"
159
+ assert_equal s, Flextures::Loader::TRANSLATER[:string].call(s)
160
+ end
161
+ # "@#%{}|[]&:`'>?~"
162
+ end
163
+
164
+ describe :text do
165
+ it "null" do
166
+ assert_equal nil, Flextures::Loader::TRANSLATER[:text].call(nil)
167
+ end
168
+
169
+ it "空文字" do
170
+ assert_equal "", Flextures::Loader::TRANSLATER[:text].call("")
171
+ end
172
+ end
173
+
174
+ describe :time do
175
+ it "正常値の文字列" do
176
+ assert_equal "2011/11/21", Flextures::Loader::TRANSLATER[:time].call("2011/11/21").strftime("%Y/%m/%d")
177
+ end
178
+
179
+ it "Timeオブジェクト" do
180
+ now = Time.now
181
+ assert_equal now.strftime("%Y/%m/%d"), Flextures::Loader::TRANSLATER[:time].call(now).strftime("%Y/%m/%d")
182
+ end
183
+
184
+ it "DateTimeオブジェクト" do
185
+ now = DateTime.now
186
+ assert_equal now.strftime("%Y/%m/%d"), Flextures::Loader::TRANSLATER[:time].call(now).strftime("%Y/%m/%d")
187
+ end
188
+
189
+ it "日付っぽい数字はDateTime型" do
190
+ now = "20111121"
191
+ assert_equal true, Flextures::Loader::TRANSLATER[:time].call(now).is_a?(DateTime)
192
+ end
193
+
194
+ it "nilはnilのまま" do
195
+ assert_equal nil, Flextures::Loader::TRANSLATER[:time].call(nil)
196
+ end
197
+
198
+ it "空文字はnil" do
199
+ assert_equal nil, Flextures::Loader::TRANSLATER[:time].call("")
200
+ end
201
+ end
202
+
203
+ describe :timestamp do
204
+ it "正常値の文字列はDateTimeに変換" do
205
+ assert_equal "2011/11/21", Flextures::Loader::TRANSLATER[:timestamp].call("2011/11/21").strftime("%Y/%m/%d")
206
+ end
207
+
208
+ it "Timeオブジェクト" do
209
+ now = Time.now
210
+ assert_equal now.strftime("%Y/%m/%d"), Flextures::Loader::TRANSLATER[:timestamp].call(now).strftime("%Y/%m/%d")
211
+ end
212
+
213
+ it "DateTimeオブジェクトはDateTime" do
214
+ now = DateTime.now
215
+ assert_equal now.strftime("%Y/%m/%d"), Flextures::Loader::TRANSLATER[:timestamp].call(now).strftime("%Y/%m/%d")
216
+ end
217
+
218
+ it "日付っぽい数字はDateTime" do
219
+ now = "20111121"
220
+ assert_equal true, Flextures::Loader::TRANSLATER[:timestamp].call(now).is_a?(DateTime)
221
+ end
222
+
223
+ it "nilからnil" do
224
+ assert_equal nil, Flextures::Loader::TRANSLATER[:timestamp].call(nil)
225
+ end
226
+
227
+ it "空文字はnil" do
228
+ assert_equal nil, Flextures::Loader::TRANSLATER[:timestamp].call("")
229
+ end
230
+ end
231
+ describe ".stair_list" do
232
+ describe " stair is 'false' " do
233
+ describe "argument is null" do
234
+ before do
235
+ @list = Flextures::Loader::stair_list nil, false
236
+ end
237
+
238
+ it " return array include only empty string" do
239
+ assert_equal @list, [""]
240
+ end
241
+ end
242
+ describe "argument is empty string" do
243
+ before do
244
+ @list = Flextures::Loader::stair_list "", false
245
+ end
246
+
247
+ it " return array include only empty string" do
248
+ assert_equal @list, [""]
249
+ end
250
+ end
251
+
252
+ describe "include '/' mark" do
253
+ before do
254
+ @list = Flextures::Loader::stair_list "a/b/c", false
255
+ end
256
+
257
+ it " return directory list" do
258
+ assert_equal @list, ["a/b/c"]
259
+ end
260
+ end
261
+ end
262
+
263
+ describe " stair is 'true' " do
264
+ describe "argument is null" do
265
+ before do
266
+ @list = Flextures::Loader::stair_list nil, true
267
+ end
268
+
269
+ it " return array include only empty string" do
270
+ assert_equal @list, [""]
271
+ end
272
+ end
273
+
274
+ describe "include '/' mark" do
275
+ before do
276
+ @list = Flextures::Loader::stair_list "a/b/c", true
277
+ end
278
+
279
+ it " return directory list" do
280
+ assert_equal @list, ["a/b/c","a/b","a",""]
281
+ end
282
+ end
283
+ end
284
+
285
+ describe ".loading_order" do
286
+ describe "simple test" do
287
+ before do
288
+ @proc = Flextures::Loader.loading_order
289
+ end
290
+
291
+ it "not sort" do
292
+ assert_equal ["a","b","c"].sort(&@proc), ["a","b","c"]
293
+ end
294
+ end
295
+
296
+ describe "set orderd table name" do
297
+ before do
298
+ Flextures::Config.table_load_order=["b"]
299
+ @proc = Flextures::Loader.loading_order
300
+ end
301
+
302
+ it "first table name is setted table" do
303
+ assert_equal ["a","b","c"].sort(&@proc), ["b","a","c"]
304
+ end
305
+
306
+ after do
307
+ Flextures::Config.table_load_order=[]
308
+ end
309
+ end
310
+ end
311
+ end
312
+ end
313
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flextures
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.3
4
+ version: 4.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - baban
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-30 00:00:00.000000000 Z
11
+ date: 2016-05-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -66,16 +66,14 @@ files:
66
66
  - lib/flextures/flextures_loader.rb
67
67
  - lib/flextures/flextures_railtie.rb
68
68
  - lib/flextures/rspec_flextures_support.rb
69
- - lib/flextures/testunit_flextures_support.rb
70
69
  - lib/flextures/version.rb
70
+ - test/models/flextures_test.rb
71
71
  - test/test_helper.rb
72
- - test/unit/test_flextures.rb
73
- - test/unit/test_flextures_args.rb
74
- - test/unit/test_flextures_dumper.rb
75
- - test/unit/test_flextures_extention_modules.rb
76
- - test/unit/test_flextures_hooks.rb
77
- - test/unit/test_flextures_loader.rb
78
- - test/unit/test_simple.rb
72
+ - test/unit/flextures_args_test.rb
73
+ - test/unit/flextures_dumper_test.rb
74
+ - test/unit/flextures_extention_modules_test.rb
75
+ - test/unit/flextures_hooks_test.rb
76
+ - test/unit/flextures_loader_test.rb
79
77
  homepage: http://github.com/baban/flextures
80
78
  licenses:
81
79
  - MIT
@@ -101,11 +99,4 @@ signing_key:
101
99
  specification_version: 4
102
100
  summary: load and dump fixtures.
103
101
  test_files:
104
- - test/test_helper.rb
105
- - test/unit/test_flextures.rb
106
- - test/unit/test_flextures_args.rb
107
- - test/unit/test_flextures_dumper.rb
108
- - test/unit/test_flextures_extention_modules.rb
109
- - test/unit/test_flextures_hooks.rb
110
- - test/unit/test_flextures_loader.rb
111
- - test/unit/test_simple.rb
102
+ - test/unit/flextures_args_test.rb