Skip to content
This repository was archived by the owner on Jul 19, 2019. It is now read-only.

Commit 6d64aa1

Browse files
committed
Adding specs + Travis.
1 parent 40b8e23 commit 6d64aa1

File tree

6 files changed

+128
-0
lines changed

6 files changed

+128
-0
lines changed

.travis.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
language: ruby
2+
before_script:
3+
- psql -c 'create database queue_classic_test;' -U postgres
4+
env:
5+
global:
6+
- QC_DATABASE_URL="postgres://postgres@localhost/queue_classic_test"
7+
rvm:
8+
- 2.2.0
9+
before_install:
10+
- gem update --system
11+
addons:
12+
postgresql: 9.3

Gemfile

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,7 @@ source 'https://rubygems.org'
22

33
# Specify your gem's dependencies in queue_classic-later.gemspec
44
gemspec
5+
6+
group :test do
7+
gem 'minitest', '~> 5.6.1'
8+
end

Rakefile

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,13 @@
1+
$:.unshift("lib")
2+
13
require "bundler/gem_tasks"
4+
require "rake/testtask"
5+
require "queue_classic-later"
6+
7+
task :default => ['test']
8+
Rake::TestTask.new do |t|
9+
t.libs << 'test'
10+
t.test_files = FileList['spec/**/*_test.rb']
11+
t.verbose = true
12+
t.warning = true
13+
end

queue_classic-later.gemspec

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,5 @@ Gem::Specification.new do |gem|
1616
gem.require_paths = ["lib"]
1717

1818
gem.add_dependency "queue_classic", "~> 3.0"
19+
gem.add_development_dependency "rake"
1920
end

spec/later_test.rb

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
$: << File.expand_path("spec")
2+
3+
require "spec_helper"
4+
require "queue_classic/later"
5+
include QC::Later::QueueExtensions
6+
7+
class QueueTest < QCTest
8+
9+
def test_enqueue_in
10+
time_completed = Time.now + 2
11+
enqueue_in(1, "Kernel.puts", "hello world 1")
12+
assert_equal(1, num_jobs)
13+
14+
QC::Later.tick while Time.now < time_completed
15+
16+
assert_equal(0, num_jobs)
17+
end
18+
19+
def test_enqueue_at
20+
time_completed = Time.now + 2
21+
enqueue_at(time_completed-1, "Kernel.puts", "hello ","world 2")
22+
assert_equal(1, num_jobs)
23+
24+
QC::Later.tick while Time.now < time_completed
25+
26+
assert_equal(0, num_jobs)
27+
end
28+
29+
end

spec/spec_helper.rb

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
require 'rubygems'
2+
3+
require 'bundler'
4+
Bundler.setup :default, :test
5+
ENV["DATABASE_URL"] ||= "postgres:///queue_classic_test"
6+
7+
require "minitest/autorun"
8+
9+
class QCTest < Minitest::Test
10+
11+
def setup
12+
init_db
13+
QC::Later::Setup.create
14+
end
15+
16+
def teardown
17+
QC::Later::Setup.drop
18+
QC.delete_all
19+
end
20+
21+
def init_db
22+
c = QC::ConnAdapter.new
23+
c.execute("SET client_min_messages TO 'warning'")
24+
QC::Setup.drop(c.connection)
25+
QC::Setup.create(c.connection)
26+
# c.execute(File.read('./test/helper.sql'))
27+
c.disconnect
28+
end
29+
30+
def capture_stderr_output
31+
original_stderr = $stderr
32+
$stderr = StringIO.new
33+
yield
34+
$stderr.string
35+
ensure
36+
$stderr = original_stderr
37+
end
38+
39+
def capture_debug_output
40+
original_debug = ENV['DEBUG']
41+
original_stdout = $stdout
42+
43+
ENV['DEBUG'] = "true"
44+
$stdout = StringIO.new
45+
yield
46+
$stdout.string
47+
ensure
48+
ENV['DEBUG'] = original_debug
49+
$stdout = original_stdout
50+
end
51+
52+
def with_env(temporary_environment)
53+
original_environment = {}
54+
temporary_environment.each do |name, value|
55+
original_environment[name] = ENV[name]
56+
ENV[name] = value
57+
end
58+
yield
59+
ensure
60+
original_environment.each { |name, value| ENV[name] = value }
61+
end
62+
63+
def execute(s)
64+
QC.default_conn_adapter.execute(s)
65+
end
66+
67+
def num_jobs
68+
execute("SELECT COUNT(*) FROM #{QC::Later::TABLE_NAME}")["count"].to_i
69+
end
70+
end

0 commit comments

Comments
 (0)