Browse Source

Fix a bug and add tests

master
Peter J. Jones 7 years ago
parent
commit
d64c99c6c0
5 changed files with 65 additions and 2 deletions
  1. 12
    0
      Rakefile
  2. 2
    1
      lib/tisk/clock/entry.rb
  3. 1
    1
      lib/tisk/clock/version.rb
  4. 44
    0
      test/entry_test.rb
  5. 6
    0
      test/helper.rb

+ 12
- 0
Rakefile View File

@@ -1,3 +1,15 @@
################################################################################
require('rake/testtask')

################################################################################
Rake::TestTask.new do |t|
t.test_files = FileList['test/*_test.rb']
t.verbose = true
end

################################################################################
desc("Build a gem")
task(:gem) {system('gem', 'build', 'config/gemspec')}

################################################################################
task(:default => :test)

+ 2
- 1
lib/tisk/clock/entry.rb View File

@@ -4,7 +4,8 @@ class Tisk::Clock::Entry
include(Tisk::Attributes)

##############################################################################
attributes(:start, :stop, :approved, :foreign, :ticket)
attributes(:start, :stop, :approved, :foreign)
attr_accessor(:ticket)

##############################################################################
def initialize (attributes={})

+ 1
- 1
lib/tisk/clock/version.rb View File

@@ -1,5 +1,5 @@
module Tisk
module Clock
VERSION = '0.1.1'
VERSION = '0.1.2'
end
end

+ 44
- 0
test/entry_test.rb View File

@@ -0,0 +1,44 @@
################################################################################
require(File.expand_path('helper.rb', File.dirname(__FILE__)))

################################################################################
class EntryTest < Test::Unit::TestCase

##############################################################################
def setup
@ticket = Tisk::Ticket.new()
@card = Tisk::Clock::TimeCard.new(@ticket)
end

##############################################################################
def test_start_and_stop
e1 = @card.start
e2 = @card.stop

assert_equal(e1, e2)
assert(e1.start)
assert(e1.stop)

# Due to rounding these should not be the same
assert(e1.start != e1.stop)
assert(!e1.duration.zero?)
end

##############################################################################
# There was a bug where the ticket was being placed back into it's
# own YAML due to a circular reference. Make sure that never comes
# back.
def test_ensure_no_circular_references
@card.start
@card.stop

metadata = @ticket.plug_in_metadata(Tisk::Clock::NAME)
assert(metadata)
assert_kind_of(Hash, metadata)
assert(metadata.has_key?('entries'))
assert_equal(1, metadata['entries'].size)

entry = metadata['entries'].first
assert(!entry.has_key?('ticket'))
end
end

+ 6
- 0
test/helper.rb View File

@@ -0,0 +1,6 @@
################################################################################
require('test/unit')
require('rubygems')
require('mocha')
require('tisk')
require('tisk/clock')

Loading…
Cancel
Save