require 'spec_helper' describe Rents::Transaction do # OK Operator Page tests describe '(SUCCESS REQUEST) Operator - BuyPage' do # ================ SetUp/Config ================ before(:all) do base_url = 'http://localhost:7000' @api_status = Rents::Status.new({ test_env:true }) @page_transaction = Rents::Transaction.new({ test_env:true, card:{flag:'visa'}, amount: Random.rand(99999), # TODO: no error por rand menor que 99 (* mandatory) Amount in cents (1000 = R$ 10,00) redirect_link: "#{base_url}/api/redirect_receiver" # (* optional) used only for CieloPage }) # Fake SoldItems added @page_transaction.sold_items = fake_sold_items # Send BuyPage @page_resp = @page_transaction.charge_page end # ================ Tests/Expects/Should ================ it 'resp should not be null' do @page_resp.should_not be_nil end it 'resp should not have any error' do error = @page_resp[:error] error = @page_resp['error'] if error.nil? error.should be_nil end it 'resp should be an accessible Operator URL' do url = @page_resp['purchase_url'] url = @page_resp[:purchase_url] if url.nil? url.should_not be_nil be_accessible(url).should be_true end it 'must be verifiable' do # SetUps verify_resp = @page_transaction.verify error = verify_resp[:error] error = verify_resp['error'] if error.nil? # Validations verify_resp.should_not be_nil error.should be_nil end it 'must have a get accessible URL request' do be_accessible(@page_transaction.url_requested+@page_transaction.request_params.it_keys_to_get_param).should be_true end end # NOT_OK Operator Page tests describe '(BAD REQUEST) Operator - BuyPage' do # SetUp/Config before(:each) do Rents.app_id = 1 Rents.secret_key = '12312321312$2a$10$NmV9EysKVLe8ItBdl9CHN.LF05bOuDdoOkmfptdbJs7cuaDWksuUu' base_url = 'http://localhost:7000' # Not using test_env (so using a app passed not the global app) @page_transaction = Rents::Transaction.new({ card:{flag:'visa'}, amount: Random.rand(99999), # TODO: no error por rand menor que 99 (* mandatory) Amount in cents (1000 = R$ 10,00) redirect_link: "#{base_url}/api/redirect_receiver" # (* optional) used only for CieloPage }) # Send BuyPage @page_resp = @page_transaction.charge_page(full_resp=true) end it 'must have some error' do # SetUp vars json_resp = JSON.parse(@page_resp) error = json_resp[:error] error = json_resp['error'] if error.nil? # Check what expected json_resp.should be_a Hash @page_resp.code.should == 200 error.should_not be_nil end end end