Advertisement
Guest User

Untitled

a guest
May 27th, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.31 KB | None | 0 0
  1. def test_create_purchase_order
  2. # Login as a clerk
  3. user = users(:clerk_1)
  4. get_via_redirect '/login'
  5. assert_redirected_to '/login/login'
  6. post_via_redirect '/login/login', :user => {:login => user.email, :password => 'secretive' }
  7. assert_redirected_to '/'
  8.  
  9. # Check the units can be changed
  10. assert user.company.units == 'kg'
  11. post_via_redirect '/data_entry/update_units', {:units => 'tonne'}
  12. assert_redirected_to :action => :index
  13. user.company.reload
  14. assert user.company.units == 'tonne'
  15.  
  16. # You need to scan the response here to find the relevant periods!!!
  17. period = periods(:period_one)
  18. category = categories(:one)
  19. fishery_profile = fishery_profiles(:fishery_profile_30)
  20. purchase_order = purchase_orders(:one)
  21. second_purchase_order = purchase_orders(:two)
  22.  
  23. # create new purchase order with zero volume
  24. xml_http_request :post, "/data_entry/create_purchase_order",:category_id => category.name,:volume => 0,
  25. :fishery_profile_id => fishery_profile.name,:period_id => period.name,:po_action =>"create",:overwrite_duplicate =>"false"
  26. assert_equal "As the volume supplied was 0, the purchase order was not created.", flash.now[:message]
  27.  
  28. # create new purchase order with non zero volume
  29. xml_http_request :post, "/data_entry/create_purchase_order",:category_id => category.name,:volume => 20,
  30. :fishery_profile_id => fishery_profile.name,:period_id => period.name,:po_action =>"create",:overwrite_duplicate =>"false"
  31. assert_select_rjs :replace_html,'data_entry'
  32. assert_equal "Purchase order for period #{period.name} created successfully.", flash.now[:message]
  33.  
  34. # update purchase order with non zero volume
  35. xml_http_request :post, "/data_entry/create_purchase_order",:volume => 40,
  36. :po_id => purchase_order.id ,:po_action =>"update"
  37. assert_not_equal purchase_order.volume, PurchaseOrder.find_by_id(purchase_order.id).volume
  38. assert_equal "Existing purchase order for period #{purchase_order.period.name} updated successfully.", flash.now[:message]
  39.  
  40. # update purchase order with volume above 200 tones
  41. xml_http_request :post, "/data_entry/create_purchase_order",:category_id => category.name,:volume => 210,
  42. :po_id => purchase_order.id ,:po_action =>"update"
  43. assert_not_equal purchase_order.volume, PurchaseOrder.find_by_id(purchase_order.id).volume
  44. assert_equal "Data for #{period.name.to_s}, #{purchase_order.fishery_profile.name} for category #{category.name} - are you sure 210.0 is entered in metric tonnes?", flash.now[:warnings][0]
  45.  
  46. # duplicate the purchase order and set overwrite_duplicate as true with non zero volume
  47. xml_http_request :post, "/data_entry/create_purchase_order",:category_id => purchase_order.category.name,
  48. :volume => 20,:fishery_profile_id => purchase_order.fishery_profile.name, :period_id => purchase_order.periodic_purchase.period.name,
  49. :po_action =>"create"
  50. assert_response :success
  51. xml_http_request :post, "/data_entry/create_purchase_order",:category_id => purchase_order.category.name,
  52. :volume => 30,:fishery_profile_id => purchase_order.fishery_profile.name, :period_id => purchase_order.periodic_purchase.period.name,
  53. :po_action =>"create" ,:overwrite_duplicate =>"true"
  54. assert_equal 30, PurchaseOrder.find_by_id(purchase_order.id).volume
  55. assert_equal "Purchase order for period #{purchase_order.periodic_purchase.period.name} created successfully.", flash.now[:message]
  56.  
  57. # duplicate the purchase order and set overwrite_duplicate as false
  58. xml_http_request :post, "/data_entry/create_purchase_order",:category_id => purchase_order.category.name,
  59. :volume => 40,:fishery_profile_id => purchase_order.fishery_profile.name, :period_id => purchase_order.periodic_purchase.period.name,
  60. :po_action =>"create"
  61. assert_response :success
  62. assert_not_equal 40.0, PurchaseOrder.find_by_id(purchase_order.id).volume
  63.  
  64. # duplicate the purchase order and set overwrite_duplicate as true with zero volume
  65. xml_http_request :post, "/data_entry/create_purchase_order",:category_id => purchase_order.category.name,
  66. :volume => 20,:fishery_profile_id => purchase_order.fishery_profile.name, :period_id => purchase_order.periodic_purchase.period.name,
  67. :po_action =>"create"
  68. assert_response :success
  69. xml_http_request :post, "/data_entry/create_purchase_order",:category_id => purchase_order.category.name,
  70. :volume => 0,:fishery_profile_id => purchase_order.fishery_profile.name, :period_id => purchase_order.periodic_purchase.period.name,
  71. :po_action =>"create" ,:overwrite_duplicate =>"true"
  72. assert_select_rjs :remove, "purchase_order_#{purchase_order.id}"
  73. assert_equal "As the volume supplied was 0, the purchase order was deleted.", flash.now[:message]
  74.  
  75. # update purchase order with zero volume
  76. xml_http_request :post, "/data_entry/create_purchase_order",:volume => 0,
  77. :po_id => second_purchase_order.id ,:po_action =>"update"
  78. assert_select_rjs :remove, "purchase_order_#{second_purchase_order.id}"
  79. assert_equal nil, PurchaseOrder.find_by_id(second_purchase_order.id)
  80. assert_equal "As the volume supplied was 0, the purchase order was deleted.", flash.now[:message]
  81.  
  82. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement