Sha256: a698f1357db6762231bfbe0272444da7fdba2a993ddb61a7d7cd56f513cb7a9f

Contents?: true

Size: 1.32 KB

Versions: 3

Compression:

Stored size: 1.32 KB

Contents

require 'spec_helper'

class ScreenFactoryScreen
  include TE3270
end

class WorldSuper
  attr_reader :super_called
  def on(screen_class, &block)
        @super_called = true
  end
  end

class World < WorldSuper
  include TE3270::ScreenFactory
end

describe TE3270::ScreenFactory do

  let(:world) { World.new }

  it 'should create a new screen object' do
    emulator = double('platform')
    world.instance_variable_set('@emulator', emulator)
    world.on(ScreenFactoryScreen).should be_instance_of ScreenFactoryScreen
  end

  it 'should create a new screen object and execute a block' do
    emulator = double('platform')
    world.instance_variable_set('@emulator', emulator)
    world.on(ScreenFactoryScreen) do |page|
      page.should be_instance_of ScreenFactoryScreen
    end
  end

  it 'should raise an error when an @emulator instance variable does not exist' do
    expect { world.on(ScreenFactoryScreen) }.to raise_error("@emulator instance variable must be available to use the ScreenFactory methods")
  end

  it 'should pass control to super if passed a class that does not include TE3270' do
      class NoTE
      end
      emulator = double('platform')
      world.instance_variable_set('@emulator', emulator)
      world.on(NoTE)
      world.super_called.should be true
     end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
te3270-jruby-0.4-x86-mingw32 spec/lib/te3270/screen_factory_spec.rb
te3270-jruby-0.3-x86-mingw32 spec/lib/te3270/screen_factory_spec.rb
te3270-jruby-0.1-x86-mingw32 spec/lib/te3270/screen_factory_spec.rb