Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def test_create_purchase_order
- # Login as a clerk
- user = users(:clerk_1)
- get_via_redirect '/login'
- assert_redirected_to '/login/login'
- post_via_redirect '/login/login', :user => {:login => user.email, :password => 'secretive' }
- assert_redirected_to '/'
- # Check the units can be changed
- assert user.company.units == 'kg'
- post_via_redirect '/data_entry/update_units', {:units => 'tonne'}
- assert_redirected_to :action => :index
- user.company.reload
- assert user.company.units == 'tonne'
- # You need to scan the response here to find the relevant periods!!!
- period = periods(:period_one)
- category = categories(:one)
- fishery_profile = fishery_profiles(:fishery_profile_30)
- purchase_order = purchase_orders(:one)
- second_purchase_order = purchase_orders(:two)
- # create new purchase order with zero volume
- xml_http_request :post, "/data_entry/create_purchase_order",:category_id => category.name,:volume => 0,
- :fishery_profile_id => fishery_profile.name,:period_id => period.name,:po_action =>"create",:overwrite_duplicate =>"false"
- assert_equal "As the volume supplied was 0, the purchase order was not created.", flash.now[:message]
- # create new purchase order with non zero volume
- xml_http_request :post, "/data_entry/create_purchase_order",:category_id => category.name,:volume => 20,
- :fishery_profile_id => fishery_profile.name,:period_id => period.name,:po_action =>"create",:overwrite_duplicate =>"false"
- assert_select_rjs :replace_html,'data_entry'
- assert_equal "Purchase order for period #{period.name} created successfully.", flash.now[:message]
- # update purchase order with non zero volume
- xml_http_request :post, "/data_entry/create_purchase_order",:volume => 40,
- :po_id => purchase_order.id ,:po_action =>"update"
- assert_not_equal purchase_order.volume, PurchaseOrder.find_by_id(purchase_order.id).volume
- assert_equal "Existing purchase order for period #{purchase_order.period.name} updated successfully.", flash.now[:message]
- # update purchase order with volume above 200 tones
- xml_http_request :post, "/data_entry/create_purchase_order",:category_id => category.name,:volume => 210,
- :po_id => purchase_order.id ,:po_action =>"update"
- assert_not_equal purchase_order.volume, PurchaseOrder.find_by_id(purchase_order.id).volume
- 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]
- # duplicate the purchase order and set overwrite_duplicate as true with non zero volume
- xml_http_request :post, "/data_entry/create_purchase_order",:category_id => purchase_order.category.name,
- :volume => 20,:fishery_profile_id => purchase_order.fishery_profile.name, :period_id => purchase_order.periodic_purchase.period.name,
- :po_action =>"create"
- assert_response :success
- xml_http_request :post, "/data_entry/create_purchase_order",:category_id => purchase_order.category.name,
- :volume => 30,:fishery_profile_id => purchase_order.fishery_profile.name, :period_id => purchase_order.periodic_purchase.period.name,
- :po_action =>"create" ,:overwrite_duplicate =>"true"
- assert_equal 30, PurchaseOrder.find_by_id(purchase_order.id).volume
- assert_equal "Purchase order for period #{purchase_order.periodic_purchase.period.name} created successfully.", flash.now[:message]
- # duplicate the purchase order and set overwrite_duplicate as false
- xml_http_request :post, "/data_entry/create_purchase_order",:category_id => purchase_order.category.name,
- :volume => 40,:fishery_profile_id => purchase_order.fishery_profile.name, :period_id => purchase_order.periodic_purchase.period.name,
- :po_action =>"create"
- assert_response :success
- assert_not_equal 40.0, PurchaseOrder.find_by_id(purchase_order.id).volume
- # duplicate the purchase order and set overwrite_duplicate as true with zero volume
- xml_http_request :post, "/data_entry/create_purchase_order",:category_id => purchase_order.category.name,
- :volume => 20,:fishery_profile_id => purchase_order.fishery_profile.name, :period_id => purchase_order.periodic_purchase.period.name,
- :po_action =>"create"
- assert_response :success
- xml_http_request :post, "/data_entry/create_purchase_order",:category_id => purchase_order.category.name,
- :volume => 0,:fishery_profile_id => purchase_order.fishery_profile.name, :period_id => purchase_order.periodic_purchase.period.name,
- :po_action =>"create" ,:overwrite_duplicate =>"true"
- assert_select_rjs :remove, "purchase_order_#{purchase_order.id}"
- assert_equal "As the volume supplied was 0, the purchase order was deleted.", flash.now[:message]
- # update purchase order with zero volume
- xml_http_request :post, "/data_entry/create_purchase_order",:volume => 0,
- :po_id => second_purchase_order.id ,:po_action =>"update"
- assert_select_rjs :remove, "purchase_order_#{second_purchase_order.id}"
- assert_equal nil, PurchaseOrder.find_by_id(second_purchase_order.id)
- assert_equal "As the volume supplied was 0, the purchase order was deleted.", flash.now[:message]
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement