Sha256: f30e93ee43d19beb4e1396f794fb6dc7bea14f698709e320a3ae655965abfcca

Contents?: true

Size: 1.81 KB

Versions: 1

Compression:

Stored size: 1.81 KB

Contents

$:.unshift File.join(File.dirname(__FILE__), "..", "lib")

require 'date'
require 'test/unit'
require 'icalendar'

class TestComponent < Test::Unit::TestCase

  # Create a calendar with an event for each test.
  def setup
    @cal = Icalendar::Calendar.new
    @event = Icalendar::Event.new
  end

  def test_ical_property
    # No alias but it does have a prop_name
    assert_equal(@event.klass?, false)
    @event.klass = "PRIVATE"
    assert_equal(@event.klass?, true)
    assert_equal(@event.klass, "PRIVATE")
    
    # Check that both dtstart and its alias start work correctly
    date = DateTime.new(2005, 02, 05, 23, 24, 25)
    @event.dtend = date
    assert_equal(@event.dtend.year, date.year)

    date2 =  DateTime.new(2005, 02, 05, 23, 24, 26)
    @event.end = date2
    assert_equal(@event.end.year, date2.year)
  end

  def test_ical_multi_property
    # Query
    assert_equal(@event.comments?, false)
    @event.comments = []
    assert_equal(@event.comments?, true)
    
    # Should return an empty array, rather than nil
    assert_equal(@event.comments.size, 0)

    # Add and remove
    @event.add_comment "c1"
    @event.add_comment "c2"
    assert_equal(@event.comments.size, 2)
    assert_equal(@event.comments, ["c1", "c2"])
    @event.remove_comment "c1"
    assert_equal(@event.comments, ["c2"])

    # Set & get whole array
    foo = ["as", "df"]
    @event.comments = foo
    assert_equal(@event.comments, foo)

    foo = ["asdf", "qwer"]    
    @event.comments(foo)
    assert_equal(@event.comments, foo)

    # Error cases
    assert_raise(ArgumentError) { @event.comments("asdf") }
  end

  def test_bad_args
    # Single property
    assert_raise(NotImplementedError) do
      @event.klass = {}
    end
    
    # Multi property
    assert_raise(NotImplementedError) do
      @event.comments = [{}]
    end
  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
icalendar-0.95 test/component_test.rb