Browse Source

Add Marketing Events resource

Manasa Seethepalli 8 years ago
parent
commit
2166d4bb39

+ 4 - 0
lib/shopify_api/resources/marketing_event.rb

@@ -0,0 +1,4 @@
+module ShopifyAPI
+  class MarketingEvent < Base
+  end
+end

+ 28 - 0
test/fixtures/marketing_event.json

@@ -0,0 +1,28 @@
+{
+  "marketing_event": {
+    "id": 1,
+    "started_at": "2011-12-31T19:00:00-05:00",
+    "ended_at": null,
+    "event_target": "facebook",
+    "event_type": "post",
+    "scheduled_to_end_at": null,
+    "budget": "10.11",
+    "budget_type": "daily",
+    "currency": "GBP",
+    "utm_campaign": "1234567890",
+    "utm_source": "facebook",
+    "utm_medium": "facebook-post",
+    "utm_content": null,
+    "utm_term": null,
+    "manage_url": null,
+    "preview_url": null,
+    "description": null,
+    "marketing_channel": "social",
+    "paid": false,
+    "referring_domain": "facebook.com",
+    "breadcrumb_id": null,
+    "marketed_resources": [
+      { "type": "product", "id": 1 }
+    ]
+  }
+}

+ 54 - 0
test/fixtures/marketing_events.json

@@ -0,0 +1,54 @@
+{
+  "marketing_event": [{
+    "id": 1,
+    "started_at": "2011-12-31T19:00:00-05:00",
+    "ended_at": null,
+    "event_target": "facebook",
+    "event_type": "post",
+    "scheduled_to_end_at": null,
+    "budget": "10.11",
+    "budget_type": "daily",
+    "currency": "GBP",
+    "utm_campaign": "1234567890",
+    "utm_source": "facebook",
+    "utm_medium": "facebook-post",
+    "utm_content": null,
+    "utm_term": null,
+    "manage_url": null,
+    "preview_url": null,
+    "description": null,
+    "marketing_channel": "social",
+    "paid": false,
+    "referring_domain": "facebook.com",
+    "breadcrumb_id": null,
+    "marketed_resources": [
+      { "type": "product", "id": 1 }
+    ]
+  },
+  {
+    "id": 2,
+    "started_at": "2011-12-31T19:00:00-05:00",
+    "ended_at": null,
+    "event_target": "facebook",
+    "event_type": "post",
+    "scheduled_to_end_at": null,
+    "budget": "10.11",
+    "budget_type": "daily",
+    "currency": "USD",
+    "utm_campaign": "1234567891",
+    "utm_source": "facebook",
+    "utm_medium": "facebook-post",
+    "utm_content": null,
+    "utm_term": null,
+    "manage_url": null,
+    "preview_url": null,
+    "description": null,
+    "marketing_channel": "social",
+    "paid": false,
+    "referring_domain": "facebook.com",
+    "breadcrumb_id": null,
+    "marketed_resources": [
+      { "type": "product", "id": 2 }
+    ]
+  }]
+}

+ 49 - 0
test/marketing_event_test.rb

@@ -0,0 +1,49 @@
+require 'test_helper'
+
+class MarketingEventTest < Test::Unit::TestCase
+
+  def test_get_marketing_events
+    fake "marketing_events", :method => :get, :body => load_fixture('marketing_events')
+    marketing_events = ShopifyAPI::MarketingEvent.all
+    assert_equal 2, marketing_events.size
+  end
+
+  def test_get_marketing_event
+    fake "marketing_events/1", :method => :get, :body => load_fixture('marketing_event')
+    marketing_event = ShopifyAPI::MarketingEvent.find(1)
+    assert_equal 1, marketing_event.id
+  end
+
+  def test_create_marketing_event
+    fake "marketing_events", :method => :post, :body => load_fixture('marketing_event')
+    marketing_event = ShopifyAPI::MarketingEvent.new
+    marketing_event.currency_code = 'GBP'
+    marketing_event.event_target = 'facebook'
+    marketing_event.event_type = 'post'
+    marketing_event.save
+
+    assert_equal 'facebook', marketing_event.event_target
+    assert_equal 1, marketing_event.id
+  end
+
+  def test_delete_marketing_event
+    fake "marketing_events/1", :method => :get, :body => load_fixture('marketing_event')
+    fake "marketing_events/1", :method => :delete, :body => "destroyed"
+    marketing_event = ShopifyAPI::MarketingEvent.find(1)
+    assert marketing_event.destroy
+  end
+
+  def test_update_marketing_event
+    fake 'marketing_events/1', :method => :get, :status => 200, :body => load_fixture('marketing_event')
+    marketing_event = ShopifyAPI::MarketingEvent.find(1)
+    marketing_event.currency = 'USD'
+    fake 'marketing_events/1', :method => :put, :status => 200, :body => load_fixture('marketing_event')
+    assert marketing_event.save
+  end
+
+  def test_count_marketing_events
+    fake "marketing_events/count", :method => :get, :body => '{"count": 2}'
+    marketing_events_count = ShopifyAPI::MarketingEvent.get(:count)
+    assert_equal 2, marketing_events_count
+  end
+end