Sha256: 3f1fa82e64d8912ae442058110aebfdf94f3d3bd90b9d39a80bdae48a6735c98

Contents?: true

Size: 1.85 KB

Versions: 5

Compression:

Stored size: 1.85 KB

Contents

require 'wovnrb/text_caches/cache_base'
require 'wovnrb/text_caches/memory_cache'
require 'wovnrb/api_data'
require 'test_helper'
require 'webmock/minitest'

module Wovnrb
  class MemoryCacheTest < WovnMiniTest
    def setup
      Wovnrb::CacheBase.set_single({})
    end

    def teardown
      Wovnrb::CacheBase.reset_cache
      WebMock.reset!
    end

    def test_initialize
      Wovnrb::ApiData.new('http://wwww.example.com', Wovnrb::Store.instance)
    end

    def test_get_data
      token = 'a'
      url = 'url'
      stub_request(:get, "https://api.wovn.io/v0/values?token=#{token}&url=#{url}").
        to_return(:body => '{"test_body": "a"}')
      store = Wovnrb::Store.instance
      store.settings['user_token'] = token
      api_data = Wovnrb::ApiData.new(url, store)

      assert_equal({'test_body' => 'a'}, api_data.get_data)
    end

    def test_get_data_when_cache_exists
      token = 'a'
      url = 'url'
      stub = stub_request(:get, "https://api.wovn.io/v0/values?token=#{token}&url=#{url}").
        to_return(:body => '{"test_body": "a"}')
      store = Wovnrb::Store.instance
      store.settings['user_token'] = token
      api_data = Wovnrb::ApiData.new(url, store)

      assert_equal({'test_body' => 'a'}, api_data.get_data)
      assert_equal({'test_body' => 'a'}, api_data.get_data)
      assert_requested(stub, :times => 1)
    end

    def test_get_data_fail
      token = 'a'
      url = 'url'
      stub_request(:get, "https://api.wovn.io/v0/values?token=#{token}&url=#{url}").
        to_return(:status => [500, "Internal Server Error"])
      store = Wovnrb::Store.instance
      store.settings['user_token'] = token
      api_data = Wovnrb::ApiData.new(url, store)
      log_mock = Wovnrb::LogMock.mock_log

      assert_equal({}, api_data.get_data)
      assert(log_mock.errors[0].start_with?('API server GET request failed'))
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
wovnrb-0.2.06 test/lib/api_data_test.rb
wovnrb-0.2.05 test/lib/api_data_test.rb
wovnrb-0.2.04 test/lib/api_data_test.rb
wovnrb-0.2.03 test/lib/api_data_test.rb
wovnrb-0.2.02 test/lib/api_data_test.rb