Commit f300fee3cf94e351a7f385e49b28bece0e4f5d8d

Authored by Rodrigo Souto
1 parent 6d4cd4e6

rails3: fix products_block test

PS: still breaking because of missing controller called from link_to.
app/models/products_block.rb
@@ -49,7 +49,7 @@ class ProductsBlock < Block @@ -49,7 +49,7 @@ class ProductsBlock < Block
49 products_list = owner.products(reload) 49 products_list = owner.products(reload)
50 result = [] 50 result = []
51 [4, products_list.size].min.times do 51 [4, products_list.size].min.times do
52 - p = products_list.rand 52 + p = products_list.sample
53 result << p 53 result << p
54 products_list -= [p] 54 products_list -= [p]
55 end 55 end
test/unit/products_block_test.rb
@@ -21,10 +21,9 @@ class ProductsBlockTest &lt; ActiveSupport::TestCase @@ -21,10 +21,9 @@ class ProductsBlockTest &lt; ActiveSupport::TestCase
21 end 21 end
22 22
23 should "list owner products" do 23 should "list owner products" do
24 -  
25 - enterprise = Enterprise.create!(:name => 'testenterprise', :identifier => 'testenterprise')  
26 - enterprise.products.create!(:name => 'product one', :product_category => @product_category)  
27 - enterprise.products.create!(:name => 'product two', :product_category => @product_category) 24 + enterprise = create(Enterprise, :name => 'testenterprise', :identifier => 'testenterprise')
  25 + create(Product, :enterprise => enterprise, :name => 'product one', :product_category => @product_category)
  26 + create(Product, :enterprise => enterprise, :name => 'product two', :product_category => @product_category)
28 27
29 block.expects(:products).returns(enterprise.products) 28 block.expects(:products).returns(enterprise.products)
30 29
@@ -34,13 +33,12 @@ class ProductsBlockTest &lt; ActiveSupport::TestCase @@ -34,13 +33,12 @@ class ProductsBlockTest &lt; ActiveSupport::TestCase
34 33
35 assert_tag_in_string content, :tag => 'li', :attributes => { :class => 'product' }, :descendant => { :tag => 'a', :content => /product one/ } 34 assert_tag_in_string content, :tag => 'li', :attributes => { :class => 'product' }, :descendant => { :tag => 'a', :content => /product one/ }
36 assert_tag_in_string content, :tag => 'li', :attributes => { :class => 'product' }, :descendant => { :tag => 'a', :content => /product two/ } 35 assert_tag_in_string content, :tag => 'li', :attributes => { :class => 'product' }, :descendant => { :tag => 'a', :content => /product two/ }
37 -  
38 end 36 end
39 37
40 should 'point to all products in footer' do 38 should 'point to all products in footer' do
41 - enterprise = Enterprise.create!(:name => 'testenterprise', :identifier => 'testenterprise')  
42 - enterprise.products.create!(:name => 'product one', :product_category => @product_category)  
43 - enterprise.products.create!(:name => 'product two', :product_category => @product_category) 39 + enterprise = create(Enterprise, :name => 'testenterprise', :identifier => 'testenterprise')
  40 + create(Product, :enterprise => enterprise, :name => 'product one', :product_category => @product_category)
  41 + create(Product, :enterprise => enterprise, :name => 'product two', :product_category => @product_category)
44 42
45 block.stubs(:owner).returns(enterprise) 43 block.stubs(:owner).returns(enterprise)
46 44
@@ -50,12 +48,12 @@ class ProductsBlockTest &lt; ActiveSupport::TestCase @@ -50,12 +48,12 @@ class ProductsBlockTest &lt; ActiveSupport::TestCase
50 end 48 end
51 49
52 should 'list 4 random products by default' do 50 should 'list 4 random products by default' do
53 - enterprise = Enterprise.create!(:name => 'testenterprise', :identifier => 'testenterprise')  
54 - enterprise.products.create!(:name => 'product one', :product_category => @product_category)  
55 - enterprise.products.create!(:name => 'product two', :product_category => @product_category)  
56 - enterprise.products.create!(:name => 'product three', :product_category => @product_category)  
57 - enterprise.products.create!(:name => 'product four', :product_category => @product_category)  
58 - enterprise.products.create!(:name => 'product five', :product_category => @product_category) 51 + enterprise = create(Enterprise, :name => 'testenterprise', :identifier => 'testenterprise')
  52 + create(Product, :enterprise => enterprise, :name => 'product one', :product_category => @product_category)
  53 + create(Product, :enterprise => enterprise, :name => 'product two', :product_category => @product_category)
  54 + create(Product, :enterprise => enterprise, :name => 'product three', :product_category => @product_category)
  55 + create(Product, :enterprise => enterprise, :name => 'product four', :product_category => @product_category)
  56 + create(Product, :enterprise => enterprise, :name => 'product five', :product_category => @product_category)
