Sha256: 7a6f4c61ca80a599ee1cc0526a939eb01bd8fd2b46772802a633777e06b617c8

Contents?: true

Size: 1.39 KB

Versions: 1

Compression:

Stored size: 1.39 KB

Contents

#!/usr/bin/ruby
# encoding: utf-8
# (c) 2011 Martin Kozák (martinkozak@martinkozak.net)

$:.push("./lib")
require "object-proxy"
require "riot"

context "ObjectProxy" do
    asserts("#create") do 
        s = OP["a,b,c,d"]

        s.register_handler(:"before_<<") do |args|
            args = [",A,B,C"]
            args
        end

        s.register_handler(:"after_<<") do |result|
            "alfa beta"
        end

        (s << ",1,2,3" == "alfa beta") and (s == "a,b,c,d,A,B,C")
    end
    asserts("#fake") do
        pr = OP::fake(String) do
            define_method :to_s do 
                "alfa beta"
            end
        end
        
        pr = pr::new
        (pr.to_s == "alfa beta") and pr.inspect.nil?
    end
    asserts("#track") do
        log = [ ]
        s = OP::track("a,b,c,d")
        s.before_call do |name|
            log << name
        end
        s.after_call do |name|
            log << name
        end
        s.gsub!(",", "")
        
        (log == [:gsub!, :gsub!]) and (s == "abcd")
    end
    asserts("#catch") do
        s = OP::catch("alfa")
        log = [ ]
        
        s.method_call do |name, args, block|
            if name == :to_s
                log << name
                s.wrapped.send(name, *args, &block)
            end
        end
        
        s.replace("beta")
        s.to_s
        
        (log == [:to_s]) and (s.to_s == "alfa")
    end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
object-proxy-0.2.0 test