opensteam 0.9.2 → 0.9.3

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.
Files changed (213) hide show
  1. data/CHANGELOG +53 -0
  2. data/README.rdoc +19 -10
  3. data/generators/opensteam/opensteam_generator.rb +27 -3
  4. data/generators/opensteam/templates/app/controllers/admin/configurations_controller.rb +85 -0
  5. data/generators/opensteam/templates/app/controllers/admin/inventories_controller.rb +1 -1
  6. data/generators/opensteam/templates/app/controllers/admin/invoices_controller.rb +35 -4
  7. data/generators/opensteam/templates/app/controllers/admin/orders_controller.rb +5 -4
  8. data/generators/opensteam/templates/app/controllers/admin/shipments_controller.rb +6 -3
  9. data/generators/opensteam/templates/app/controllers/admin/shipping_rate_groups_controller.rb +76 -0
  10. data/generators/opensteam/templates/app/controllers/admin/tax_groups_controller.rb +124 -0
  11. data/generators/opensteam/templates/app/controllers/admin/tax_rules_controller.rb +19 -0
  12. data/generators/opensteam/templates/app/controllers/admin/tax_zones_controller.rb +118 -0
  13. data/generators/opensteam/templates/app/controllers/admin/users_controller.rb +1 -1
  14. data/generators/opensteam/templates/app/controllers/admin_controller.rb +20 -0
  15. data/generators/opensteam/templates/app/controllers/carts_controller.rb +118 -0
  16. data/generators/opensteam/templates/app/controllers/checkout_controller.rb +119 -79
  17. data/generators/opensteam/templates/app/controllers/profile_controller.rb +2 -4
  18. data/generators/opensteam/templates/app/controllers/searches_controller.rb +1 -1
  19. data/generators/opensteam/templates/app/controllers/user_sessions_controller.rb +2 -1
  20. data/generators/opensteam/templates/app/controllers/users_controller.rb +10 -3
  21. data/generators/opensteam/templates/app/helpers/admin_helper.rb +15 -1
  22. data/generators/opensteam/templates/app/helpers/checkout_helper.rb +38 -0
  23. data/generators/opensteam/templates/app/helpers/webshop_helper.rb +6 -1
  24. data/generators/opensteam/templates/app/models/zone.rb +18 -0
  25. data/generators/opensteam/templates/app/views/admin/_menu.html.erb +18 -0
  26. data/generators/opensteam/templates/app/views/admin/catalog.html.erb +2 -3
  27. data/generators/opensteam/templates/app/views/admin/configurations/edit.html.erb +20 -0
  28. data/generators/opensteam/templates/app/views/admin/configurations/index.html.erb +22 -0
  29. data/generators/opensteam/templates/app/views/admin/configurations/new.html.erb +19 -0
  30. data/generators/opensteam/templates/app/views/admin/configurations/show.html.erb +13 -0
  31. data/generators/opensteam/templates/app/views/admin/filters/_filter.html.erb +1 -1
  32. data/generators/opensteam/templates/app/views/admin/index.html.erb +0 -19
  33. data/generators/opensteam/templates/app/views/admin/inventories/edit.html.erb +10 -6
  34. data/generators/opensteam/templates/app/views/admin/inventories/new.html.erb +5 -0
  35. data/generators/opensteam/templates/app/views/admin/inventories/show.html.erb +10 -6
  36. data/generators/opensteam/templates/app/views/admin/invoices/_invoice.html.erb +1 -0
  37. data/generators/opensteam/templates/app/views/admin/invoices/_invoice_fields.html.erb +52 -0
  38. data/generators/opensteam/templates/app/views/admin/invoices/new.html.erb +9 -37
  39. data/generators/opensteam/templates/app/views/admin/invoices/show.html.erb +10 -36
  40. data/generators/opensteam/templates/app/views/admin/invoices/show.pdf.prawn +59 -0
  41. data/generators/opensteam/templates/app/views/admin/order_config.html.erb +5 -0
  42. data/generators/opensteam/templates/app/views/admin/order_items/_item_entry.html.erb +9 -0
  43. data/generators/opensteam/templates/app/views/admin/order_items/_items_table.html.erb +16 -0
  44. data/generators/opensteam/templates/app/views/admin/orders/_order.html.erb +9 -9
  45. data/generators/opensteam/templates/app/views/admin/orders/_orders.html.erb +1 -1
  46. data/generators/opensteam/templates/app/views/admin/orders/show.html.erb +25 -9
  47. data/generators/opensteam/templates/app/views/admin/payment_types.html.erb +27 -0
  48. data/generators/opensteam/templates/app/views/admin/payments/_credit_card_payment.html.erb +26 -0
  49. data/generators/opensteam/templates/app/views/admin/payments/_credit_card_payment_info.html.erb +15 -0
  50. data/generators/opensteam/templates/app/views/admin/payments/_direct_debit_payment.html.erb +5 -0
  51. data/generators/opensteam/templates/app/views/admin/shipments/new.html.erb +45 -30
  52. data/generators/opensteam/templates/app/views/admin/shipments/show.html.erb +3 -3
  53. data/generators/opensteam/templates/app/views/admin/shipping_rate_groups/_payment_addition.html.erb +12 -0
  54. data/generators/opensteam/templates/app/views/admin/shipping_rate_groups/_rate.html.erb +16 -0
  55. data/generators/opensteam/templates/app/views/admin/shipping_rate_groups/edit.html.erb +63 -0
  56. data/generators/opensteam/templates/app/views/admin/shipping_rate_groups/index.html.erb +28 -0
  57. data/generators/opensteam/templates/app/views/admin/shipping_rate_groups/new.html.erb +60 -0
  58. data/generators/opensteam/templates/app/views/admin/shipping_rate_groups/show.html.erb +13 -0
  59. data/generators/opensteam/templates/app/views/admin/system.html.erb +5 -0
  60. data/generators/opensteam/templates/app/views/admin/tax_groups/_attributes.html.erb +11 -0
  61. data/generators/opensteam/templates/app/views/admin/tax_groups/_tax_groups.html.erb +17 -0
  62. data/generators/opensteam/templates/app/views/admin/tax_groups/_tax_groups_row.html.erb +12 -0
  63. data/generators/opensteam/templates/app/views/admin/tax_groups/_tax_rule.html.erb +14 -0
  64. data/generators/opensteam/templates/app/views/admin/tax_groups/edit.html.erb +26 -0
  65. data/generators/opensteam/templates/app/views/admin/tax_groups/index.html.erb +8 -0
  66. data/generators/opensteam/templates/app/views/admin/tax_groups/new.html.erb +27 -0
  67. data/generators/opensteam/templates/app/views/admin/tax_groups/show.html.erb +28 -0
  68. data/generators/opensteam/templates/app/views/admin/tax_zones/_attributes.html.erb +18 -0
  69. data/generators/opensteam/templates/app/views/admin/tax_zones/_tax_zone_row.html.erb +13 -0
  70. data/generators/opensteam/templates/app/views/admin/tax_zones/_tax_zones.html.erb +11 -0
  71. data/generators/opensteam/templates/app/views/admin/tax_zones/edit.html.erb +16 -0
  72. data/generators/opensteam/templates/app/views/admin/tax_zones/index.html.erb +16 -0
  73. data/generators/opensteam/templates/app/views/admin/tax_zones/new.html.erb +14 -0
  74. data/generators/opensteam/templates/app/views/admin/tax_zones/show.html.erb +15 -0
  75. data/generators/opensteam/templates/app/views/admin/users.html.erb +0 -1
  76. data/generators/opensteam/templates/app/views/admin/users/show.html.erb +10 -0
  77. data/generators/opensteam/templates/app/views/administration_mailer/order_customer.erb +1 -1
  78. data/generators/opensteam/templates/app/views/carts/_cart.html.erb +7 -0
  79. data/generators/opensteam/templates/app/views/carts/_cart_content.html.erb +45 -0
  80. data/generators/opensteam/templates/app/views/carts/create.rjs +3 -0
  81. data/generators/opensteam/templates/app/views/{cart → carts}/index.html.erb +0 -0
  82. data/generators/opensteam/templates/app/views/carts/update.rjs +11 -0
  83. data/generators/opensteam/templates/app/views/checkout/_address.html.erb +42 -0
  84. data/generators/opensteam/templates/app/views/checkout/_customer.html.erb +31 -0
  85. data/generators/opensteam/templates/app/views/checkout/_edit_checkout.html.erb +42 -0
  86. data/generators/opensteam/templates/app/views/checkout/_new_checkout.html.erb +44 -0
  87. data/generators/opensteam/templates/app/views/checkout/_shipping_buttons.html.erb +8 -0
  88. data/generators/opensteam/templates/app/views/checkout/edit.html.erb +7 -0
  89. data/generators/opensteam/templates/app/views/checkout/new.html.erb +11 -0
  90. data/generators/opensteam/templates/app/views/checkout/outro.html.erb +1 -4
  91. data/generators/opensteam/templates/app/views/checkout/show.html.erb +63 -0
  92. data/generators/opensteam/templates/app/views/common/_header_admin.html.erb +5 -0
  93. data/generators/opensteam/templates/app/views/layouts/admin.html.erb +28 -12
  94. data/generators/opensteam/templates/app/views/layouts/profile.html.erb +2 -2
  95. data/generators/opensteam/templates/app/views/layouts/webshop.html.erb +5 -4
  96. data/generators/opensteam/templates/app/views/payment/_advance_payment_payment.html.erb +1 -0
  97. data/generators/opensteam/templates/app/views/payment/_credit_card_payment.html.erb +37 -0
  98. data/generators/opensteam/templates/app/views/payment/_credit_card_payment_confirmation.html.erb +20 -0
  99. data/generators/opensteam/templates/app/views/payment/_direct_debit_payment.html.erb +5 -0
  100. data/generators/opensteam/templates/app/views/payment/_direct_debit_payment_confirmation.html.erb +5 -0
  101. data/generators/opensteam/templates/app/views/profile/index.html.erb +1 -1
  102. data/generators/opensteam/templates/app/views/profile/infos/edit.html.erb +20 -12
  103. data/generators/opensteam/templates/app/views/profile/infos/edit_password.html.erb +16 -12
  104. data/generators/opensteam/templates/app/views/profile/orders/_order.html.erb +1 -1
  105. data/generators/opensteam/templates/app/views/profile/orders/show.html.erb +10 -7
  106. data/generators/opensteam/templates/app/views/webshop/_inventory_content.html.erb +1 -0
  107. data/generators/opensteam/templates/app/views/webshop/show.html.erb +3 -1
  108. data/generators/opensteam/templates/config/initializers/init_states.rb +13 -24
  109. data/generators/opensteam/templates/config/initializers/opensteam.rb +41 -0
  110. data/generators/opensteam/templates/config/initializers/opensteam_model_tables.rb +49 -10
  111. data/generators/opensteam/templates/config/initializers/opensteam_security.rb +8 -0
  112. data/generators/opensteam/templates/config/initializers/payment_process.rb +37 -0
  113. data/generators/opensteam/templates/db/migrate/20080609095723_create_addresses.rb +8 -2
  114. data/generators/opensteam/templates/db/migrate/20080609095726_create_inventories.rb +6 -3
  115. data/generators/opensteam/templates/db/migrate/20080609095728_create_order_items.rb +12 -1
  116. data/generators/opensteam/templates/db/migrate/20080609095729_create_orders.rb +8 -12
  117. data/generators/opensteam/templates/db/migrate/20080609095730_create_payment_types.rb +2 -0
  118. data/generators/opensteam/templates/db/migrate/20080714131513_create_invoices.rb +2 -1
  119. data/generators/opensteam/templates/db/migrate/20080714131650_create_shipments.rb +3 -1
  120. data/generators/opensteam/templates/db/migrate/20080808075247_create_containers.rb +30 -0
  121. data/generators/opensteam/templates/db/migrate/20080808083011_create_container_items.rb +25 -0
  122. data/generators/opensteam/templates/db/migrate/20080812102727_create_tax_zones.rb +16 -0
  123. data/generators/opensteam/templates/db/migrate/20080812102858_create_tax_rules.rb +15 -0
  124. data/generators/opensteam/templates/db/migrate/20080812102956_create_tax_groups.rb +14 -0
  125. data/generators/opensteam/templates/db/migrate/20080831181436_create_configurations.rb +15 -0
  126. data/generators/opensteam/templates/db/migrate/20080903131506_create_payments.rb +22 -0
  127. data/generators/opensteam/templates/db/migrate/20080904133625_create_payment_transactions.rb +24 -0
  128. data/generators/opensteam/templates/db/migrate/20080916102341_create_zones.rb +19 -0
  129. data/generators/opensteam/templates/db/migrate/20080916134340_create_region_shipping_rates.rb +18 -0
  130. data/generators/opensteam/templates/db/migrate/20080916134523_create_shipping_rate_groups.rb +18 -0
  131. data/generators/opensteam/templates/db/migrate/20080916135226_create_shipping_payment_additions.rb +20 -0
  132. data/generators/opensteam/templates/db/migrate/20080916135228_init_opensteam_config.rb +60 -0
  133. data/generators/opensteam/templates/public/images/opensteam_black.jpg +0 -0
  134. data/generators/opensteam/templates/public/images/pdf.png +0 -0
  135. data/generators/opensteam/templates/public/images/shader.png +0 -0
  136. data/generators/opensteam/templates/public/index.html +1 -0
  137. data/generators/opensteam/templates/public/javascripts/opensteam.js +21 -21
  138. data/generators/opensteam/templates/public/stylesheets/opensteam_admin.css +291 -0
  139. data/generators/opensteam/templates/public/stylesheets/opensteam_white.css +47 -11
  140. data/generators/opensteam/templates/tasks/opensteam.rake +2 -12
  141. data/generators/opensteam/templates/test/fixtures/addresses.yml +26 -0
  142. data/generators/opensteam/templates/test/fixtures/configurations.yml +29 -0
  143. data/generators/opensteam/templates/test/fixtures/inventories.yml +32 -15
  144. data/generators/opensteam/templates/test/fixtures/profiles.yml +21 -0
  145. data/generators/opensteam/templates/test/fixtures/region_shipping_rates.yml +33 -0
  146. data/generators/opensteam/templates/test/fixtures/shipping_payment_additions.yml +91 -0
  147. data/generators/opensteam/templates/test/fixtures/shipping_rate_groups.yml +25 -0
  148. data/generators/opensteam/templates/test/fixtures/tax_groups.yml +13 -0
  149. data/generators/opensteam/templates/test/fixtures/tax_rules.yml +29 -0
  150. data/generators/opensteam/templates/test/fixtures/tax_zones.yml +33 -0
  151. data/generators/opensteam/templates/test/fixtures/users.yml +26 -0
  152. data/generators/opensteam/templates/test/fixtures/zones.yml +2707 -0
  153. data/generators/opensteam/templates/test/functional/carts_controller_test.rb +103 -0
  154. data/generators/opensteam/templates/test/test_helper.rb +38 -0
  155. data/generators/opensteam/templates/test/unit/container_test.rb +71 -0
  156. data/generators/opensteam/templates/test/unit/order_test.rb +93 -0
  157. data/generators/opensteam/templates/test/unit/payment_test.rb +220 -0
  158. data/generators/opensteam/templates/test/unit/product_test.rb +158 -0
  159. data/generators/opensteam/templates/vendor/plugins/prawnto/.gitignore +3 -0
  160. data/generators/opensteam/templates/vendor/plugins/prawnto/MIT-LICENSE +20 -0
  161. data/generators/opensteam/templates/vendor/plugins/prawnto/README +12 -0
  162. data/generators/opensteam/templates/vendor/plugins/prawnto/Rakefile +22 -0
  163. data/generators/opensteam/templates/vendor/plugins/prawnto/init.rb +6 -0
  164. data/generators/opensteam/templates/vendor/plugins/prawnto/lib/prawnto.rb +13 -0
  165. data/generators/opensteam/templates/vendor/plugins/prawnto/lib/prawnto/action_controller.rb +47 -0
  166. data/generators/opensteam/templates/vendor/plugins/prawnto/lib/prawnto/template_handler/base.rb +75 -0
  167. data/generators/opensteam/templates/vendor/plugins/prawnto/lib/prawnto/template_handler/raw.rb +54 -0
  168. data/generators/opensteam/templates/vendor/plugins/prawnto/tasks/prawnto_tasks.rake +4 -0
  169. data/generators/opensteam/templates/vendor/plugins/prawnto/test/action_controller_test.rb +36 -0
  170. data/generators/opensteam/templates/vendor/plugins/prawnto/test/base_template_handler_test.rb +58 -0
  171. data/generators/opensteam/templates/vendor/plugins/prawnto/test/raw_template_handler_test.rb +163 -0
  172. data/generators/opensteam/templates/vendor/plugins/prawnto/test/template_handler_test_mocks.rb +83 -0
  173. data/generators/opensteam_product/templates/views/admin/_attributes.html.erb +8 -3
  174. data/generators/opensteam_product/templates/views/admin/_inventories.html.erb +2 -0
  175. data/lib/opensteam.rb +0 -1
  176. data/lib/opensteam/base.rb +2 -1
  177. data/lib/opensteam/checkout.rb +3 -12
  178. data/lib/opensteam/config.rb +50 -2
  179. data/lib/opensteam/container.rb +196 -0
  180. data/lib/opensteam/extension_base.rb +19 -1
  181. data/lib/opensteam/finder.rb +1 -1
  182. data/lib/opensteam/helpers/config_table_helper.rb +18 -6
  183. data/lib/opensteam/initializer.rb +24 -4
  184. data/lib/opensteam/inventory_base.rb +6 -1
  185. data/lib/opensteam/invoice_base.rb +12 -13
  186. data/lib/opensteam/money.rb +230 -0
  187. data/lib/opensteam/order_base.rb +122 -48
  188. data/lib/opensteam/payment.rb +225 -0
  189. data/lib/opensteam/payment/advance_payment.rb +34 -0
  190. data/lib/opensteam/payment/credit_card_payment.rb +217 -0
  191. data/lib/opensteam/payment/direct_debit_payment.rb +53 -0
  192. data/lib/opensteam/product_base.rb +48 -12
  193. data/lib/opensteam/security.rb +54 -0
  194. data/lib/opensteam/shipment_base.rb +214 -6
  195. data/lib/opensteam/shopping_cart.rb +20 -300
  196. data/lib/opensteam/state_logic.rb +5 -3
  197. data/lib/opensteam/state_machine.rb +8 -3
  198. data/lib/opensteam/user_base.rb +48 -6
  199. data/lib/opensteam/version.rb +1 -1
  200. metadata +122 -16
  201. data/generators/opensteam/templates/app/controllers/cart_controller.rb +0 -94
  202. data/generators/opensteam/templates/app/views/admin/orders/_event.html.erb +0 -5
  203. data/generators/opensteam/templates/app/views/admin/orders/_order_item.html.erb +0 -10
  204. data/generators/opensteam/templates/app/views/cart/_cart.html.erb +0 -8
  205. data/generators/opensteam/templates/app/views/cart/_cart_content.html.erb +0 -20
  206. data/generators/opensteam/templates/app/views/cart/update.rjs +0 -1
  207. data/generators/opensteam/templates/app/views/checkout/payment.html.erb +0 -8
  208. data/generators/opensteam/templates/app/views/checkout/shipping.html.erb +0 -45
  209. data/generators/opensteam/templates/app/views/checkout/show_cart.html.erb +0 -13
  210. data/generators/opensteam/templates/app/views/checkout/update_cart_content.rjs +0 -2
  211. data/generators/opensteam/templates/app/views/profile/orders/_order_item.html.erb +0 -10
  212. data/generators/opensteam/templates/db/migrate/20080609095725_create_dummy_users.rb +0 -21
  213. data/lib/opensteam/cart_base.rb +0 -227
