Skip to content

Commit

Permalink
Migration from minitest/unit for minitest/spec
Browse files Browse the repository at this point in the history
  • Loading branch information
peleteiro committed Sep 20, 2010
1 parent aa3b52d commit 99ceacf
Show file tree
Hide file tree
Showing 3 changed files with 66 additions and 60 deletions.
61 changes: 32 additions & 29 deletions test/duration/test_mongoid.rb
@@ -1,42 +1,45 @@
# -*- encoding: utf-8 -*-
require 'helper'

class Duration::TestMongoid < MiniTest::Unit::TestCase
describe "mongoid support" do

# Returns seconds to serialization
def test_get_seconds
assert_equal Duration.new(90), Duration.get(90)
end

def test_get_nil
assert_nil Duration.get(nil)
end
describe "#get - Mongoid's deserialization" do
it "should return the duration given the total in seconds" do
assert_equal Duration.new(90), Duration.get(90)
end

def test_set_nil
assert_nil Duration.set([1,2,3])
assert_nil Duration.set(nil)
assert_nil Duration.set("")
assert_nil Duration.set({})
assert_nil Duration.set({:seconds => "", :hours => ""})
assert_nil Duration.set({:x => 100, :seconds => ""})
it "should return nil for nil serialized values" do
assert_nil Duration.get(nil)
end
end

def test_set_duration
assert_equal 90, Duration.set(Duration.new(:minutes => 1, :seconds => 30))
end
describe "#set - Mongoid's serialization" do
it "should serialize to nil given an invalid serialized value or nil" do
assert_nil Duration.set([1,2,3])
assert_nil Duration.set(nil)
assert_nil Duration.set("")
assert_nil Duration.set({})
assert_nil Duration.set({:seconds => "", :hours => ""})
assert_nil Duration.set({:x => 100, :seconds => ""})
end

def test_set_seconds
assert_equal 10, Duration.set(10)
end
it "should return total seconds given a duration" do
assert_equal 90, Duration.set(Duration.new(:minutes => 1, :seconds => 30))
end

it "should return total seconds given a duration in seconds" do
assert_equal 10, Duration.set(10)
end

def test_set_string
assert_equal 10, Duration.set("10")
assert_equal 10, Duration.set("10string")
assert_equal 0, Duration.set("string")
end
it "should return total seconds given a duration in string" do
assert_equal 10, Duration.set("10")
assert_equal 10, Duration.set("10string")
assert_equal 0, Duration.set("string") # not blank
end

def test_set_hash
assert_equal 90, Duration.set(:minutes => 1, :seconds => 30)
it "should return total seconds given a duration in hash" do
assert_equal 90, Duration.set(:minutes => 1, :seconds => 30)
end
end

end
5 changes: 1 addition & 4 deletions test/helper.rb
@@ -1,13 +1,10 @@
# -*- encoding: utf-8 -*-
require 'rubygems'
require 'minitest/unit'
require 'minitest/spec'

$LOAD_PATH.unshift(File.dirname(__FILE__))
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
require 'duration'
require 'duration/mongoid'

class MiniTest::Unit::TestCase
end

MiniTest::Unit.autorun
60 changes: 33 additions & 27 deletions test/test_duration.rb
@@ -1,9 +1,9 @@
# -*- encoding: utf-8 -*-
require 'helper'

class TestDuration < MiniTest::Unit::TestCase
describe "Duration" do

def test_initialization_with_seconds
it "should initialize given duration in seconds" do
d = Duration.new(90)
assert_equal 0, d.weeks
assert_equal 0, d.days
Expand All @@ -13,39 +13,45 @@ def test_initialization_with_seconds
assert_equal 90, d.total
end

def test_initialization_with_hash
d = Duration.new(:minutes => 1, :seconds => 30)
assert_equal 0, d.weeks
assert_equal 0, d.days
assert_equal 0, d.hours
assert_equal 1, d.minutes
assert_equal 30, d.seconds
assert_equal 90, d.total
it "should initialize given duration in Hash" do
d = Duration.new(:weeks => 1, :days => 2, :hours => 3, :minutes => 4, :seconds => 5)
assert_equal 1, d.weeks
assert_equal 2, d.days
assert_equal 3, d.hours
assert_equal 4, d.minutes
assert_equal 5, d.seconds
assert_equal 788645, d.total
end

def test_format_plural
d = Duration.new(:weeks => 2, :days => 3, :hours => 4, :minutes => 5, :seconds => 6)
assert_equal("2 weeks 3 days 4 hours 5 minutes 6 seconds", d.format("%w %~w %d %~d %h %~h %m %~m %s %~s"))
end
describe "#format" do
it "should display units in plural form when needed" do
d = Duration.new(:weeks => 2, :days => 3, :hours => 4, :minutes => 5, :seconds => 6)
assert_equal("2 weeks 3 days 4 hours 5 minutes 6 seconds", d.format("%w %~w %d %~d %h %~h %m %~m %s %~s"))
end

def test_format_singular
d = Duration.new(:weeks => 1, :days => 1, :hours => 1, :minutes => 1, :seconds => 1)
assert_equal("1 week 1 day 1 hour 1 minute 1 second", d.format("%w %~w %d %~d %h %~h %m %~m %s %~s"))
it "should display units in singular form when needed" do
d = Duration.new(:weeks => 1, :days => 1, :hours => 1, :minutes => 1, :seconds => 1)
assert_equal("1 week 1 day 1 hour 1 minute 1 second", d.format("%w %~w %d %~d %h %~h %m %~m %s %~s"))
end
end

def test_iso_8601
d = Duration.new(:weeks => 1, :days => 2, :hours => 3, :minutes => 4, :seconds => 5)
assert_equal("P1W2DT3H4M5S", d.iso8601)
describe "#iso_6801" do
it "should" do
d = Duration.new(:weeks => 1, :days => 2, :hours => 3, :minutes => 4, :seconds => 5)
assert_equal("P1W2DT3H4M5S", d.iso8601)
end
end

def test_blank?
assert Duration.new.blank?
refute Duration.new(1).blank?
end
describe "utilities methods" do
it "should respond to blank?" do
assert Duration.new.blank?
refute Duration.new(1).blank?
end

def test_present?
refute Duration.new.present?
assert Duration.new(1).present?
it "should respond to present?" do
refute Duration.new.present?
assert Duration.new(1).present?
end
end

end

0 comments on commit 99ceacf

Please sign in to comment.