Commit ddf8ec9d671c8bf7efd22307b93e17252d305c49

Authored by Braulio Bhavamitra
1 parent 5be6657f

orders: move features to shopping_cart

plugins/orders/features/purchases.feature
... ... @@ -1,155 +0,0 @@
1   -Feature: purchases
2   - As an enterprise's client
3   - I want to view my purchases
4   - In order to manage the products I bought
5   -
6   - Background:
7   - Given "ShoppingCart" plugin is enabled
8   - And "Orders" plugin is enabled
9   - And "Delivery" plugin is enabled
10   - And the following users
11   - | login | name | email |
12   - | moe | Moe | moe@springfield.com |
13   - | homer | Homer | homer@springfield.com |
14   - And the following enterprise
15   - | identifier | name | owner |
16   - | moes-tavern | Moes Tavern | moe |
17   - And the shopping basket is enabled on "Moes Tavern"
18   - And the following product_categories
19   - | name |
20   - | Beer |
21   - | Snacks |
22   - And the following products
23   - | owner | category | name | price |
24   - | moes-tavern | beer | Duff | 3.00 |
25   - | moes-tavern | snacks | French fries | 7.00 |
26   - And feature "products_for_enterprises" is enabled on environment
27   - And I am logged in as "homer"
28   - And I am on homer's control panel
29   -
30   - @selenium
31   - Scenario: view orders
32   - Given the following purchase from "homer" on "moes-tavern" that is "ordered"
33   - | product | quantity | price |
34   - | Duff | 3 | 3.50 |
35   - | French fries | 1 | 7.00 |
36   - When I follow "Purchases made"
37   - Then I should see "Moes Tavern" within any ".actor-name"
38   - And I should see "17.50" within any ".total"
39   - And I should see "Ordered" within any ".situation"
40   -
41   - @selenium
42   - Scenario: view orders with different status
43   - Given the following purchase from "homer" on "moes-tavern" that is "accepted"
44   - | product | quantity | price |
45   - | Duff | 2 | 3.50 |
46   - And the following purchase from "homer" on "moes-tavern" that is "delivered"
47   - | product | quantity | price |
48   - | French fries | 1 | 7.00 |
49   - When I follow "Purchases made"
50   - Then I should see "Accepted" within any ".situation"
51   - And I should see "Delivered" within any ".situation"
52   -
53   - @selenium
54   - Scenario: filter orders by situation
55   - Given the following purchase from "homer" on "moes-tavern" that is "accepted"
56   - | product | quantity | price |
57   - | Duff | 2 | 3.50 |
58   - And the following purchase from "homer" on "moes-tavern" that is "delivered"
59   - | product | quantity | price |
60   - | French fries | 1 | 7.00 |
61   - And I follow "Purchases made"
62   - And I should see "Accepted" within any ".situation"
63   - And I should see "Delivered" within any ".situation"
64   - And I select "Delivered" from "Status"
65   - When I press "Filter"
66   - Then I should not see "Accepted" within any ".situation"
67   - And I should see "Delivered" within any ".situation"
68   -
69   -
70   - @selenium
71   - Scenario: filter orders by code
72   - Given the following purchase from "homer" on "moes-tavern" that is "ordered"
73   - | product | quantity | price |
74   - | Duff | 2 | 3.50 |
75   - And the following purchase from "homer" on "moes-tavern" that is "ordered"
76   - | product | quantity | price |
77   - | French fries | 1 | 7.00 |
78   - And I follow "Purchases made"
79   - And I should see "1" within any ".code"
80   - And I should see "2" within any ".code"
81   - And I fill in "Code" with "2"
82   - When I press "Filter"
83   - Then I should not see "1" within any ".code"
84   - Then I should see "2" within any ".code"
85   -
86   -
87   - @selenium
88   - Scenario: filter orders by supplier
89   - Given the following users
90   - | login | name | email |
91   - | lovejoy | Reverend Lovejoy | lovejoy@springfield.com |
92   - And the following enterprise
93   - | identifier | name | owner |
94   - | first-church-of-springfield | First Church of Springfield | lovejoy |
95   - And the shopping basket is enabled on "First Church of Springfield"
96   - And the following product_categories
97   - | name |
98   - | Holy |
99   - And the following products
100   - | owner | category | name | price |
101   - | first-church-of-springfield | holy | Wine | 5.00 |
102   - And the following purchase from "homer" on "moes-tavern" that is "ordered"
103   - | product | quantity | price |
104   - | French fries | 1 | 7.00 |
105   - And the following purchase from "homer" on "first-church-of-springfield" that is "ordered"
106   - | product | quantity | price |
107   - | Wine | 5 | 10.50 |
108   - And I follow "Purchases made"
109   - And I should see "Moes Tavern" within any ".actor-name"
110   - And I should see "First Church of Springfield" within any ".actor-name"
111   - And I select "Moes Tavern" from "Supplier"
112   - When I press "Filter"
113   - Then I should see "Moes Tavern" within any ".actor-name"
114   - And I should not see "First Church of Springfield" within any ".actor-name"
115   -
116   - @selenium
117   - Scenario: products checkout
118   - Given "moes-tavern" has the following delivery methods
119   - | delivery_type | name | description | fixed_cost | free_over_price |
120   - | deliver | Bike | My good old bike. | 8.00 | 10.00 |
121   - | pickup | Bar | Come to my bar and drink it! | 0.00 | 0.00 |
122   - And I am on moes-tavern's products page
123   - And I follow "Add to basket"
124   - And I follow "Add to basket"
125   - And I follow "Add to basket"
126   - And I follow "Show basket"
127   - And I follow "Shopping checkout"
128   - And I fill in "Contact phone" with "123456789"
129   - And I select "Bike ($8.00)" from "Option"
130   - And I press "Send buy request"
131   - And I go to homer's control panel
132   - When I follow "Purchases made"
133   - Then I should see "Moes Tavern" within any ".actor-name"
134   -
135   -
136   - @selenium
137   - Scenario: repeat order
138   - Given "moes-tavern" has the following delivery methods
139   - | delivery_type | name | description | fixed_cost | free_over_price |
140   - | deliver | Bike | My good old bike. | 8.00 | 10.00 |
141   - | pickup | Bar | Come to my bar and drink it! | 0.00 | 0.00 |
142   - And the following purchase from "homer" on "moes-tavern" that is "ordered"
143   - | product | quantity | price |
144   - | Duff | 3 | 3.50 |
145   - | French fries | 1 | 7.00 |
146   - And I am on moes-tavern's products page
147   - And I follow "Add to basket"
148   - And I follow "Add to basket"
149   - And I follow "Show basket"
150   - And I follow "Clean basket"
151   - And I follow "Hide basket"
152   - When I follow "checkout"
153   - Then I should see "Shopping checkout"
154   - And I should see "Duff"
155   - And I should see "French fries"
plugins/orders/features/sales.feature
... ... @@ -1,104 +0,0 @@
1   -Feature: sales
2   - As an enterprise's administrator
3   - I want to view my sales
4   - In order to manage the products I sold
5   -
6   - Background:
7   - Given "ShoppingCart" plugin is enabled
8   - And "Orders" plugin is enabled
9   - And the following users
10   - | login | name | email |
11   - | moe | Moe | moe@springfield.com |
12   - | homer | Homer | homer@springfield.com |
13   - And the following enterprise
14   - | identifier | name | owner |
15   - | moes-tavern | Moes Tavern | moe |
16   - And "Moe" is admin of "Moes Tavern"
17   - And the shopping basket is enabled on "Moes Tavern"
18   - And the following product_categories
19   - | name |
20   - | Beer |
21   - | Snacks |
22   - And the following products
23   - | owner | category | name | price |
24   - | moes-tavern | beer | Duff | 3.00 |
25   - | moes-tavern | snacks | French fries | 7.00 |
26   - And feature "products_for_enterprises" is enabled on environment
27   - And I am logged in as "moe"
28   - And I am on moes-tavern's control panel
29   -
30   - @selenium
31   - Scenario: view orders
32   - Given the following purchase from "homer" on "moes-tavern" that is "ordered"
33   - | product | quantity | price |
34   - | Duff | 3 | 3.50 |
35   - | French fries | 1 | 7.00 |
36   - When I follow "Purchases and Sales"
37   - Then I should see "Homer" within any ".actor-name"
38   - And I should see "17.50" within any ".total"
39   - And I should see "Ordered" within any ".situation"
40   -
41   - @selenium
42   - Scenario: view orders with different status
43   - Given the following purchase from "homer" on "moes-tavern" that is "accepted"
44   - | product | quantity | price |
45   - | Duff | 2 | 3.50 |
46   - And the following purchase from "homer" on "moes-tavern" that is "delivered"
47   - | product | quantity | price |
48   - | French fries | 1 | 7.00 |
49   - When I follow "Purchases and Sales"
50   - Then I should see "Accepted" within any ".situation"
51   - And I should see "Delivered" within any ".situation"
52   -
53   - @selenium
54   - Scenario: filter orders by situation
55   - Given the following purchase from "homer" on "moes-tavern" that is "accepted"
56   - | product | quantity | price |
57   - | Duff | 2 | 3.50 |
58   - And the following purchase from "homer" on "moes-tavern" that is "delivered"
59   - | product | quantity | price |
60   - | French fries | 1 | 7.00 |
61   - And I follow "Purchases and Sales"
62   - And I should see "Accepted" within any ".situation"
63   - And I should see "Delivered" within any ".situation"
64   - And I select "Delivered" from "Status"
65   - When I press "Filter"
66   - Then I should not see "Accepted" within any ".situation"
67   - And I should see "Delivered" within any ".situation"
68   -
69   -
70   - @selenium
71   - Scenario: filter orders by code
72   - Given the following purchase from "homer" on "moes-tavern" that is "ordered"
73   - | product | quantity | price |
74   - | Duff | 2 | 3.50 |
75   - And the following purchase from "homer" on "moes-tavern" that is "ordered"
76   - | product | quantity | price |
77   - | French fries | 1 | 7.00 |
78   - And I follow "Purchases and Sales"
79   - And I should see "1" within any ".code"
80   - And I should see "2" within any ".code"
81   - And I fill in "Code" with "2"
82   - When I press "Filter"
83   - Then I should not see "1" within any ".code"
84   - Then I should see "2" within any ".code"
85   -
86   -
87   - @selenium
88   - Scenario: filter orders by consumer
89   - Given the following users
90   - | login | name | email |
91   - | lovejoy | Reverend Lovejoy | lovejoy@springfield.com |
92   - And the following purchase from "homer" on "moes-tavern" that is "ordered"
93   - | product | quantity | price |
94   - | Duff | 5 | 10.50 |
95   - And the following purchase from "lovejoy" on "moes-tavern" that is "ordered"
96   - | product | quantity | price |
97   - | French fries | 1 | 7.00 |
98   - And I follow "Purchases and Sales"
99   - And I should see "Homer" within any ".actor-name"
100   - And I should see "Reverend Lovejoy" within any ".actor-name"
101   - And I select "Homer" from "Consumer"
102   - When I press "Filter"
103   - Then I should see "Homer" within any ".actor-name"
104   - And I should not see "Reverend Lovejoy" within any ".actor-name"
plugins/orders/features/step_definitions/orders_steps.rb
... ... @@ -1,28 +0,0 @@
1   -Given /^the shopping basket is (enabled|disabled) on "([^""]*)"$/ do |status, name|
2   - status = status == 'enabled'
3   - enterprise = Enterprise.find_by_name(name) || Enterprise[name]
4   - settings = enterprise.shopping_cart_settings({:enabled => status})
5   - settings.save!
6   -end
7   -
8   -Given /^"([^""]*)" has the following delivery methods$/ do |name, table|
9   - enterprise = Enterprise.find_by_name(name) || Enterprise[name]
10   - table.hashes.map{|item| item.dup}.each do |item|
11   - delivery_method = enterprise.delivery_methods.build
12   - delivery_method.update_attributes(item)
13   - end
14   -end
15   -
16   -Given /^the following purchase from "([^""]*)" on "([^""]*)" that is "([^""]*)"$/ do |consumer_identifier, enterprise_identifier, status, table|
17   - consumer = Person.find_by_name(consumer_identifier) || Person[consumer_identifier]
18   - enterprise = Enterprise.find_by_name(enterprise_identifier) || Enterprise[enterprise_identifier]
19   - order = OrdersPlugin::Purchase.new(:profile => enterprise, :consumer => consumer, :status => status)
20   -
21   - table.hashes.map{|item| item.dup}.each do |item|
22   - product = enterprise.products.find_by_name item[:product]
23   - item = order.items.build({:product => product, :name => item[:product], :quantity_consumer_ordered => item[:quantity], :price => item[:price]})
24   - item.order = order
25   - end
26   -
27   - order.save!
28   -end
plugins/shopping_cart/features/purchases.feature 0 → 100644
... ... @@ -0,0 +1,155 @@
  1 +Feature: purchases
  2 + As an enterprise's client
  3 + I want to view my purchases
  4 + In order to manage the products I bought
  5 +
  6 + Background:
  7 + Given "ShoppingCart" plugin is enabled
  8 + And "Orders" plugin is enabled
  9 + And "Delivery" plugin is enabled
  10 + And the following users
  11 + | login | name | email |
  12 + | moe | Moe | moe@springfield.com |
  13 + | homer | Homer | homer@springfield.com |
  14 + And the following enterprise
  15 + | identifier | name | owner |
  16 + | moes-tavern | Moes Tavern | moe |
  17 + And the shopping basket is enabled on "Moes Tavern"
  18 + And the following product_categories
  19 + | name |
  20 + | Beer |
  21 + | Snacks |
  22 + And the following products
  23 + | owner | category | name | price |
  24 + | moes-tavern | beer | Duff | 3.00 |
  25 + | moes-tavern | snacks | French fries | 7.00 |
  26 + And feature "products_for_enterprises" is enabled on environment
  27 + And I am logged in as "homer"
  28 + And I am on homer's control panel
  29 +
  30 + @selenium
  31 + Scenario: view orders
  32 + Given the following purchase from "homer" on "moes-tavern" that is "ordered"
  33 + | product | quantity | price |
  34 + | Duff | 3 | 3.50 |
  35 + | French fries | 1 | 7.00 |
  36 + When I follow "Purchases made"
  37 + Then I should see "Moes Tavern" within any ".actor-name"
  38 + And I should see "17.50" within any ".total"
  39 + And I should see "Ordered" within any ".situation"
  40 +
  41 + @selenium
  42 + Scenario: view orders with different status
  43 + Given the following purchase from "homer" on "moes-tavern" that is "accepted"
  44 + | product | quantity | price |
  45 + | Duff | 2 | 3.50 |
  46 + And the following purchase from "homer" on "moes-tavern" that is "delivered"
  47 + | product | quantity | price |
  48 + | French fries | 1 | 7.00 |
  49 + When I follow "Purchases made"
  50 + Then I should see "Accepted" within any ".situation"
  51 + And I should see "Delivered" within any ".situation"
  52 +
  53 + @selenium
  54 + Scenario: filter orders by situation
  55 + Given the following purchase from "homer" on "moes-tavern" that is "accepted"
  56 + | product | quantity | price |
  57 + | Duff | 2 | 3.50 |
  58 + And the following purchase from "homer" on "moes-tavern" that is "delivered"
  59 + | product | quantity | price |
  60 + | French fries | 1 | 7.00 |
  61 + And I follow "Purchases made"
  62 + And I should see "Accepted" within any ".situation"
  63 + And I should see "Delivered" within any ".situation"
  64 + And I select "Delivered" from "Status"
  65 + When I press "Filter"
  66 + Then I should not see "Accepted" within any ".situation"
  67 + And I should see "Delivered" within any ".situation"
  68 +
  69 +
  70 + @selenium
  71 + Scenario: filter orders by code
  72 + Given the following purchase from "homer" on "moes-tavern" that is "ordered"
  73 + | product | quantity | price |
  74 + | Duff | 2 | 3.50 |
  75 + And the following purchase from "homer" on "moes-tavern" that is "ordered"
  76 + | product | quantity | price |
  77 + | French fries | 1 | 7.00 |
  78 + And I follow "Purchases made"
  79 + And I should see "1" within any ".code"
  80 + And I should see "2" within any ".code"
  81 + And I fill in "Code" with "2"
  82 + When I press "Filter"
  83 + Then I should not see "1" within any ".code"
  84 + Then I should see "2" within any ".code"
  85 +
  86 +
  87 + @selenium
  88 + Scenario: filter orders by supplier
  89 + Given the following users
  90 + | login | name | email |
  91 + | lovejoy | Reverend Lovejoy | lovejoy@springfield.com |
  92 + And the following enterprise
  93 + | identifier | name | owner |
  94 + | first-church-of-springfield | First Church of Springfield | lovejoy |
  95 + And the shopping basket is enabled on "First Church of Springfield"
  96 + And the following product_categories
  97 + | name |
  98 + | Holy |
  99 + And the following products
  100 + | owner | category | name | price |
  101 + | first-church-of-springfield | holy | Wine | 5.00 |
  102 + And the following purchase from "homer" on "moes-tavern" that is "ordered"
  103 + | product | quantity | price |
  104 + | French fries | 1 | 7.00 |
  105 + And the following purchase from "homer" on "first-church-of-springfield" that is "ordered"
  106 + | product | quantity | price |
  107 + | Wine | 5 | 10.50 |
  108 + And I follow "Purchases made"
  109 + And I should see "Moes Tavern" within any ".actor-name"
  110 + And I should see "First Church of Springfield" within any ".actor-name"
  111 + And I select "Moes Tavern" from "Supplier"
  112 + When I press "Filter"
  113 + Then I should see "Moes Tavern" within any ".actor-name"
  114 + And I should not see "First Church of Springfield" within any ".actor-name"
  115 +
  116 + @selenium
  117 + Scenario: products checkout
  118 + Given "moes-tavern" has the following delivery methods
  119 + | delivery_type | name | description | fixed_cost | free_over_price |
  120 + | deliver | Bike | My good old bike. | 8.00 | 10.00 |
  121 + | pickup | Bar | Come to my bar and drink it! | 0.00 | 0.00 |
  122 + And I am on moes-tavern's products page
  123 + And I follow "Add to basket"
  124 + And I follow "Add to basket"
  125 + And I follow "Add to basket"
  126 + And I follow "Show basket"
  127 + And I follow "Shopping checkout"
  128 + And I fill in "Contact phone" with "123456789"
  129 + And I select "Bike ($8.00)" from "Option"
  130 + And I press "Send buy request"
  131 + And I go to homer's control panel
  132 + When I follow "Purchases made"
  133 + Then I should see "Moes Tavern" within any ".actor-name"
  134 +
  135 +
  136 + @selenium
  137 + Scenario: repeat order
  138 + Given "moes-tavern" has the following delivery methods
  139 + | delivery_type | name | description | fixed_cost | free_over_price |
  140 + | deliver | Bike | My good old bike. | 8.00 | 10.00 |
  141 + | pickup | Bar | Come to my bar and drink it! | 0.00 | 0.00 |
  142 + And the following purchase from "homer" on "moes-tavern" that is "ordered"
  143 + | product | quantity | price |
  144 + | Duff | 3 | 3.50 |
  145 + | French fries | 1 | 7.00 |
  146 + And I am on moes-tavern's products page
  147 + And I follow "Add to basket"
  148 + And I follow "Add to basket"
  149 + And I follow "Show basket"
  150 + And I follow "Clean basket"
  151 + And I follow "Hide basket"
  152 + When I follow "checkout"
  153 + Then I should see "Shopping checkout"
  154 + And I should see "Duff"
  155 + And I should see "French fries"