59 57
60 block.stubs(:owner).returns(enterprise) 58 block.stubs(:owner).returns(enterprise)
61 59
@@ -63,10 +61,10 @@ class ProductsBlockTest &lt; ActiveSupport::TestCase @@ -63,10 +61,10 @@ class ProductsBlockTest &lt; ActiveSupport::TestCase
63 end 61 end
64 62
65 should 'list all products if less than 4 by default' do 63 should 'list all products if less than 4 by default' do
66 - enterprise = Enterprise.create!(:name => 'testenterprise', :identifier => 'testenterprise')  
67 - enterprise.products.create!(:name => 'product one', :product_category => @product_category)  
68 - enterprise.products.create!(:name => 'product two', :product_category => @product_category)  
69 - enterprise.products.create!(:name => 'product three', :product_category => @product_category) 64 + enterprise = create(Enterprise, :name => 'testenterprise', :identifier => 'testenterprise')
  65 + create(Product, :enterprise => enterprise, :name => 'product one', :product_category => @product_category)
  66 + create(Product, :enterprise => enterprise, :name => 'product two', :product_category => @product_category)
  67 + create(Product, :enterprise => enterprise, :name => 'product three', :product_category => @product_category)
70 68
71 block.stubs(:owner).returns(enterprise) 69 block.stubs(:owner).returns(enterprise)
72 70
@@ -75,13 +73,12 @@ class ProductsBlockTest &lt; ActiveSupport::TestCase @@ -75,13 +73,12 @@ class ProductsBlockTest &lt; ActiveSupport::TestCase
75 73
76 74
77 should 'be able to set product_ids and have them listed' do 75 should 'be able to set product_ids and have them listed' do
78 - enterprise = Enterprise.create!(:name => 'testenterprise', :identifier => 'testenterprise')  
79 -  
80 - p1 = enterprise.products.create!(:name => 'product one', :product_category => @product_category)  
81 - p2 = enterprise.products.create!(:name => 'product two', :product_category => @product_category)  
82 - p3 = enterprise.products.create!(:name => 'product three', :product_category => @product_category)  
83 - p4 = enterprise.products.create!(:name => 'product four', :product_category => @product_category)  
84 - p5 = enterprise.products.create!(:name => 'product five', :product_category => @product_category) 76 + enterprise = create(Enterprise, :name => 'testenterprise', :identifier => 'testenterprise')
  77 + p1 = create(Product, :enterprise => enterprise, :name => 'product one', :product_category => @product_category)
  78 + p2 = create(Product, :enterprise => enterprise, :name => 'product two', :product_category => @product_category)
  79 + p3 = create(Product, :enterprise => enterprise, :name => 'product three', :product_category => @product_category)
  80 + p4 = create(Product, :enterprise => enterprise, :name => 'product four', :product_category => @product_category)
  81 + p5 = create(Product, :enterprise => enterprise, :name => 'product five', :product_category => @product_category)
85 82
86 block.stubs(:owner).returns(enterprise) 83 block.stubs(:owner).returns(enterprise)
87 84
@@ -90,9 +87,9 @@ class ProductsBlockTest &lt; ActiveSupport::TestCase @@ -90,9 +87,9 @@ class ProductsBlockTest &lt; ActiveSupport::TestCase
90 end 87 end
91 88
92 should 'save product_ids' do 89 should 'save product_ids' do
93 - enterprise = Enterprise.create!(:name => 'testenterprise', :identifier => 'testenterprise')  
94 - p1 = enterprise.products.create!(:name => 'product one', :product_category => @product_category)  
95 - p2 = enterprise.products.create!(:name => 'product two', :product_category => @product_category) 90 + enterprise = create(Enterprise, :name => 'testenterprise', :identifier => 'testenterprise')
  91 + p1 = create(Product, :enterprise => enterprise, :name => 'product one', :product_category => @product_category)
  92 + p2 = create(Product, :enterprise => enterprise, :name => 'product two', :product_category => @product_category)
