spec/spree_loader_spec.rb in datashift-0.4.3 vs spec/spree_loader_spec.rb in datashift-0.5.0
- old
+ new
@@ -30,21 +30,23 @@
include SpecHelper
extend SpecHelper
before_each_spree
- @klass.count.should == 0
+ @Product_klass.count.should == 0
@Taxon_klass.count.should == 0
@Variant_klass.count.should == 0
MethodDictionary.clear
- MethodDictionary.find_operators( @klass )
+ MethodDictionary.find_operators( @Product_klass )
# want to test both lookup and dynamic creation - this Taxonomy should be found, rest created
root = @Taxonomy_klass.create( :name => 'Paintings' )
- @Taxon_klass.create( :name => 'Landscape', :taxonomy => root )
+ t = @Taxon_klass.new( :name => 'Landscape' )
+ t.taxonomy = root
+ t.save
@Taxon_klass.count.should == 2
@product_loader = DataShift::SpreeHelper::ProductLoader.new
rescue => e
@@ -97,28 +99,28 @@
def test_basic_product( source )
@product_loader.perform_load( SpecHelper::spree_fixture(source), :mandatory => ['sku', 'name', 'price'] )
- @klass.count.should == 3
+ @Product_klass.count.should == 3
@product_loader.failed_objects.size.should == 0
@product_loader.loaded_objects.size.should == 3
- @product_loader.loaded_count.should == @klass.count
+ @product_loader.loaded_count.should == @Product_klass.count
- p = @klass.first
+ p = @Product_klass.first
p.sku.should == "SIMPLE_001"
p.price.should == 345.78
p.name.should == "Simple Product for AR Loader"
p.description.should == "blah blah"
p.cost_price.should == 320.00
p.option_types.should have_exactly(1).items
p.option_types.should have_exactly(1).items
p.count_on_hand.should == 12
- @klass.last.count_on_hand.should == 23
+ @Product_klass.last.count_on_hand.should == 23
end
it "should support default values for Spree Products loader" do
@@ -147,20 +149,20 @@
end
def test_default_values
@product_loader.perform_load( SpecHelper::spree_fixture('SpreeProductsMandatoryOnly.xls'), :mandatory => ['sku', 'name', 'price'] )
- @klass.count.should == 3
+ @Product_klass.count.should == 3
@product_loader.failed_objects.size.should == 0
@product_loader.loaded_objects.size.should == 3
- p = @klass.first
+ p = @Product_klass.first
p.sku.should == "SPEC_SIMPLE_001"
- @klass.all { |p|
+ @Product_klass.all { |p|
p.sku.should.include "SPEC_"
p.cost_price = 1.0
p.available_on.should == @expected_time
p.meta_description.should == 'super duper meta desc.'
p.meta_keywords.should == 'techno dubstep d&b'
@@ -178,11 +180,11 @@
it "should load Products and create Variants from multiple column", :fail => true do
test_variants_creation('SpreeProductsMultiColumn.xls')
end
def test_variants_creation( source )
- @klass.count.should == 0
+ @Product_klass.count.should == 0
@Variant_klass.count.should == 0
@product_loader.perform_load( SpecHelper::spree_fixture(source), :mandatory => ['sku', 'name', 'price'] )
expected_multi_column_variants
@@ -190,23 +192,23 @@
def expected_multi_column_variants
# 3 MASTER products, 11 VARIANTS
- @klass.count.should == 3
+ @Product_klass.count.should == 3
@Variant_klass.count.should == 14
- p = @klass.first
+ p = @Product_klass.first
p.sku.should == "DEMO_001"
p.sku.should == "DEMO_001"
p.price.should == 399.99
p.description.should == "blah blah"
p.cost_price.should == 320.00
- @klass.all.select {|m| m.is_master.should == true }
+ @Product_klass.all.select {|m| m.is_master.should == true }
# mime_type:jpeg mime_type:PDF mime_type:PNG
p.variants.should have_exactly(3).items
@@ -279,16 +281,16 @@
end
def expected_multi_column_properties
# 3 MASTER products, 11 VARIANTS
- @klass.count.should == 3
+ @Product_klass.count.should == 3
@Variant_klass.count.should == 14
- @klass.first.properties.should have_exactly(1).items
+ @Product_klass.first.properties.should have_exactly(1).items
- p3 = @klass.all.last
+ p3 = @Product_klass.all.last
p3.properties.should have_exactly(3).items
p3.properties.should include @Property_klass.find_by_name('test_pp_002')
@@ -302,11 +304,11 @@
##############
# Operation and results should be identical when loading multiple associations
# if using either single column embedded syntax, or one column per entry.
- it "should load Products and multiple Taxons from single column", :taxon => true do
+ it "should load Products and multiple Taxons from single column", :taxons => true do
test_taxon_creation( 'SpreeProducts.xls' )
end
it "should load Products and multiple Taxons from multiple columns", :taxons => true do
test_taxon_creation( 'SpreeProductsMultiColumn.xls' )
@@ -327,36 +329,42 @@
def expected_multi_column_taxons
#puts @Taxonomy_klass.all.collect( &:name).inspect
#puts @Taxon_klass.all.collect( &:name).inspect
- # Paintings alreadyexisted and had 1 child Taxon (Landscape)
+ # Paintings already existed and had 1 child Taxon (Landscape)
# 2 nested Taxon (Paintings>Nature>Seascape) created under it so expect Taxonomy :
# WaterColour
# Oils
# Paintings >Nature>Seascape + >Landscape
# Drawings
@Taxonomy_klass.count.should == 4
@Taxon_klass.count.should == 7
- @klass.first.taxons.should have_exactly(2).items
- @klass.last.taxons.should have_exactly(2).items
+ @Product_klass.first.taxons.should have_exactly(2).items
+ @Product_klass.last.taxons.should have_exactly(2).items
p2 = @Variant_klass.find_by_sku("DEMO_002").product
# Paintings Oils Paintings>Nature>Seascape
+ # ["Nature", "Paintings", "Seascape"]
+
+
#puts p2.taxons.collect(&:name).inspect
p2.taxons.should have_exactly(4).items
p2.taxons.collect(&:name).sort.should == ['Nature','Oils','Paintings','Seascape']
paint_parent = @Taxonomy_klass.find_by_name('Paintings')
-
+
+
+ puts paint_parent.taxons.collect(&:name).sort.inspect
+
paint_parent.taxons.should have_exactly(4).items # 3 children + all Taxonomies have a root Taxon
paint_parent.taxons.collect(&:name).sort.should == ['Landscape','Nature','Paintings','Seascape']
tn = @Taxon_klass.find_by_name('Nature') # child with children
@@ -365,20 +373,17 @@
ts.should_not be_nil
tn.should_not be_nil
p2.taxons.collect( &:id ).should include(ts.id)
p2.taxons.collect( &:id ).should include(tn.id)
-
- puts tn.inspect
- puts ts.inspect
+
tn.parent.id.should == paint_parent.root.id
ts.parent.id.should == tn.id
tn.children.should have_exactly(1).items
ts.children.should have_exactly(0).items
-
end
# REPEAT THE WHOLE TEST SUITE VIA CSV
@@ -390,10 +395,10 @@
expected_multi_column_taxons
end
- it "should load Products from multiple column csv as per .xls" do
+ it "should load Products from multiple column csv as per .xls", :blah => true do
test_variants_creation('SpreeProductsMultiColumn.csv')
expected_multi_column_properties
expected_multi_column_taxons
\ No newline at end of file