... ...
plugins/shopping_cart/features/sales.feature 0 → 100644
... ... @@ -0,0 +1,104 @@
  1 +Feature: sales
  2 + As an enterprise's administrator
  3 + I want to view my sales
  4 + In order to manage the products I sold
  5 +
  6 + Background:
  7 + Given "ShoppingCart" plugin is enabled
  8 + And "Orders" plugin is enabled
  9 + And the following users
  10 + | login | name | email |
  11 + | moe | Moe | moe@springfield.com |
  12 + | homer | Homer | homer@springfield.com |
  13 + And the following enterprise
  14 + | identifier | name | owner |
  15 + | moes-tavern | Moes Tavern | moe |
  16 + And "Moe" is admin of "Moes Tavern"
  17 + And the shopping basket is enabled on "Moes Tavern"
  18 + And the following product_categories
  19 + | name |
  20 + | Beer |
  21 + | Snacks |
  22 + And the following products
  23 + | owner | category | name | price |
  24 + | moes-tavern | beer | Duff | 3.00 |
  25 + | moes-tavern | snacks | French fries | 7.00 |
  26 + And feature "products_for_enterprises" is enabled on environment
  27 + And I am logged in as "moe"
  28 + And I am on moes-tavern's control panel
  29 +
  30 + @selenium
  31 + Scenario: view orders
  32 + Given the following purchase from "homer" on "moes-tavern" that is "ordered"
  33 + | product | quantity | price |
  34 + | Duff | 3 | 3.50 |
  35 + | French fries | 1 | 7.00 |
  36 + When I follow "Purchases and Sales"
  37 + Then I should see "Homer" within any ".actor-name"
  38 + And I should see "17.50" within any ".total"
  39 + And I should see "Ordered" within any ".situation"
  40 +
  41 + @selenium
  42 + Scenario: view orders with different status
  43 + Given the following purchase from "homer" on "moes-tavern" that is "accepted"
  44 + | product | quantity | price |
  45 + | Duff | 2 | 3.50 |
  46 + And the following purchase from "homer" on "moes-tavern" that is "delivered"
  47 + | product | quantity | price |
  48 + | French fries | 1 | 7.00 |
  49 + When I follow "Purchases and Sales"
  50 + Then I should see "Accepted" within any ".situation"
  51 + And I should see "Delivered" within any ".situation"
  52 +
  53 + @selenium
  54 + Scenario: filter orders by situation
  55 + Given the following purchase from "homer" on "moes-tavern" that is "accepted"
  56 + | product | quantity | price |
  57 + | Duff | 2 | 3.50 |
  58 + And the following purchase from "homer" on "moes-tavern" that is "delivered"
  59 + | product | quantity | price |
  60 + | French fries | 1 | 7.00 |
  61 + And I follow "Purchases and Sales"
  62 + And I should see "Accepted" within any ".situation"
  63 + And I should see "Delivered" within any ".situation"
  64 + And I select "Delivered" from "Status"
  65 + When I press "Filter"
  66 + Then I should not see "Accepted" within any ".situation"
  67 + And I should see "Delivered" within any ".situation"
  68 +
  69 +
  70 + @selenium
  71 + Scenario: filter orders by code
  72 + Given the following purchase from "homer" on "moes-tavern" that is "ordered"
  73 + | product | quantity | price |
  74 + | Duff | 2 | 3.50 |
  75 + And the following purchase from "homer" on "moes-tavern" that is "ordered"
  76 + | product | quantity | price |
  77 + | French fries | 1 | 7.00 |
  78 + And I follow "Purchases and Sales"
  79 + And I should see "1" within any ".code"
  80 + And I should see "2" within any ".code"
  81 + And I fill in "Code" with "2"
  82 + When I press "Filter"
  83 + Then I should not see "1" within any ".code"
  84 + Then I should see "2" within any ".code"
  85 +
  86 +
  87 + @selenium
  88 + Scenario: filter orders by consumer
  89 + Given the following users
  90 + | login | name | email |
  91 + | lovejoy | Reverend Lovejoy | lovejoy@springfield.com |
  92 + And the following purchase from "homer" on "moes-tavern" that is "ordered"
  93 + | product | quantity | price |
  94 + | Duff | 5 | 10.50 |
  95 + And the following purchase from "lovejoy" on "moes-tavern" that is "ordered"
  96 + | product | quantity | price |
  97 + | French fries | 1 | 7.00 |
  98 + And I follow "Purchases and Sales"
  99 + And I should see "Homer" within any ".actor-name"
  100 + And I should see "Reverend Lovejoy" within any ".actor-name"
  101 + And I select "Homer" from "Consumer"
  102 + When I press "Filter"
  103 + Then I should see "Homer" within any ".actor-name"
  104 + And I should not see "Reverend Lovejoy" within any ".actor-name"
