download_test.rb 1.57 KB
require 'test_helper'
require File.dirname(__FILE__) + '/../helpers/plugin_test_helper'

class DownloadTest < ActiveSupport::TestCase
  include PluginTestHelper

  def setup
    @downloads_sample_data = [
      {
        :name=>"Sample data A",
        :link=>"http://some.url.com",
        :software_description=>"all",
        :minimum_requirements=>"none",
        :size=>"10 mb",
        :total_downloads=>0
      },
      {
        :name=>"Sample data B",
        :link=>"http://other.url",
        :software_description=>"Linux",
        :minimum_requirements=>"500 mb Ram",
        :size=>"3 GB",
        :total_downloads=>123
      }
    ]
  end

  should "Set as 0(zero) total_downloads if it is not given" do
    without_total_downloads = Download.new({})
    with_total_downloads = Download.new(@downloads_sample_data.last)

    assert_equal 0, without_total_downloads.total_downloads
    assert_equal @downloads_sample_data.last[:total_downloads], with_total_downloads.total_downloads
  end

  should "Remove downloads without a name" do
    @downloads_sample_data[1] = @downloads_sample_data[1].slice! :name
    downloads = Download.validate_download_list @downloads_sample_data

    assert_equal 1, downloads.size
    assert_equal @downloads_sample_data[0][:name], downloads[0][:name]
  end

  should "Only set total_downloads if the value is integer" do
    download = Download.new(@downloads_sample_data.last)

    download.total_downloads = "456"
    assert_not_equal 456, download.total_downloads

    download.total_downloads = 456
    assert_equal 456, download.total_downloads
  end
end