@@ -0,0 +1,103 @@
1
+ require 'test_helper'
2
+
3
+ class CartsControllerTest < ActionController::TestCase
4
+ # Replace this with your real tests.
5
+
6
+
7
+
8
+ def test_should_get_index
9
+ get :index
10
+ assert_response :success
11
+
12
+ assert( assigns(:cart) )
13
+ assert_equal(Cart, assigns(:cart).class )
14
+ end
15
+
16
+ def test_should_create_item
17
+ post :create, :id => inventories( :inventory_00042).id
18
+ assert_response :redirect
19
+ #follow_redirect
20
+ #assert_response :success
21
+
22
+ assert( assigns(:cart), "not cart assigned")
23
+ assert_equal(1, assigns(:cart).items.size)
24
+ end
25
+
26
+ def test_should_update_incr_item
27
+ post :create, :id => inventories( :inventory_00042).id
28
+ assert_response :redirect
29
+ #follow_redirect
30
+ #assert_response :success
31
+
32
+ post :update, :id => 0, :incr => 1
33
+ assert_response :redirect
34
+ #follow_redirect
35
+ #assert_response :success
36
+
37
+ assert(assigns(:cart), "cart not assigned")
38
+ assert_equal(1, assigns(:cart).items.size)
39
+ assert_equal(2, assigns(:cart).items.first.quantity)
40
+
41
+
42
+ end
43
+
44
+ def test_should_update_decr_item
45
+ post :create, :id => inventories( :inventory_00042).id
46
+ assert_response :redirect
47
+ #follow_redirect
48
+ #assert_response :success
49
+
50
+ post :update, :id => 0, :incr => 1
51
+ assert_response :redirect
52
+ #follow_redirect
53
+ #assert_response :success
54
+
55
+
56
+ post :update, :id => 0, :decr => 1
57
+ assert_response :redirect
58
+ #follow_redirect
59
+ #assert_response :success
60
+
61
+ assert(assigns(:cart), "cart not assigned")
62
+ assert_equal(1, assigns(:cart).items.size)
63
+ assert_equal(1, assigns(:cart).items.first.quantity)
64
+
65
+ end
66
+
67
+ def test_should_set_quantity
68
+ post :create, :id => inventories( :inventory_00042).id
69
+ assert_response :redirect
70
+ #follow_redirect
71
+ #assert_response :success
72
+
73
+ post :update, :quantity => {"0" => "123" }
74
+ assert_response :redirect
75
+ #follow_redirect
76
+ #assert_response :success
77
+
78
+ assert(assigns(:cart), "cart not assigned")
79
+ assert_equal(1, assigns(:cart).items.size)
80
+ assert_equal(123, assigns(:cart).items.first.quantity)
81
+ end
82
+
83
+
84
+
85
+ def test_should_get_show
86
+ post :create, :id => inventories( :inventory_00042).id
87
+ assert_response :redirect
88
+ #follow_redirect
89
+ #assert_response :success
90
+
91
+ get :show, :id => 0
92
+ assert_response :success
93
+
94
+ assert_not_nil(assigns(:inventory))
95
+ assert_not_nil(assigns(:product))
96
+ assert_not_nil(assigns(:cart_details))
97
+ end
98
+
99
+
100
+ def test_truth
101
+ assert true
102
+ end
103
+ end
@@ -0,0 +1,38 @@
1
+ ENV["RAILS_ENV"] = "test"
2
+ require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
3
+ require 'test_help'
4
+
5
+ class Test::Unit::TestCase
6
+ # Transactional fixtures accelerate your tests by wrapping each test method
7
+ # in a transaction that's rolled back on completion. This ensures that the
8
+ # test database remains unchanged so your fixtures don't have to be reloaded
9
+ # between every test method. Fewer database queries means faster tests.
10
+ #
11
+ # Read Mike Clark's excellent walkthrough at
12
+ # http://clarkware.com/cgi/blosxom/2005/10/24#Rails10FastTesting
13
+ #
14
+ # Every Active Record database supports transactions except MyISAM tables
15
+ # in MySQL. Turn off transactional fixtures in this case; however, if you
16
+ # don't care one way or the other, switching from MyISAM to InnoDB tables
17
+ # is recommended.
18
+ #
19
+ # The only drawback to using transactional fixtures is when you actually
20
+ # need to test transactions. Since your test is bracketed by a transaction,
21
+ # any transactions started in your code will be automatically rolled back.
22
+ self.use_transactional_fixtures = true
23
+
24
+ # Instantiated fixtures are slow, but give you @david where otherwise you
25
+ # would need people(:david). If you don't want to migrate your existing
26
+ # test cases which use the @david style and don't mind the speed hit (each
27
+ # instantiated fixtures translates to a database query per test method),
28
+ # then set this back to true.
29
+ self.use_instantiated_fixtures = false
30
+
31
+ # Setup all fixtures in test/fixtures/*.(yml|csv) for all tests in alphabetical order.
32
+ #
33
+ # Note: You'll currently still have to declare fixtures explicitly in integration tests
34
+ # -- they do not yet inherit this setting
35
+ fixtures :all
36
+
37
+ # Add more helper methods to be used by all tests here...
38
+ end
@@ -0,0 +1,71 @@
1
+ require 'test_helper'
2
+
3
+ class ContainerTest < ActiveSupport::TestCase
4
+
5
+ fixtures :inventories
6
+
7
+ def setup
8
+ @cart = Cart.create
9
+ end
10
+
11
+ def test_add_to_cart_and_increment
12
+
13
+ i = @cart.push( inventories( :inventory_00042) )
14
+ assert_not_nil(i)
15
+
16
+ i = @cart.push( inventories(:inventory_00042) )
17
+ assert_not_nil(i)
18
+ assert( i )
19
+ assert_equal( 2, @cart.items.first.quantity )
20
+ end
21
+
22
+
23
+ def test_find_item
24
+ i = @cart.push( inventories( :inventory_00042) )
25
+ assert_not_nil(i)
26
+ @cart.reload
27
+ assert_equal(i, @cart[0] )
28
+ assert_equal(i, @cart.find_item( inventories( :inventory_00042) ) )
29
+ end
30
+
31
+
32
+ def test_item_incr_and_decr_with_quantity_check
33
+ i = @cart.push( inventories( :inventory_00042) )
34
+ assert_not_nil(i)
35
+
36
+ assert( i.incr )
37
+ assert_equal(2, @cart.items.first.quantity )
38
+
39
+ assert(i.decr)
40
+ assert_equal(1, i.quantity)
41
+
42
+ assert(i.decr)
43
+ assert(@cart.reload.items.empty?, "items not empty!")
44
+ end
45
+
46
+
47
+ def test_item_set_quantity
48
+ i = @cart.push( inventories( :inventory_00042) )
49
+ assert_not_nil(i)
50
+
51
+ assert( i.set_quantity(10) )
52
+ assert_equal(10, i.quantity )
53
+
54
+ assert( i.set_quantity(3) )
55
+ assert_equal(3, i.quantity )
56
+
57
+ assert( i.set_quantity(-13) )
58
+ assert(@cart.reload.items.empty?, "items not empty!")
59
+ end
60
+
61
+
62
+
63
+
64
+
65
+
66
+
67
+ # Replace this with your real tests.
68
+ def test_truth
69
+ assert true
70
+ end
71
+ end
@@ -0,0 +1,93 @@
1
+ require 'test_helper'
2
+ Address = Opensteam::UserBase::Address
3
+ #User = Opensteam::UserBase::User
4
+ Profile = Opensteam::UserBase::Profile
5
+
6
+ class OrderTest < ActiveSupport::TestCase
7
+
8
+
9
+ fixtures :all
10
+
11
+
12
+ def setup
13
+ @payment_address = addresses(:address_00001)
14
+ @shipping_address = addresses(:address_00002)
15
+ @user = users( :user_00002 )
16
+ end
17
+
18
+ def test_order_new
19
+ assert_not_nil(new_order)
20
+ assert_equal([], new_order.items)
21
+ end
22
+
23
+
24
+ def test_save_and_addresses_and_customer_association
25
+
26
+ @order = new_order
27
+ assert( @order.save, "Could not save order")
28
+
29
+ @order.reload
30
+ assert_equal(@user, @order.customer)
31
+ assert_equal(@shipping_address, @order.shipping_address)
32
+ assert_equal(@payment_address, @order.payment_address)
33
+
34
+ end
35
+
36
+
37
+ def test_move_items_from_cart_to_order
38
+ @inventory = inventories( :inventory_00042 )
39
+
40
+
41
+ @order = new_order
42
+ assert @order.save
43
+
44
+ @cart = init_cart
45
+ @cart.items.each do |i|
46
+ i.container = @order
47
+ i.save
48
+ end
49
+
50
+ assert( @cart.reload.items.empty? )
51
+ assert( @order.save )
52
+ @order.reload
53
+ assert( !@order.items.empty? )
54
+ end
55
+
56
+
57
+
58
+ def test_order_create_and_initial_state
59
+ @order = new_order
60
+ assert @order.save
61
+
62
+ assert_equal( @order.class.initialstate.to_sym, @order.state.to_sym )
63
+ end
64
+
65
+
66
+
67
+
68
+
69
+ def init_cart
70
+ returning( Cart.create ) do |cart|
71
+ cart.push( inventories( :inventory_00042 ) )
72
+ end
73
+ end
74
+
75
+
76
+ def new_order
77
+ Opensteam::OrderBase::Order.new do |o|
78
+ o.customer = @user
79
+ o.payment_type = "bogus"
80
+ o.shipping_type = "Post"
81
+ o.real_shipping_address = @shipping_address
82
+ o.real_payment_address = @payment_address
83
+ end
84
+ end
85
+
86
+
87
+
88
+
89
+ # Replace this with your real tests.
90
+ def test_truth
91
+ assert true
92
+ end
93
+ end
@@ -0,0 +1,220 @@
1
+ require 'test_helper'
2
+
3
+
4
+ Opensteam::Payment::CreditCardPayment.class_eval do
5
+
6
+ def execute_payment
7
+ return true
8
+ end
9
+
10
+
11
+ end
12
+
13
+ class PaymentTest < ActiveSupport::TestCase
14
+ # Replace this with your real tests.
15
+
16
+ def test_payment_base_class
17
+
18
+ assert_equal( Array, Opensteam::Payment::Base.payment_types.class )
19
+ assert_equal(:base, Opensteam::Payment::Base.payment_id )
20
+
21
+ assert_equal(Opensteam::Payment::CreditCardPayment,
22
+ Opensteam::Payment::Base[ :credit_card ] )
23
+
24
+ end
25
+
26
+
27
+ def test_class_inheritable_attribute_for_payment_types
28
+ assert_equal( :credit_card, Opensteam::Payment::CreditCardPayment.payment_id )
29
+ assert_equal( :base, Opensteam::Payment::Base.payment_id )
30
+
31
+ Opensteam::Payment::Base.payment_id = "buha"
32
+ assert_equal( :credit_card, Opensteam::Payment::CreditCardPayment.payment_id )
33
+ assert_equal( "buha", Opensteam::Payment::Base.payment_id )
34
+ Opensteam::Payment::Base.payment_id = :base
35
+
36
+ end
37
+
38
+
39
+ def test_payment_gateway
40
+ assert(ActiveMerchant::Billing::Base.test?, "ActiveMerchant not in test mode ..")
41
+ cc = Opensteam::Payment::CreditCardPayment.new do |c|
42
+ c.credit_card = credit_card
43
+ end
44
+ assert(cc.save, "Could not save CreditCardPayment Object")
45
+ assert_equal( Opensteam::Payment::CreditCardPayment.gateway_class, cc.gateway.class )
46
+ assert(cc.gateway.test?, "gateway not in test mode" )
47
+ end
48
+
49
+
50
+
51
+ def test_payment_and_credit_card_association
52
+ ccp = Opensteam::Payment::CreditCardPayment.create
53
+ assert_equal([], ccp.transactions )
54
+ ccp = Opensteam::Payment::CreditCardPayment.create
55
+ cchash = { :first_name => 'testfirstname', :last_name => 'testlastname',
56
+ :number => '4111111111111111', :year => 2010, :month => 10, :brand => 'visa' }
57
+
58
+ cc = credit_card
59
+
60
+ if cc.class != ActiveMerchant::Billing::CreditCard
61
+ assert(cc.save )
62
+ end
63
+
64
+
65
+ ccp.credit_card = cc
66
+ assert(ccp.save, "Could not save CreditCardPayment")
67
+ assert_equal(cc, ccp.credit_card)
68
+
69
+ end
70
+
71
+
72
+
73
+ def test_successfull_transaction_authorization_with_bogus_gateway
74
+ Opensteam::Payment::CreditCardPayment.gateway_class = ActiveMerchant::Billing::BogusGateway
75
+
76
+ ccp = Opensteam::Payment::CreditCardPayment.new do |c|
77
+ c.credit_card = credit_card( :number => "1" )
78
+ end
79
+ assert ccp.save, "Could not save Payment Object"
80
+
81
+ auth = ccp.authorize( 1.00 )
82
+
83
+ assert auth.success
84
+ assert_equal :authorize, auth.action.to_sym
85
+ assert_equal 100, auth.amount
86
+ assert_equal ActiveMerchant::Billing::BogusGateway::SUCCESS_MESSAGE, auth.message
87
+ assert_equal ActiveMerchant::Billing::BogusGateway::AUTHORIZATION, auth[:reference]
88
+
89
+ #assert_equal( :payment_authorized, ccp.state.to_sym )
90
+
91
+ end
92
+
93
+
94
+ def test_failed_transaction_authorization_with_bogus_gateway
95
+ Opensteam::Payment::CreditCardPayment.gateway_class = ActiveMerchant::Billing::BogusGateway
96
+
97
+ ccp = Opensteam::Payment::CreditCardPayment.new do |c|
98
+ c.credit_card = credit_card( :number => "2" )
99
+ end
100
+ assert ccp.save, "Could not save Payment Object"
101
+
102
+ auth = ccp.authorize( 1.00 )
103
+
104
+ assert !auth.success
105
+ assert_equal :authorize, auth.action.to_sym
106
+ assert_equal ActiveMerchant::Billing::BogusGateway::FAILURE_MESSAGE, auth.message
107
+
108
+ #assert_equal( :payment_declined, ccp.state.to_sym )
109
+
110
+ end
111
+
112
+
113
+ def test_exception_during_transaction_authorization_with_bogus_gateway
114
+ Opensteam::Payment::CreditCardPayment.gateway_class = ActiveMerchant::Billing::BogusGateway
115
+
116
+ ccp = Opensteam::Payment::CreditCardPayment.new do |c|
117
+ c.credit_card = credit_card( :number => "3" )
118
+ end
119
+ assert ccp.save, "Could not save Payment Object"
120
+
121
+ auth = ccp.authorize( 1.00 )
122
+
123
+ assert !auth.success
124
+ assert_equal :authorize, auth.action.to_sym
125
+ assert_equal ActiveMerchant::Billing::BogusGateway::ERROR_MESSAGE, auth.message
126
+ end
127
+
128
+
129
+ def test_successfull_capture_transaction_with_bogus_gateway
130
+ Opensteam::Payment::CreditCardPayment.gateway_class = ActiveMerchant::Billing::BogusGateway
131
+
132
+ ccp = Opensteam::Payment::CreditCardPayment.new { |c| c.credit_card = credit_card }
133
+
134
+ assert(ccp.save, "Could not save Payment Object")
135
+
136
+ capt = ccp.capture( 1.00, '123' )
137
+
138
+ assert capt.success
139
+ assert_equal :capture, capt.action.to_sym
140
+ assert_equal ActiveMerchant::Billing::BogusGateway::SUCCESS_MESSAGE, capt.message
141
+ end
142
+
143
+
144
+
145
+ def test_failed_capture_transaction_with_bogus_gateway
146
+ Opensteam::Payment::CreditCardPayment.gateway_class = ActiveMerchant::Billing::BogusGateway
147
+ ccp = Opensteam::Payment::CreditCardPayment.new( :set_credit_card => credit_card_hash )
148
+ assert(ccp.save, "Could not save Payment Object")
149
+
150
+ capt = ccp.capture( 1.00, '2' )
151
+
152
+ assert !capt.success
153
+ assert_equal :capture, capt.action.to_sym
154
+ assert_equal ActiveMerchant::Billing::BogusGateway::FAILURE_MESSAGE, capt.message
155
+ end
156
+
157
+
158
+
159
+
160
+ def test_exception_during_capture_transaction_with_bogus_gateway
161
+ Opensteam::Payment::CreditCardPayment.gateway_class = ActiveMerchant::Billing::BogusGateway
162
+ ccp = Opensteam::Payment::CreditCardPayment.new
163
+ ccp.credit_card = credit_card
164
+ assert(ccp.save, "Could not save Payment Object")
165
+
166
+ capt = ccp.capture( 1.00, '1' )
167
+
168
+ assert !capt.success
169
+ assert_equal :capture, capt.action.to_sym
170
+ assert_equal ActiveMerchant::Billing::BogusGateway::CAPTURE_ERROR_MESSAGE,
171
+ capt.message
172
+ end
173
+
174
+
175
+
176
+ def test_create_credit_card_through_payment_object
177
+ Opensteam::Payment::CreditCardPayment.gateway_class = ActiveMerchant::Billing::BogusGateway
178
+ ccp = Opensteam::Payment::CreditCardPayment.new
179
+ ccp.set_credit_card = credit_card_hash
180
+ assert( ccp.save )
181
+ assert_not_nil( ccp.credit_card )
182
+ assert( ccp.errors.empty? )
183
+ assert( ccp.credit_card.errors.empty? )
184
+
185
+
186
+ end
187
+
188
+ def test_create_credit_card_through_payment_object_with_errors
189
+ Opensteam::Payment::CreditCardPayment.gateway_class = ActiveMerchant::Billing::BogusGateway
190
+ ccp = Opensteam::Payment::CreditCardPayment.new
191
+ ccp.set_credit_card = credit_card_hash( :month => "" )
192
+ assert( !ccp.save )
193
+ end
194
+
195
+
196
+
197
+ def credit_card_hash( options = {} )
198
+ {
199
+ :first_name => "testfirstname",
200
+ :last_name => "testlastname",
201
+ :number => '4111111111111111',
202
+ :month => 10,
203
+ :year => 2010,
204
+ :type => 'bogus'
205
+ }.update( options )
206
+ end
207
+
208
+
209
+ def credit_card( options = {} )
210
+ #Opensteam::Payment::CreditCard.new( credit_card_hash( options ) )
211
+ ActiveMerchant::Billing::CreditCard.new( credit_card_hash( options ) )
212
+ end
213
+
214
+
215
+
216
+
217
+ def test_truth
218
+ assert true
219
+ end
220
+ end