... ...
plugins/shopping_cart/features/step_definitions/delivery_steps.rb 0 → 100644
... ... @@ -0,0 +1,7 @@
  1 +Given /^"([^""]*)" has the following delivery methods$/ do |name, table|
  2 + enterprise = Enterprise.find_by_name(name) || Enterprise[name]
  3 + table.hashes.map{|item| item.dup}.each do |item|
  4 + delivery_method = enterprise.delivery_methods.build
  5 + delivery_method.update_attributes(item)
  6 + end
  7 +end
... ...
plugins/shopping_cart/features/step_definitions/orders_steps.rb 0 → 100644
... ... @@ -0,0 +1,21 @@
  1 +Given /^"([^""]*)" has the following delivery methods$/ do |name, table|
  2 + enterprise = Enterprise.find_by_name(name) || Enterprise[name]
  3 + table.hashes.map{|item| item.dup}.each do |item|
  4 + delivery_method = enterprise.delivery_methods.build
  5 + delivery_method.update_attributes(item)
  6 + end
  7 +end
  8 +
  9 +Given /^the following purchase from "([^""]*)" on "([^""]*)" that is "([^""]*)"$/ do |consumer_identifier, enterprise_identifier, status, table|
  10 + consumer = Person.find_by_name(consumer_identifier) || Person[consumer_identifier]
  11 + enterprise = Enterprise.find_by_name(enterprise_identifier) || Enterprise[enterprise_identifier]
  12 + order = OrdersPlugin::Purchase.new(:profile => enterprise, :consumer => consumer, :status => status)
  13 +
  14 + table.hashes.map{|item| item.dup}.each do |item|
  15 + product = enterprise.products.find_by_name item[:product]
  16 + item = order.items.build({:product => product, :name => item[:product], :quantity_consumer_ordered => item[:quantity], :price => item[:price]})
  17 + item.order = order
  18 + end
  19 +
  20 + order.save!
  21 +end
