Sha256: c50646719d3c2e4fe49da18eea28876c88effce35ff8afed7a8e9385faee9a79

Contents?: true

Size: 1.54 KB

Versions: 1

Compression:

Stored size: 1.54 KB

Contents

require 'ronin/platform/extension_cache'

require 'platform/helpers/overlays'
require 'spec_helper'

describe Platform::ExtensionCache do
  before(:all) do
    Platform.load_overlays(overlay_cache_path)
  end

  before(:each) do
    @cache = Platform::ExtensionCache.new
  end

  it "should be able to load an extension from the overlays" do
    ext = @cache.load_extension('test')

    ext.should_not be_nil
    ext.name.should == 'test'
  end

  it "should determine if an extension was loaded" do
    @cache['test']
    @cache.has?('test').should == true
  end

  it "should select extensions with specific attributes" do
    test = @cache['test']
    random = @cache['random']

    @cache.with { |ext| ext.name == 'test' }.should == [test]
  end

  it "should provide transparent caching of extensions" do
    ext = @cache['test']
    ext.should_not be_nil
    ext.name.should == 'test'

    @cache['test'].should == ext
  end

  it "should load together the extension from all overlays" do
    ext = @cache.load_extension('test')

    ext.should_not be_nil
    ext.test1.should == 'test one'
    ext.test2.should == 'test two'
  end

  it "should have loaded extensions with multiple paths" do
    paths = @cache.load_extension('test').paths

    paths.length.should == 2
    paths.select { |path| path =~ /test$/ }.should == paths
  end

  it "should reload previously loaded extensions" do
    random_number = lambda { @cache['random'].number }
    previous_number = random_number.call

    @cache.reload!
    random_number.call.should_not == previous_number
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
ronin-0.3.0 spec/platform/extension_cache_spec.rb