Skip to content
This repository was archived by the owner on Jul 19, 2019. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
language: ruby
before_script:
- psql -c 'create database queue_classic_test;' -U postgres
env:
global:
- QC_DATABASE_URL="postgres://postgres@localhost/queue_classic_test"
rvm:
- 2.2.0
before_install:
- gem update --system
addons:
postgresql: 9.3
4 changes: 4 additions & 0 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,7 @@ source 'https://rubygems.org'

# Specify your gem's dependencies in queue_classic-later.gemspec
gemspec

group :test do
gem 'minitest', '~> 5.6.1'
end
12 changes: 12 additions & 0 deletions Rakefile
Original file line number Diff line number Diff line change
@@ -1 +1,13 @@
$:.unshift("lib")

require "bundler/gem_tasks"
require "rake/testtask"
require "queue_classic-later"

task :default => ['test']
Rake::TestTask.new do |t|
t.libs << 'test'
t.test_files = FileList['spec/**/*_test.rb']
t.verbose = true
t.warning = true
end
1 change: 1 addition & 0 deletions queue_classic-later.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,5 @@ Gem::Specification.new do |gem|
gem.require_paths = ["lib"]

gem.add_dependency "queue_classic", "~> 3.0"
gem.add_development_dependency "rake"
end
29 changes: 29 additions & 0 deletions spec/later_test.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
$: << File.expand_path("spec")

require "spec_helper"
require "queue_classic/later"
include QC::Later::QueueExtensions

class QueueTest < QCTest

def test_enqueue_in
time_completed = Time.now + 2
enqueue_in(1, "Kernel.puts", "hello world 1")
assert_equal(1, num_jobs)

QC::Later.tick while Time.now < time_completed

assert_equal(0, num_jobs)
end

def test_enqueue_at
time_completed = Time.now + 2
enqueue_at(time_completed-1, "Kernel.puts", "hello ","world 2")
assert_equal(1, num_jobs)

QC::Later.tick while Time.now < time_completed

assert_equal(0, num_jobs)
end

end
70 changes: 70 additions & 0 deletions spec/spec_helper.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
require 'rubygems'

require 'bundler'
Bundler.setup :default, :test
ENV["DATABASE_URL"] ||= "postgres:///queue_classic_test"

require "minitest/autorun"

class QCTest < Minitest::Test

def setup
init_db
QC::Later::Setup.create
end

def teardown
QC::Later::Setup.drop
QC.delete_all
end

def init_db
c = QC::ConnAdapter.new
c.execute("SET client_min_messages TO 'warning'")
QC::Setup.drop(c.connection)
QC::Setup.create(c.connection)
# c.execute(File.read('./test/helper.sql'))
c.disconnect
end

def capture_stderr_output
original_stderr = $stderr
$stderr = StringIO.new
yield
$stderr.string
ensure
$stderr = original_stderr
end

def capture_debug_output
original_debug = ENV['DEBUG']
original_stdout = $stdout

ENV['DEBUG'] = "true"
$stdout = StringIO.new
yield
$stdout.string
ensure
ENV['DEBUG'] = original_debug
$stdout = original_stdout
end

def with_env(temporary_environment)
original_environment = {}
temporary_environment.each do |name, value|
original_environment[name] = ENV[name]
ENV[name] = value
end
yield
ensure
original_environment.each { |name, value| ENV[name] = value }
end

def execute(s)
QC.default_conn_adapter.execute(s)
end

def num_jobs
execute("SELECT COUNT(*) FROM #{QC::Later::TABLE_NAME}")["count"].to_i
end
end