... ...
plugins/shopping_cart/features/step_definitions/shopping_cart_steps.rb 0 → 100644
... ... @@ -0,0 +1,7 @@
  1 +Given /^the shopping basket is (enabled|disabled) on "([^""]*)"$/ do |status, name|
  2 + status = status == 'enabled'
  3 + enterprise = Enterprise.find_by_name(name) || Enterprise[name]
  4 + settings = enterprise.shopping_cart_settings({:enabled => status})
  5 + settings.save!
  6 +end
  7 +
... ...
plugins/shopping_cart/step_definitions/delivery_steps.rb
... ... @@ -1,14 +0,0 @@
1   -Given /^the shopping basket is (enabled|disabled) on "([^""]*)"$/ do |status, name|
2   - status = status == 'enabled'
3   - enterprise = Enterprise.find_by_name(name) || Enterprise[name]
4   - settings = enterprise.shopping_cart_settings({:enabled => status})
5   - settings.save!
6   -end
7   -
8   -Given /^"([^""]*)" has the following delivery methods$/ do |name, table|
9   - enterprise = Enterprise.find_by_name(name) || Enterprise[name]
10   - table.hashes.map{|item| item.dup}.each do |item|
11   - delivery_method = enterprise.delivery_methods.build
12   - delivery_method.update_attributes(item)
13   - end
14   -end