Sha256: 44e2e8661ffce4b2d57c581ca3becf31157d82206b61070ad71e3bfc468b764d

Contents?: true

Size: 1.14 KB

Versions: 1

Compression:

Stored size: 1.14 KB

Contents

require File.dirname(__FILE__) + "/../spec_helper"

describe "Event handling" do



  describe "for precompiled CLR classes" do

    before do
      @warrior = ClrModels::ExposingWarrior.new
    end

    it "should subscribe to an event" do
      ClrModels::ExposedChangedSubscriber.new(@warrior)
      @warrior.has_event_subscriptions.should.be.true?
    end

    it "should not raise an error when subcribing to an event" do
      lambda { ClrModels::ExposedChangedSubscriber.new(@warrior) }.should.not.raise
    end

    it "should handle an event when raised" do
      subscriber = ClrModels::ExposedChangedSubscriber.new(@warrior)
      @warrior.change_is_exposed
      subscriber.counter.should.equal 1
    end

  end

  describe "for an IR generated interface proxy" do

    before do
      @proxy = isolate ClrModels::IExposingWarrior
    end

    # apparently events don't work yet in IronRuby.. keeping this spec here to find out when it does
#    it "should not raise an error when subcribing to an event" do
#      lambda { ClrModels::ExposedChangedSubscriber.new(@proxy) }.should.not.raise
#    end

  end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
caricature-0.7.2 spec/bacon/unit/interop_spec.rb