96 93
97 block = ProductsBlock.new 94 block = ProductsBlock.new
98 enterprise.boxes.first.blocks << block 95 enterprise.boxes.first.blocks << block
@@ -109,11 +106,11 @@ class ProductsBlockTest &lt; ActiveSupport::TestCase @@ -109,11 +106,11 @@ class ProductsBlockTest &lt; ActiveSupport::TestCase
109 end 106 end
110 107
111 should 'not repeat products' do 108 should 'not repeat products' do
112 - enterprise = Enterprise.create!(:name => 'test_enterprise', :identifier => 'test_enterprise')  
113 - p1 = enterprise.products.create!(:name => 'product one', :product_category => @product_category)  
114 - p2 = enterprise.products.create!(:name => 'product two', :product_category => @product_category)  
115 - p3 = enterprise.products.create!(:name => 'product three', :product_category => @product_category)  
116 - p4 = enterprise.products.create!(:name => 'product four', :product_category => @product_category) 109 + enterprise = create(Enterprise, :name => 'testenterprise', :identifier => 'testenterprise')
  110 + p1 = create(Product, :enterprise => enterprise, :name => 'product one', :product_category => @product_category)
  111 + p2 = create(Product, :enterprise => enterprise, :name => 'product two', :product_category => @product_category)
  112 + p3 = create(Product, :enterprise => enterprise, :name => 'product three', :product_category => @product_category)
  113 + p4 = create(Product, :enterprise => enterprise, :name => 'product four', :product_category => @product_category)
117 114
118 block = ProductsBlock.new 115 block = ProductsBlock.new
119 enterprise.boxes.first.blocks << block 116 enterprise.boxes.first.blocks << block
@@ -125,10 +122,10 @@ class ProductsBlockTest &lt; ActiveSupport::TestCase @@ -125,10 +122,10 @@ class ProductsBlockTest &lt; ActiveSupport::TestCase
125 end 122 end
126 123
127 should 'generate footer when enterprise has own hostname' do 124 should 'generate footer when enterprise has own hostname' do
128 - enterprise = Enterprise.create!(:name => 'testenterprise', :identifier => 'testenterprise') 125 + enterprise = create(Enterprise, :name => 'testenterprise', :identifier => 'testenterprise')
129 enterprise.domains << Domain.new(:name => 'sometest.com'); enterprise.save! 126 enterprise.domains << Domain.new(:name => 'sometest.com'); enterprise.save!
130 - enterprise.products.create!(:name => 'product one', :product_category => @product_category)  
131 - enterprise.products.create!(:name => 'product two', :product_category => @product_category) 127 + create(Product, :enterprise => enterprise, :name => 'product one', :product_category => @product_category)
  128 + create(Product, :enterprise => enterprise, :name => 'product two', :product_category => @product_category)
132 129
133 block.stubs(:owner).returns(enterprise) 130 block.stubs(:owner).returns(enterprise)
134 131
@@ -138,8 +135,8 @@ class ProductsBlockTest &lt; ActiveSupport::TestCase @@ -138,8 +135,8 @@ class ProductsBlockTest &lt; ActiveSupport::TestCase
138 end 135 end
139 136
140 should 'display the default minor image if thumbnails were not processed' do 137 should 'display the default minor image if thumbnails were not processed' do
141 - enterprise = Enterprise.create!(:name => 'testenterprise', :identifier => 'testenterprise')  
142 - enterprise.products.create!(:name => 'product', :product_category => @product_category, :image_builder => { :uploaded_data => fixture_file_upload('/files/rails.png', 'image/png')}) 138 + enterprise = create(Enterprise, :name => 'testenterprise', :identifier => 'testenterprise')
  139 + create(Product, :enterprise => enterprise, :name => 'product', :product_category => @product_category, :image_builder => { :uploaded_data => fixture_file_upload('/files/rails.png', 'image/png')})
143 140
144 block.expects(:products).returns(enterprise.products) 141 block.expects(:products).returns(enterprise.products)
145 142
@@ -149,8 +146,8 @@ class ProductsBlockTest &lt; ActiveSupport::TestCase @@ -149,8 +146,8 @@ class ProductsBlockTest &lt; ActiveSupport::TestCase
149 end 146 end
150 147
151 should 'display the thumbnail image if thumbnails were processed' do 148 should 'display the thumbnail image if thumbnails were processed' do
152 - enterprise = Enterprise.create!(:name => 'testenterprise', :identifier => 'testenterprise')  
153 - enterprise.products.create!(:name => 'product', :product_category => @product_category, :image_builder => { :uploaded_data => fixture_file_upload('/files/rails.png', 'image/png')}) 149 + enterprise = create(Enterprise, :name => 'testenterprise', :identifier => 'testenterprise')
  150 + create(Product, :enterprise => enterprise, :name => 'product', :product_category => @product_category, :image_builder => { :uploaded_data => fixture_file_upload('/files/rails.png', 'image/png')})
154 151
155 process_delayed_job_queue 152 process_delayed_job_queue
156 block.expects(:products).returns(enterprise.products.reload) 153 block.expects(:products).returns(enterprise.products.reload)