blueprints 0.5.0 → 0.5.1

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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.5.0
1
+ 0.5.1
data/blueprints.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{blueprints}
8
- s.version = "0.5.0"
8
+ s.version = "0.5.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Andrius Chamentauskas"]
12
- s.date = %q{2010-02-17}
12
+ s.date = %q{2010-02-24}
13
13
  s.description = %q{Another replacement for factories and fixtures. The library that lazy typists will love}
14
14
  s.email = %q{sinsiliux@gmail.com}
15
15
  s.extra_rdoc_files = [
@@ -7,7 +7,7 @@ module Blueprints
7
7
  end
8
8
 
9
9
  # Dummy method
10
- def revert_transaction
10
+ def rollback_transaction
11
11
  end
12
12
 
13
13
  # Dummy method
data/script/rspec_to_test CHANGED
@@ -9,6 +9,9 @@ data.gsub!("describe Blueprints do", 'class BlueprintsTest < ActiveSupport::Test
9
9
  # hornsby_clear :undo => :just_orange
10
10
  # }.should raise_error(ArgumentError)
11
11
  data.gsub!(/(\s+)lambda \{\n(.*)\n(\s+)\}.should raise_error\((.*)\)/, "\\1assert_raise(\\4) do\n\\2\n\\3end")
12
+ # should =~ => assert_similar
13
+ data.gsub!(/^(\s+)(.*)\.should\s*=~\s*(.*)/, '\1assert_similar(\2, \3)')
14
+
12
15
  # .should_not => assert(!())
13
16
  data.gsub!(/^(\s+)(.*)\.should_not(.*)/, '\1assert(!(\2\3))')
14
17
  # .should => assert()
@@ -7,7 +7,7 @@ class BlueprintsTest < ActiveSupport::TestCase
7
7
  end
8
8
 
9
9
  should "support required ORMS" do
10
- assert(Blueprints::SUPPORTED_ORMS == [:none, :active_record])
10
+ assert_similar(Blueprints.supported_orms, [:active_record, :none])
11
11
  end
12
12
  end
13
13
 
@@ -219,7 +219,7 @@ class BlueprintsTest < ActiveSupport::TestCase
219
219
 
220
220
  should "raise ArgumentError when unknown ORM specified" do
221
221
  Blueprints::Namespace.root.expects(:empty?).returns(true)
222
- assert_raise(ArgumentError, "Unsupported ORM unknown. Blueprints supports only none, active_record") do
222
+ assert_raise(ArgumentError, "Unsupported ORM unknown. Blueprints supports only #{Blueprints.supported_orms.join(', ')}") do
223
223
  Blueprints.load(:orm => :unknown)
224
224
  end
225
225
  end
@@ -246,6 +246,18 @@ class BlueprintsTest < ActiveSupport::TestCase
246
246
  assert(!(@acorn.nil?))
247
247
  assert(@acorn.tree == @oak)
248
248
  end
249
+
250
+ should "allow updating object using blueprint method" do
251
+ build :oak
252
+ @oak.blueprint(:size => 'updated')
253
+ assert(@oak.reload.size == 'updated')
254
+ end
255
+
256
+ should "automatically merge passed options" do
257
+ build :oak => {:size => 'optional'}
258
+ assert(@oak.name == 'Oak')
259
+ assert(@oak.size == 'optional')
260
+ end
249
261
  end
250
262
 
251
263
  context "with pitted namespace" do
@@ -272,7 +284,7 @@ class BlueprintsTest < ActiveSupport::TestCase
272
284
  assert(!(@pitted_peach.nil?))
273
285
  assert(!(@pitted_acorn.nil?))
274
286
  assert(!(@pitted_red_apple.nil?))
275
- assert(@pitted.sort_by(&:id) == [@pitted_peach_tree, @pitted_peach, @pitted_acorn, [@pitted_red_apple]].sort_by(&:id))
287
+ assert_similar(@pitted, [@pitted_peach_tree, @pitted_peach, @pitted_acorn, [@pitted_red_apple]])
276
288
  end
277
289
 
278
290
  context "with red namespace" do
@@ -294,5 +306,63 @@ class BlueprintsTest < ActiveSupport::TestCase
294
306
  end
295
307
  end
296
308
  end
309
+
310
+ context 'extra parameters' do
311
+ should "allow passing extra parameters when building" do
312
+ build :apple_with_params => {:average_diameter => 14}
313
+ assert(@apple_with_params.average_diameter == 14)
314
+ assert(@apple_with_params.species == 'apple')
315
+ end
316
+
317
+ should "allow set options to empty hash if no parameters are passed" do
318
+ build :apple_with_params
319
+ assert(@apple_with_params.average_diameter == nil)
320
+ assert(@apple_with_params.species == 'apple')
321
+ end
322
+
323
+ should "use extra params only on blueprints specified" do
324
+ build :acorn => {:average_diameter => 5}
325
+ assert(@acorn.average_diameter == 5)
326
+ end
327
+
328
+ should "allow passing extra params for each blueprint individually" do
329
+ build :acorn => {:average_diameter => 3}, :apple_with_params => {:average_diameter => 2}
330
+ assert(@acorn.average_diameter == 3)
331
+ assert(@apple_with_params.average_diameter == 2)
332
+ end
333
+
334
+ should "allow passing options for some blueprints only" do
335
+ assert(build(:acorn, :apple_with_params => {:average_diameter => 2}) == @apple_with_params)
336
+ assert(@acorn.average_diameter == nil)
337
+ assert(@apple_with_params.average_diameter == 2)
338
+ end
339
+ end
340
+
341
+ should "overwrite auto created instance variable with another auto created one" do
342
+ build :acorn => {:average_diameter => 3}
343
+ demolish :fruits, :undo => :acorn
344
+ assert(@acorn.average_diameter == 3)
345
+
346
+ build :acorn => {:average_diameter => 5}
347
+ assert(@acorn.average_diameter == 5)
348
+ end
349
+
350
+ context "extending blueprints" do
351
+ should "allow to call build method inside blueprint body" do
352
+ build :small_acorn
353
+ assert(@small_acorn.average_diameter == 1)
354
+ assert(@small_acorn == @acorn)
355
+ end
356
+
357
+ should "allow to use shortcut to extend blueprint" do
358
+ build :huge_acorn
359
+ assert(@huge_acorn.average_diameter == 100)
360
+ end
361
+
362
+ should "allow extended blueprint be dependency and associated object" do
363
+ build :huge_acorn
364
+ assert(@huge_acorn.tree.size == 'huge')
365
+ end
366
+ end
297
367
  end
298
368
 
data/test/test_helper.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  require 'rubygems'
2
- require 'activerecord'
2
+ require 'active_record'
3
3
  require 'test/unit'
4
4
  require 'active_record/test_case'
5
5
  require 'shoulda'
@@ -23,4 +23,9 @@ require 'spec/active_record/fixtures/tree'
23
23
 
24
24
  class ActiveSupport::TestCase
25
25
  enable_blueprints :root => File.join(File.dirname(__FILE__), '..'), :prebuild => :big_cherry, :filename => 'spec/active_record/blueprint.rb'
26
+
27
+ def assert_similar(array1, array2)
28
+ assert (array1 - array2).empty?, "Extra elements #{array1 - array2}"
29
+ assert (array2 - array1).empty?, "Missing elements #{array2 - array1}"
30
+ end
26
31
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: blueprints
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrius Chamentauskas
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2010-02-17 00:00:00 +02:00
12
+ date: 2010-02-24 00:00:00 +02:00
13
13
  default_executable:
14
14
  dependencies: []
15
15