From 90e72385540c819f8279dfc9805631bea1ee3720 Mon Sep 17 00:00:00 2001 From: Tyrel Souza Date: Tue, 6 May 2014 12:20:19 -0400 Subject: [PATCH] testing bettervideo api --- app/models/better_video.rb | 12 ------ .../better_video_external_request_spec.rb | 4 +- spec/models/campaign_spec.rb | 40 +++++++++++++++++++ spec/support/fake_better_video.rb | 10 +++++ spec/support/fixtures/bettervideo_1.json | 7 ++++ spec/support/fixtures/bettervideo_102.json | 7 ++++ 6 files changed, 67 insertions(+), 13 deletions(-) create mode 100644 spec/support/fixtures/bettervideo_1.json create mode 100644 spec/support/fixtures/bettervideo_102.json diff --git a/app/models/better_video.rb b/app/models/better_video.rb index 6f7a5a0..00d5c5e 100644 --- a/app/models/better_video.rb +++ b/app/models/better_video.rb @@ -17,7 +17,6 @@ class BetterVideo response = http.request(request) resp = JSON.parse(response.body) - puts resp if resp["errorcode"].to_i == 0 resp[:success] = true @@ -30,15 +29,4 @@ class BetterVideo end resp end - - - - private - def valid_json? json_ - JSON.parse(json_) - return true - rescue JSON::ParserError - return false - end - end diff --git a/spec/features/better_video_external_request_spec.rb b/spec/features/better_video_external_request_spec.rb index b10e8c3..115c098 100644 --- a/spec/features/better_video_external_request_spec.rb +++ b/spec/features/better_video_external_request_spec.rb @@ -8,4 +8,6 @@ feature 'External request' do response = JSON.parse(Net::HTTP.get(uri)) expect(response['success']).to eq(true) end -end \ No newline at end of file +end + + diff --git a/spec/models/campaign_spec.rb b/spec/models/campaign_spec.rb index 121a0e3..9654a87 100644 --- a/spec/models/campaign_spec.rb +++ b/spec/models/campaign_spec.rb @@ -40,4 +40,44 @@ describe Campaign, 'associations' do expect(camp.video_completion_percent).to eq(100) end + + it 'gets the proper better video format' do + campaign = FactoryGirl.build(:campaign) + campaign.save + bv_fmt = campaign.to_bettervideo_format + + expect(JSON.parse(bv_fmt)['key']).to eq("PRO1234") + expect(JSON.parse(bv_fmt)['campaigns'][0]["clientid"]).to eq(720) + expect(JSON.parse(bv_fmt)['campaigns'][0]["videolistings"].length).to eq(1) + end + + it 'sends to better video and returns success' do + campaign = FactoryGirl.build(:campaign) + campaign.save + client = BetterVideo.new + bv_response = client.addVideo(campaign: campaign.to_bettervideo_format) + + expect(bv_response[:success]).to eq(true) + end + + + it 'sends to better video and returns missing field' do + campaign = FactoryGirl.build(:campaign) + campaign.listingcode = "videolistingmissing" + campaign.save + client = BetterVideo.new + bv_response = client.addVideo(campaign: campaign.to_bettervideo_format) + + expect(bv_response["errormessage"]).to eq("Required field [voiceoverselection] missing.") + end + + it 'sends to better video and returns error' do + campaign = FactoryGirl.build(:campaign) + campaign.listingcode = "contactdev" + campaign.save + client = BetterVideo.new + bv_response = client.addVideo(campaign: campaign.to_bettervideo_format) + + expect(bv_response[:message]).to include("Please Contact Dev") + end end \ No newline at end of file diff --git a/spec/support/fake_better_video.rb b/spec/support/fake_better_video.rb index a6f8e7c..3daf7dc 100644 --- a/spec/support/fake_better_video.rb +++ b/spec/support/fake_better_video.rb @@ -6,6 +6,16 @@ class FakeBetterVideo < Sinatra::Base json_response 200, 'bettervideo_0.json' end + post '/orders/MDS.OrdersWS.svc/addVideo' do + if params.to_s.include? "videolistingmissing" + json_response 200, 'bettervideo_102.json' + elsif params.to_s.include? "contactdev" + json_response 200, 'bettervideo_1.json' + else + json_response 200, 'bettervideo_0.json' + end + end + private def json_response(response_code, file_name) diff --git a/spec/support/fixtures/bettervideo_1.json b/spec/support/fixtures/bettervideo_1.json new file mode 100644 index 0000000..3b15639 --- /dev/null +++ b/spec/support/fixtures/bettervideo_1.json @@ -0,0 +1,7 @@ +{ + "errorcode": "1", + "errormessage": "Unknown Error", + "listingcode": "242000", + "success": false, + "videocode": "242001" +} \ No newline at end of file diff --git a/spec/support/fixtures/bettervideo_102.json b/spec/support/fixtures/bettervideo_102.json new file mode 100644 index 0000000..6336dad --- /dev/null +++ b/spec/support/fixtures/bettervideo_102.json @@ -0,0 +1,7 @@ +{ + "errorcode": "102", + "errormessage": "Required field [voiceoverselection] missing.", + "listingcode": "242000", + "success": false, + "videocode": "242001" +} \ No newline at end of file