Test::Unit::TestCase
Test case class
(Not documented)
(Not documented)
(Not documented)
Returns a String containing the specified ANSI escapes suitable for inclusion in another string. The attributes should be one or more of the keys of AnsiAttributes.
# File /Users/ged/source/ruby/Arrow/lib/arrow/applettestcase.rb, line 129 129: def self::ansicode( *attributes ) 130: return '' unless /(?:xterm(?:-color)?|eterm|linux)/i =~ ENV['TERM'] 131: 132: attr = attributes.collect {|a| 133: AnsiAttributes[a] ? AnsiAttributes[a] : nil 134: }.compact.join(';') 135: if attr.empty? 136: return '' 137: else 138: return "\e[%sm" % attr 139: end 140: end
Define the name of the applet under test. The given name will be stringified, downcased, and searched for in the #applet_path.
# File /Users/ged/source/ruby/Arrow/lib/arrow/applettestcase.rb, line 203 203: def self::applet_under_test( applet ) 204: if applet.is_a?( Class ) 205: self.appletclass = applet 206: self.appletname = applet.signature.name 207: else 208: debug_msg "Setting applet under test for testcase: %p" % [self] 209: 210: if Arrow::Applet.derivatives.empty? 211: Pathname.glob( APPLET_PATH + '**/*.rb' ).each do |appletfile| 212: debug_msg "Trying to load #{appletfile}" 213: begin 214: Arrow::Applet.load( appletfile ) 215: rescue LoadError 216: end 217: end 218: end 219: 220: # :view_template becomes /view[-_]template/ 221: applet_pat = Regexp.new( applet.to_s.gsub(/_/, '[-_]?') ) 222: 223: self.appletclass = Arrow::Applet.derivatives.find {|klass| 224: debug_msg " Checking applet '#{klass.name.downcase}' =~ #{applet_pat}..." 225: applet_pat.match( klass.name.downcase ) or 226: applet_pat.match( klass.filename ) 227: } or raise "Failed to load applet matching #{applet_pat}" 228: self.appletname = applet.to_s 229: 230: debug_msg "Applet under test is: #{self.appletclass}" 231: end 232: end
Output the specified msgs joined together to STDERR if $DEBUG is set.
# File /Users/ged/source/ruby/Arrow/lib/arrow/applettestcase.rb, line 145 145: def self::debug_msg( *msgs ) 146: return unless $DEBUG 147: self.message "%sDEBUG>>> %s %s" % 148: [ ansicode('dark', 'white'), msgs.join(''), ansicode('reset') ] 149: end
Output the specified msgs joined together to STDOUT.
# File /Users/ged/source/ruby/Arrow/lib/arrow/applettestcase.rb, line 154 154: def self::message( *msgs ) 155: $stderr.puts msgs.join('') 156: $stderr.flush 157: end
Set up model data for the given model_class that can be used in the stub data classes. The data argument is an Array of data, and can be either Hashes or Arrays. If Arrays are used, the first one in the list should be a list of fields, and each subsequent Array should be field values. E.g.,
[ [ :title, :description, :date ], [ "title1", "desc1", Date.today ], [ "title2", "desc2", Date.today-4 ], ]
which is equivalent to:
[ { :title => "title1", :description => "desc1", :date => Date.today } { :title => "title1", :description => "desc1", :date => Date.today } ]
# File /Users/ged/source/ruby/Arrow/lib/arrow/applettestcase.rb, line 175 175: def self::set_fixture_data( model_class, data ) 176: @fixture_data ||= {} 177: 178: # [ [<fields>], [<values1], [<values2>] ] 179: if data.first.is_a?( Array ) 180: fields = data.shift 181: objects = data.collect do |row| 182: obj = OpenStruct.new 183: fields.each_with_index {|f,i| obj.__send__(f, row[i])} 184: end 185: 186: # [ {:field1 => <value1>}, {:field1 => <value2>} ] 187: elsif data.first.is_a?( Hash ) 188: objects = data.collect do |row| 189: OpenStruct.new( row ) 190: end 191: 192: # Custom objects (Mocks, etc.) 193: elsif data.is_a?( Array ) 194: objects = data 195: end 196: 197: @fixture_data[ model_class ] = objects 198: end
Instance-alias for the like-named class method
# File /Users/ged/source/ruby/Arrow/lib/arrow/applettestcase.rb, line 300 300: def ansicode( *attributes ) 301: self.class.ansicode( *attributes ) 302: end
Create a new mock object and register it to be verified at the end of the test.
# File /Users/ged/source/ruby/Arrow/lib/arrow/applettestcase.rb, line 471 471: def create_mock( name ) 472: return flexmock( name ) 473: end
Instance alias for the like-named class method
# File /Users/ged/source/ruby/Arrow/lib/arrow/applettestcase.rb, line 306 306: def debug_msg( *msgs ) 307: self.class.debug_msg( *msgs ) 308: end
The default block passed to Arrow::Applet#delegate by #with_fixtured_delegation if no block is passed to either #should_delegate or #should_not_delegate. If you override this, you should either super to this method or set @delegate_called yourself.
# File /Users/ged/source/ruby/Arrow/lib/arrow/applettestcase.rb, line 414 414: def default_delegation_behavior 415: @delegate_called = true 416: end
Extract parameters for the given key from the given queryhash using the form validator for the current action and return it.
# File /Users/ged/source/ruby/Arrow/lib/arrow/applettestcase.rb, line 490 490: def extract_parameters( queryhash, key=nil ) 491: profile = @applet.signature.validator_profiles[ @action ] || 492: @applet.signature_profiles[ :__default__ ] 493: validator = Arrow::FormValidator.new( profile ) 494: 495: validator.validate( queryhash ) 496: 497: if key 498: return validator.valid[ key ] 499: else 500: return validator.valid 501: end 502: end
Set up a mock object as the given transaction‘s session.
# File /Users/ged/source/ruby/Arrow/lib/arrow/applettestcase.rb, line 477 477: def fixture_session( txn ) 478: session = create_mock( "session" ) 479: txn.should_receive( :session ). 480: and_return( session ).zero_or_more_times 481: session.should_receive( :[] ).and_return( nil ).zero_or_more_times 482: session.should_receive( :[]= ).and_return( nil ).zero_or_more_times 483: 484: return session 485: end
Return a separator line made up of length of the specified char.
# File /Users/ged/source/ruby/Arrow/lib/arrow/applettestcase.rb, line 313 313: def hrule( length=75, char="-" ) 314: return (char * length ) + "\n" 315: end
Return a section delimited by hrules with the specified caption and content.
# File /Users/ged/source/ruby/Arrow/lib/arrow/applettestcase.rb, line 319 319: def hrule_section( content, caption='' ) 320: caption << ' ' unless caption.empty? 321: return caption + 322: hrule( 75 - caption.length ) + 323: content.chomp + "\n" + 324: hrule() 325: end
Instance alias for the like-named class method.
# File /Users/ged/source/ruby/Arrow/lib/arrow/applettestcase.rb, line 294 294: def message( *msgs ) 295: self.class.message( *msgs ) 296: end
Output a header for delimiting tests
# File /Users/ged/source/ruby/Arrow/lib/arrow/applettestcase.rb, line 329 329: def print_test_header( desc ) 330: return unless $VERBOSE || $DEBUG 331: message "%s>>> %s <<<%s" % 332: [ ansicode('bold','yellow','on_blue'), desc, ansicode('reset') ] 333: end
Output the name of the test as it‘s running if in verbose mode, and support per-test debugging settings.
# File /Users/ged/source/ruby/Arrow/lib/arrow/applettestcase.rb, line 282 282: def run( result ) 283: print_test_header self.name 284: super 285: end
Set up a test with some useful test objects
# File /Users/ged/source/ruby/Arrow/lib/arrow/applettestcase.rb, line 248 248: def setup 249: super 250: 251: debug_msg "%p: Setting up test for applet %p" % 252: [self.class, self.class.appletclass] 253: 254: # Give the test an easy reference to the applet class under test 255: @appletclass = self.class.appletclass or 256: raise "No applet defined for '#{self.class.name}'. Add " + 257: "'applet_under_test :<appletname>' to correct this." 258: @appletname = self.class.appletname 259: @action = nil 260: 261: @config = flexmock( "mock config" ) 262: @config.should_receive( :symbolize_keys ).and_return({}) 263: @config.should_receive( :member? ). 264: with( :db ). 265: and_return( false ) 266: @config.should_receive( :name ).and_return( "mock" ) 267: @config.should_receive( :member? ). 268: with( :model ). 269: and_return( false ) 270: @config.should_ignore_missing 271: @template_factory = flexmock( "mock template factory" ) 272: 273: @applet = @appletclass.new( @config, @template_factory, "#{@appletname}" ) 274: 275: @delegate_behavior = nil 276: @delegate_should_be_called = true 277: @delegate_called = false 278: end
Set up faked request and transaction objects for the given action, using the given args as REST-style arguments, and/or query arguments if the last element is a Hash.
# File /Users/ged/source/ruby/Arrow/lib/arrow/applettestcase.rb, line 422 422: def setup_fixtured_request( action, *args ) 423: uri = '/' + File.join( @appletname, action.to_s ) 424: req = Apache::Request.new( uri ) 425: 426: params = args.last.is_a?( Hash ) ? args.pop : {} 427: debug_msg "Parameters hash set to: %p" % [params] 428: req.paramtable = params 429: 430: debug_msg "Request is: %p" % [req] 431: #txn = Arrow::Transaction.new( req, @config, nil ) 432: txn = flexmock( "transaction" ) 433: txn.should_receive( :request ). 434: and_return( req ).zero_or_more_times 435: txn.should_receive( :vargs= ). 436: with( Arrow::FormValidator ).zero_or_more_times 437: 438: vargs = flexmock( "form validator" ) 439: txn.should_receive( :vargs ). 440: and_return( vargs ). 441: zero_or_more_times 442: vargs.should_receive( :[] ).zero_or_more_times 443: 444: debug_msg "Transaction is: %p" % [txn] 445: return txn, req, vargs, *args 446: end
The default delegate block — call this from within your #with_fixtured_delegation block if the applet under test should delegate to the next applet in the chain.
# File /Users/ged/source/ruby/Arrow/lib/arrow/applettestcase.rb, line 393 393: def should_delegate( &block ) 394: @delegate_should_be_called = true 395: @delegate_behavior = block || 396: method( :default_delegation_behavior ).to_proc 397: end
Assert that the current action should load the template associated with the given key, and passes a mock template object to the given block for further specification.
# File /Users/ged/source/ruby/Arrow/lib/arrow/applettestcase.rb, line 452 452: def should_load_template( key ) 453: tname = @applet.signature.templates[ key ] or 454: raise Test::Unit::AssertionFailedError.new( 455: "Expected applet to load the '#{key.inspect}' template\n" + 456: "but there was no such template registered by the application." ) 457: 458: mock_template = flexmock( "#{key.inspect} template") 459: @template_factory.should_receive( :get_template ). 460: with( tname ).and_return( mock_template ).at_least.once 461: mock_template.should_ignore_missing 462: 463: yield( mock_template ) if block_given? 464: 465: return mock_template 466: end
Negated delegate block — call this at the end of your #with_fixtured_delegation block if the applet under test should not delegate to the next applet in the chain.
# File /Users/ged/source/ruby/Arrow/lib/arrow/applettestcase.rb, line 403 403: def should_not_delegate( &block ) 404: @delegate_should_be_called = false 405: @delegate_behavior = block || 406: method( :default_delegation_behavior ).to_proc 407: end
Set up faked request and transaction objects, yield to the given block with them, then run the applet under test with them when the block returns.
# File /Users/ged/source/ruby/Arrow/lib/arrow/applettestcase.rb, line 343 343: def with_fixtured_action( action=nil, *args, &block ) 344: @action = action 345: txn, req, vargs, *args = setup_fixtured_request( action, *args ) 346: 347: if block.arity == 3 348: block.call( txn, req, vargs ) 349: else 350: block.call( txn, req ) 351: end 352: 353: return @applet.run( txn, action.to_s, *args ) 354: ensure 355: @action = nil 356: end
Set up a faked request and transaction object, yield to the given block with them, and then call the #delegate method of the applet under test. Unless otherwise indicated (via a call to #should_not_delegate), the expectation will be set up that the applet under test should call its delegate.
# File /Users/ged/source/ruby/Arrow/lib/arrow/applettestcase.rb, line 364 364: def with_fixtured_delegation( chain=[], *args, &block ) 365: txn, req, vargs, *args = setup_fixtured_request( "delegated_action", *args ) 366: 367: # Set delegation expectation 368: @delegate_behavior ||= should_delegate() 369: 370: if block.arity == 3 371: block.call( txn, req, vargs ) 372: else 373: block.call( txn, req ) 374: end 375: 376: rval = @applet.delegate( txn, chain, *args, &@delegate_behavior ) 377: 378: if @delegate_should_be_called 379: assert @delegate_called, 380: "delegate applet was never called" 381: else 382: assert !@delegate_called, 383: "delegate applet was called unexpectedly" 384: end 385: 386: return rval 387: end
Check to be sure an applet has been associated before instantiation.
# File /Users/ged/source/ruby/Arrow/lib/arrow/applettestcase.rb, line 241 241: def initialize( *args ) # :notnew: 242: throw :invalid_test unless self.class.appletclass 243: super 244: end
--- SEC00023
--- ""
--- - name: appletclass rw: RW a_desc: "" - name: appletname rw: RW a_desc: "" - name: fixture_data rw: RW a_desc: ""
--- - methods: - visibility: public aref: M000410 name: ansicode sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/applettestcase.rb, line 129</span>\n\ 129: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-keyword kw\">self</span><span class=\"ruby-operator\">::</span><span class=\"ruby-identifier\">ansicode</span>( <span class=\"ruby-operator\">*</span><span class=\"ruby-identifier\">attributes</span> )\n\ 130: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-value str\">''</span> <span class=\"ruby-keyword kw\">unless</span> <span class=\"ruby-regexp re\">/(?:xterm(?:-color)?|eterm|linux)/i</span> <span class=\"ruby-operator\">=~</span> <span class=\"ruby-constant\">ENV</span>[<span class=\"ruby-value str\">'TERM'</span>]\n\ 131: \n\ 132: <span class=\"ruby-identifier\">attr</span> = <span class=\"ruby-identifier\">attributes</span>.<span class=\"ruby-identifier\">collect</span> {<span class=\"ruby-operator\">|</span><span class=\"ruby-identifier\">a</span><span class=\"ruby-operator\">|</span>\n\ 133: <span class=\"ruby-constant\">AnsiAttributes</span>[<span class=\"ruby-identifier\">a</span>] <span class=\"ruby-operator\">?</span> <span class=\"ruby-constant\">AnsiAttributes</span>[<span class=\"ruby-identifier\">a</span>] <span class=\"ruby-operator\">:</span> <span class=\"ruby-keyword kw\">nil</span>\n\ 134: }.<span class=\"ruby-identifier\">compact</span>.<span class=\"ruby-identifier\">join</span>(<span class=\"ruby-value str\">';'</span>)\n\ 135: <span class=\"ruby-keyword kw\">if</span> <span class=\"ruby-identifier\">attr</span>.<span class=\"ruby-identifier\">empty?</span> \n\ 136: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-value str\">''</span>\n\ 137: <span class=\"ruby-keyword kw\">else</span>\n\ 138: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-value str\">"\\e[%sm"</span> <span class=\"ruby-operator\">%</span> <span class=\"ruby-identifier\">attr</span>\n\ 139: <span class=\"ruby-keyword kw\">end</span>\n\ 140: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Returns a String containing the specified ANSI escapes suitable for inclusion in another string. The <tt>attributes</tt> should be one or more of the keys of AnsiAttributes. </p> params: ( *attributes ) - visibility: public aref: M000414 name: applet_under_test sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/applettestcase.rb, line 203</span>\n\ 203: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-keyword kw\">self</span><span class=\"ruby-operator\">::</span><span class=\"ruby-identifier\">applet_under_test</span>( <span class=\"ruby-identifier\">applet</span> )\n\ 204: <span class=\"ruby-keyword kw\">if</span> <span class=\"ruby-identifier\">applet</span>.<span class=\"ruby-identifier\">is_a?</span>( <span class=\"ruby-constant\">Class</span> )\n\ 205: <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">appletclass</span> = <span class=\"ruby-identifier\">applet</span>\n\ 206: <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">appletname</span> = <span class=\"ruby-identifier\">applet</span>.<span class=\"ruby-identifier\">signature</span>.<span class=\"ruby-identifier\">name</span>\n\ 207: <span class=\"ruby-keyword kw\">else</span>\n\ 208: <span class=\"ruby-identifier\">debug_msg</span> <span class=\"ruby-value str\">"Setting applet under test for testcase: %p"</span> <span class=\"ruby-operator\">%</span> [<span class=\"ruby-keyword kw\">self</span>]\n\ 209: \n\ 210: <span class=\"ruby-keyword kw\">if</span> <span class=\"ruby-constant\">Arrow</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">Applet</span>.<span class=\"ruby-identifier\">derivatives</span>.<span class=\"ruby-identifier\">empty?</span>\n\ 211: <span class=\"ruby-constant\">Pathname</span>.<span class=\"ruby-identifier\">glob</span>( <span class=\"ruby-constant\">APPLET_PATH</span> <span class=\"ruby-operator\">+</span> <span class=\"ruby-value str\">'**/*.rb'</span> ).<span class=\"ruby-identifier\">each</span> <span class=\"ruby-keyword kw\">do</span> <span class=\"ruby-operator\">|</span><span class=\"ruby-identifier\">appletfile</span><span class=\"ruby-operator\">|</span>\n\ 212: <span class=\"ruby-identifier\">debug_msg</span> <span class=\"ruby-node\">"Trying to load #{appletfile}"</span>\n\ 213: <span class=\"ruby-keyword kw\">begin</span>\n\ 214: <span class=\"ruby-constant\">Arrow</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">Applet</span>.<span class=\"ruby-identifier\">load</span>( <span class=\"ruby-identifier\">appletfile</span> )\n\ 215: <span class=\"ruby-keyword kw\">rescue</span> <span class=\"ruby-constant\">LoadError</span>\n\ 216: <span class=\"ruby-keyword kw\">end</span>\n\ 217: <span class=\"ruby-keyword kw\">end</span>\n\ 218: <span class=\"ruby-keyword kw\">end</span>\n\ 219: \n\ 220: <span class=\"ruby-comment cmt\"># :view_template becomes /view[-_]template/</span>\n\ 221: <span class=\"ruby-identifier\">applet_pat</span> = <span class=\"ruby-constant\">Regexp</span>.<span class=\"ruby-identifier\">new</span>( <span class=\"ruby-identifier\">applet</span>.<span class=\"ruby-identifier\">to_s</span>.<span class=\"ruby-identifier\">gsub</span>(<span class=\"ruby-regexp re\">/_/</span>, <span class=\"ruby-value str\">'[-_]?'</span>) )\n\ 222: \n\ 223: <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">appletclass</span> = <span class=\"ruby-constant\">Arrow</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">Applet</span>.<span class=\"ruby-identifier\">derivatives</span>.<span class=\"ruby-identifier\">find</span> {<span class=\"ruby-operator\">|</span><span class=\"ruby-identifier\">klass</span><span class=\"ruby-operator\">|</span>\n\ 224: <span class=\"ruby-identifier\">debug_msg</span> <span class=\"ruby-node\">" Checking applet '#{klass.name.downcase}' =~ #{applet_pat}..."</span>\n\ 225: <span class=\"ruby-identifier\">applet_pat</span>.<span class=\"ruby-identifier\">match</span>( <span class=\"ruby-identifier\">klass</span>.<span class=\"ruby-identifier\">name</span>.<span class=\"ruby-identifier\">downcase</span> ) <span class=\"ruby-keyword kw\">or</span>\n\ 226: <span class=\"ruby-identifier\">applet_pat</span>.<span class=\"ruby-identifier\">match</span>( <span class=\"ruby-identifier\">klass</span>.<span class=\"ruby-identifier\">filename</span> )\n\ 227: } <span class=\"ruby-keyword kw\">or</span> <span class=\"ruby-identifier\">raise</span> <span class=\"ruby-node\">"Failed to load applet matching #{applet_pat}"</span>\n\ 228: <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">appletname</span> = <span class=\"ruby-identifier\">applet</span>.<span class=\"ruby-identifier\">to_s</span>\n\ 229: \n\ 230: <span class=\"ruby-identifier\">debug_msg</span> <span class=\"ruby-node\">"Applet under test is: #{self.appletclass}"</span>\n\ 231: <span class=\"ruby-keyword kw\">end</span>\n\ 232: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Define the name of the applet under test. The given <tt>name</tt> will be stringified, downcased, and searched for in the #applet_path. </p> params: ( applet ) - visibility: public aref: M000411 name: debug_msg sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/applettestcase.rb, line 145</span>\n\ 145: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-keyword kw\">self</span><span class=\"ruby-operator\">::</span><span class=\"ruby-identifier\">debug_msg</span>( <span class=\"ruby-operator\">*</span><span class=\"ruby-identifier\">msgs</span> )\n\ 146: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-keyword kw\">unless</span> <span class=\"ruby-identifier\">$DEBUG</span>\n\ 147: <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">message</span> <span class=\"ruby-value str\">"%sDEBUG>>> %s %s"</span> <span class=\"ruby-operator\">%</span>\n\ 148: [ <span class=\"ruby-identifier\">ansicode</span>(<span class=\"ruby-value str\">'dark'</span>, <span class=\"ruby-value str\">'white'</span>), <span class=\"ruby-identifier\">msgs</span>.<span class=\"ruby-identifier\">join</span>(<span class=\"ruby-value str\">''</span>), <span class=\"ruby-identifier\">ansicode</span>(<span class=\"ruby-value str\">'reset'</span>) ]\n\ 149: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Output the specified <tt>msgs</tt> joined together to <tt>STDERR</tt> if <tt>$DEBUG</tt> is set. </p> params: ( *msgs ) - visibility: public aref: M000412 name: message sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/applettestcase.rb, line 154</span>\n\ 154: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-keyword kw\">self</span><span class=\"ruby-operator\">::</span><span class=\"ruby-identifier\">message</span>( <span class=\"ruby-operator\">*</span><span class=\"ruby-identifier\">msgs</span> )\n\ 155: <span class=\"ruby-identifier\">$stderr</span>.<span class=\"ruby-identifier\">puts</span> <span class=\"ruby-identifier\">msgs</span>.<span class=\"ruby-identifier\">join</span>(<span class=\"ruby-value str\">''</span>)\n\ 156: <span class=\"ruby-identifier\">$stderr</span>.<span class=\"ruby-identifier\">flush</span>\n\ 157: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Output the specified <tt>msgs</tt> joined together to <tt>STDOUT</tt>. </p> params: ( *msgs ) - visibility: public aref: M000413 name: set_fixture_data sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/applettestcase.rb, line 175</span>\n\ 175: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-keyword kw\">self</span><span class=\"ruby-operator\">::</span><span class=\"ruby-identifier\">set_fixture_data</span>( <span class=\"ruby-identifier\">model_class</span>, <span class=\"ruby-identifier\">data</span> )\n\ 176: <span class=\"ruby-ivar\">@fixture_data</span> <span class=\"ruby-operator\">||=</span> {}\n\ 177: \n\ 178: <span class=\"ruby-comment cmt\"># [ [<fields>], [<values1], [<values2>] ]</span>\n\ 179: <span class=\"ruby-keyword kw\">if</span> <span class=\"ruby-identifier\">data</span>.<span class=\"ruby-identifier\">first</span>.<span class=\"ruby-identifier\">is_a?</span>( <span class=\"ruby-constant\">Array</span> )\n\ 180: <span class=\"ruby-identifier\">fields</span> = <span class=\"ruby-identifier\">data</span>.<span class=\"ruby-identifier\">shift</span>\n\ 181: <span class=\"ruby-identifier\">objects</span> = <span class=\"ruby-identifier\">data</span>.<span class=\"ruby-identifier\">collect</span> <span class=\"ruby-keyword kw\">do</span> <span class=\"ruby-operator\">|</span><span class=\"ruby-identifier\">row</span><span class=\"ruby-operator\">|</span>\n\ 182: <span class=\"ruby-identifier\">obj</span> = <span class=\"ruby-constant\">OpenStruct</span>.<span class=\"ruby-identifier\">new</span>\n\ 183: <span class=\"ruby-identifier\">fields</span>.<span class=\"ruby-identifier\">each_with_index</span> {<span class=\"ruby-operator\">|</span><span class=\"ruby-identifier\">f</span>,<span class=\"ruby-identifier\">i</span><span class=\"ruby-operator\">|</span> <span class=\"ruby-identifier\">obj</span>.<span class=\"ruby-identifier\">__send__</span>(<span class=\"ruby-identifier\">f</span>, <span class=\"ruby-identifier\">row</span>[<span class=\"ruby-identifier\">i</span>])}\n\ 184: <span class=\"ruby-keyword kw\">end</span>\n\ 185: \n\ 186: <span class=\"ruby-comment cmt\"># [ {:field1 => <value1>}, {:field1 => <value2>} ]</span>\n\ 187: <span class=\"ruby-keyword kw\">elsif</span> <span class=\"ruby-identifier\">data</span>.<span class=\"ruby-identifier\">first</span>.<span class=\"ruby-identifier\">is_a?</span>( <span class=\"ruby-constant\">Hash</span> )\n\ 188: <span class=\"ruby-identifier\">objects</span> = <span class=\"ruby-identifier\">data</span>.<span class=\"ruby-identifier\">collect</span> <span class=\"ruby-keyword kw\">do</span> <span class=\"ruby-operator\">|</span><span class=\"ruby-identifier\">row</span><span class=\"ruby-operator\">|</span>\n\ 189: <span class=\"ruby-constant\">OpenStruct</span>.<span class=\"ruby-identifier\">new</span>( <span class=\"ruby-identifier\">row</span> )\n\ 190: <span class=\"ruby-keyword kw\">end</span>\n\ 191: \n\ 192: <span class=\"ruby-comment cmt\"># Custom objects (Mocks, etc.)</span>\n\ 193: <span class=\"ruby-keyword kw\">elsif</span> <span class=\"ruby-identifier\">data</span>.<span class=\"ruby-identifier\">is_a?</span>( <span class=\"ruby-constant\">Array</span> )\n\ 194: <span class=\"ruby-identifier\">objects</span> = <span class=\"ruby-identifier\">data</span>\n\ 195: <span class=\"ruby-keyword kw\">end</span> \n\ 196: \n\ 197: <span class=\"ruby-ivar\">@fixture_data</span>[ <span class=\"ruby-identifier\">model_class</span> ] = <span class=\"ruby-identifier\">objects</span>\n\ 198: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Set up model <tt>data</tt> for the given <tt>model_class</tt> that can be used in the stub data classes. The <tt>data</tt> argument is an Array of data, and can be either Hashes or Arrays. If Arrays are used, the first one in the list should be a list of fields, and each subsequent Array should be field values. E.g., </p> <pre> [ [ :title, :description, :date ], [ "title1", "desc1", Date.today ], [ "title2", "desc2", Date.today-4 ], ] </pre> <p> which is equivalent to: </p> <pre> [ { :title => "title1", :description => "desc1", :date => Date.today } { :title => "title1", :description => "desc1", :date => Date.today } ] </pre> params: ( model_class, data ) category: Class type: Public - methods: - visibility: public aref: M000419 name: ansicode sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/applettestcase.rb, line 300</span>\n\ 300: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">ansicode</span>( <span class=\"ruby-operator\">*</span><span class=\"ruby-identifier\">attributes</span> )\n\ 301: <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">class</span>.<span class=\"ruby-identifier\">ansicode</span>( <span class=\"ruby-operator\">*</span><span class=\"ruby-identifier\">attributes</span> )\n\ 302: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Instance-alias for the like-named class method </p> params: ( *attributes ) - visibility: public aref: M000431 name: create_mock sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/applettestcase.rb, line 471</span>\n\ 471: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">create_mock</span>( <span class=\"ruby-identifier\">name</span> )\n\ 472: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-identifier\">flexmock</span>( <span class=\"ruby-identifier\">name</span> )\n\ 473: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Create a new mock object and register it to be verified at the end of the test. </p> params: ( name ) - visibility: public aref: M000420 name: debug_msg sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/applettestcase.rb, line 306</span>\n\ 306: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">debug_msg</span>( <span class=\"ruby-operator\">*</span><span class=\"ruby-identifier\">msgs</span> )\n\ 307: <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">class</span>.<span class=\"ruby-identifier\">debug_msg</span>( <span class=\"ruby-operator\">*</span><span class=\"ruby-identifier\">msgs</span> )\n\ 308: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Instance alias for the like-named class method </p> params: ( *msgs ) - visibility: public aref: M000428 name: default_delegation_behavior sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/applettestcase.rb, line 414</span>\n\ 414: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">default_delegation_behavior</span>\n\ 415: <span class=\"ruby-ivar\">@delegate_called</span> = <span class=\"ruby-keyword kw\">true</span>\n\ 416: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> The default block passed to <a href="Applet.html#M000572">Arrow::Applet#delegate</a> by <a href="AppletTestCase.html#M000425">#with_fixtured_delegation</a> if no block is passed to either <a href="AppletTestCase.html#M000426">#should_delegate</a> or <a href="AppletTestCase.html#M000427">#should_not_delegate</a>. If you override this, you should either super to this method or set @delegate_called yourself. </p> params: () - visibility: public aref: M000433 name: extract_parameters sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/applettestcase.rb, line 490</span>\n\ 490: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">extract_parameters</span>( <span class=\"ruby-identifier\">queryhash</span>, <span class=\"ruby-identifier\">key</span>=<span class=\"ruby-keyword kw\">nil</span> )\n\ 491: <span class=\"ruby-identifier\">profile</span> = <span class=\"ruby-ivar\">@applet</span>.<span class=\"ruby-identifier\">signature</span>.<span class=\"ruby-identifier\">validator_profiles</span>[ <span class=\"ruby-ivar\">@action</span> ] <span class=\"ruby-operator\">||</span>\n\ 492: <span class=\"ruby-ivar\">@applet</span>.<span class=\"ruby-identifier\">signature_profiles</span>[ <span class=\"ruby-identifier\">:__default__</span> ]\n\ 493: <span class=\"ruby-identifier\">validator</span> = <span class=\"ruby-constant\">Arrow</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">FormValidator</span>.<span class=\"ruby-identifier\">new</span>( <span class=\"ruby-identifier\">profile</span> )\n\ 494: \n\ 495: <span class=\"ruby-identifier\">validator</span>.<span class=\"ruby-identifier\">validate</span>( <span class=\"ruby-identifier\">queryhash</span> )\n\ 496: \n\ 497: <span class=\"ruby-keyword kw\">if</span> <span class=\"ruby-identifier\">key</span>\n\ 498: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-identifier\">validator</span>.<span class=\"ruby-identifier\">valid</span>[ <span class=\"ruby-identifier\">key</span> ]\n\ 499: <span class=\"ruby-keyword kw\">else</span>\n\ 500: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-identifier\">validator</span>.<span class=\"ruby-identifier\">valid</span>\n\ 501: <span class=\"ruby-keyword kw\">end</span>\n\ 502: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Extract parameters for the given <tt>key</tt> from the given <tt>queryhash</tt> using the form validator for the current action and return it. </p> params: ( queryhash, key=nil ) - visibility: public aref: M000432 name: fixture_session sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/applettestcase.rb, line 477</span>\n\ 477: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">fixture_session</span>( <span class=\"ruby-identifier\">txn</span> )\n\ 478: <span class=\"ruby-identifier\">session</span> = <span class=\"ruby-identifier\">create_mock</span>( <span class=\"ruby-value str\">"session"</span> )\n\ 479: <span class=\"ruby-identifier\">txn</span>.<span class=\"ruby-identifier\">should_receive</span>( <span class=\"ruby-identifier\">:session</span> ).\n\ 480: <span class=\"ruby-identifier\">and_return</span>( <span class=\"ruby-identifier\">session</span> ).<span class=\"ruby-identifier\">zero_or_more_times</span>\n\ 481: <span class=\"ruby-identifier\">session</span>.<span class=\"ruby-identifier\">should_receive</span>( <span class=\"ruby-identifier\">:[]</span> ).<span class=\"ruby-identifier\">and_return</span>( <span class=\"ruby-keyword kw\">nil</span> ).<span class=\"ruby-identifier\">zero_or_more_times</span>\n\ 482: <span class=\"ruby-identifier\">session</span>.<span class=\"ruby-identifier\">should_receive</span>( <span class=\"ruby-identifier\">:[]=</span> ).<span class=\"ruby-identifier\">and_return</span>( <span class=\"ruby-keyword kw\">nil</span> ).<span class=\"ruby-identifier\">zero_or_more_times</span>\n\ 483: \n\ 484: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-identifier\">session</span>\n\ 485: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Set up a mock object as the given transaction‘s session. </p> params: ( txn ) - visibility: public aref: M000421 name: hrule sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/applettestcase.rb, line 313</span>\n\ 313: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">hrule</span>( <span class=\"ruby-identifier\">length</span>=<span class=\"ruby-value\">75</span>, <span class=\"ruby-identifier\">char</span>=<span class=\"ruby-value str\">"-"</span> )\n\ 314: <span class=\"ruby-keyword kw\">return</span> (<span class=\"ruby-identifier\">char</span> <span class=\"ruby-operator\">*</span> <span class=\"ruby-identifier\">length</span> ) <span class=\"ruby-operator\">+</span> <span class=\"ruby-value str\">"\\n"</span>\n\ 315: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Return a separator line made up of <tt>length</tt> of the specified <tt>char</tt>. </p> params: ( length=75, char="-" ) - visibility: public aref: M000422 name: hrule_section sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/applettestcase.rb, line 319</span>\n\ 319: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">hrule_section</span>( <span class=\"ruby-identifier\">content</span>, <span class=\"ruby-identifier\">caption</span>=<span class=\"ruby-value str\">''</span> )\n\ 320: <span class=\"ruby-identifier\">caption</span> <span class=\"ruby-operator\"><<</span> <span class=\"ruby-value str\">' '</span> <span class=\"ruby-keyword kw\">unless</span> <span class=\"ruby-identifier\">caption</span>.<span class=\"ruby-identifier\">empty?</span>\n\ 321: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-identifier\">caption</span> <span class=\"ruby-operator\">+</span>\n\ 322: <span class=\"ruby-identifier\">hrule</span>( <span class=\"ruby-value\">75</span> <span class=\"ruby-operator\">-</span> <span class=\"ruby-identifier\">caption</span>.<span class=\"ruby-identifier\">length</span> ) <span class=\"ruby-operator\">+</span>\n\ 323: <span class=\"ruby-identifier\">content</span>.<span class=\"ruby-identifier\">chomp</span> <span class=\"ruby-operator\">+</span> <span class=\"ruby-value str\">"\\n"</span> <span class=\"ruby-operator\">+</span>\n\ 324: <span class=\"ruby-identifier\">hrule</span>()\n\ 325: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Return a section delimited by hrules with the specified <tt>caption</tt> and <tt>content</tt>. </p> params: ( content, caption='' ) - visibility: public aref: M000418 name: message sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/applettestcase.rb, line 294</span>\n\ 294: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">message</span>( <span class=\"ruby-operator\">*</span><span class=\"ruby-identifier\">msgs</span> )\n\ 295: <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">class</span>.<span class=\"ruby-identifier\">message</span>( <span class=\"ruby-operator\">*</span><span class=\"ruby-identifier\">msgs</span> )\n\ 296: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Instance alias for the like-named class method. </p> params: ( *msgs ) - visibility: public aref: M000423 name: print_test_header sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/applettestcase.rb, line 329</span>\n\ 329: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">print_test_header</span>( <span class=\"ruby-identifier\">desc</span> )\n\ 330: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-keyword kw\">unless</span> <span class=\"ruby-identifier\">$VERBOSE</span> <span class=\"ruby-operator\">||</span> <span class=\"ruby-identifier\">$DEBUG</span>\n\ 331: <span class=\"ruby-identifier\">message</span> <span class=\"ruby-value str\">"%s>>> %s <<<%s"</span> <span class=\"ruby-operator\">%</span> \n\ 332: [ <span class=\"ruby-identifier\">ansicode</span>(<span class=\"ruby-value str\">'bold'</span>,<span class=\"ruby-value str\">'yellow'</span>,<span class=\"ruby-value str\">'on_blue'</span>), <span class=\"ruby-identifier\">desc</span>, <span class=\"ruby-identifier\">ansicode</span>(<span class=\"ruby-value str\">'reset'</span>) ]\n\ 333: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Output a header for delimiting tests </p> params: ( desc ) - visibility: public aref: M000417 name: run sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/applettestcase.rb, line 282</span>\n\ 282: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">run</span>( <span class=\"ruby-identifier\">result</span> )\n\ 283: <span class=\"ruby-identifier\">print_test_header</span> <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">name</span>\n\ 284: <span class=\"ruby-keyword kw\">super</span>\n\ 285: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Output the name of the test as it‘s running if in verbose mode, and support per-test debugging settings. </p> params: ( result ) - visibility: public aref: M000416 name: setup sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/applettestcase.rb, line 248</span>\n\ 248: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">setup</span>\n\ 249: <span class=\"ruby-keyword kw\">super</span>\n\ 250: \n\ 251: <span class=\"ruby-identifier\">debug_msg</span> <span class=\"ruby-value str\">"%p: Setting up test for applet %p"</span> <span class=\"ruby-operator\">%</span> \n\ 252: [<span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">class</span>, <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">class</span>.<span class=\"ruby-identifier\">appletclass</span>]\n\ 253: \n\ 254: <span class=\"ruby-comment cmt\"># Give the test an easy reference to the applet class under test</span>\n\ 255: <span class=\"ruby-ivar\">@appletclass</span> = <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">class</span>.<span class=\"ruby-identifier\">appletclass</span> <span class=\"ruby-keyword kw\">or</span>\n\ 256: <span class=\"ruby-identifier\">raise</span> <span class=\"ruby-node\">"No applet defined for '#{self.class.name}'. Add "</span> <span class=\"ruby-operator\">+</span>\n\ 257: <span class=\"ruby-value str\">"'applet_under_test :<appletname>' to correct this."</span>\n\ 258: <span class=\"ruby-ivar\">@appletname</span> = <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">class</span>.<span class=\"ruby-identifier\">appletname</span>\n\ 259: <span class=\"ruby-ivar\">@action</span> = <span class=\"ruby-keyword kw\">nil</span>\n\ 260: \n\ 261: <span class=\"ruby-ivar\">@config</span> = <span class=\"ruby-identifier\">flexmock</span>( <span class=\"ruby-value str\">"mock config"</span> )\n\ 262: <span class=\"ruby-ivar\">@config</span>.<span class=\"ruby-identifier\">should_receive</span>( <span class=\"ruby-identifier\">:symbolize_keys</span> ).<span class=\"ruby-identifier\">and_return</span>({})\n\ 263: <span class=\"ruby-ivar\">@config</span>.<span class=\"ruby-identifier\">should_receive</span>( <span class=\"ruby-identifier\">:member?</span> ).\n\ 264: <span class=\"ruby-identifier\">with</span>( <span class=\"ruby-identifier\">:db</span> ).\n\ 265: <span class=\"ruby-identifier\">and_return</span>( <span class=\"ruby-keyword kw\">false</span> )\n\ 266: <span class=\"ruby-ivar\">@config</span>.<span class=\"ruby-identifier\">should_receive</span>( <span class=\"ruby-identifier\">:name</span> ).<span class=\"ruby-identifier\">and_return</span>( <span class=\"ruby-value str\">"mock"</span> )\n\ 267: <span class=\"ruby-ivar\">@config</span>.<span class=\"ruby-identifier\">should_receive</span>( <span class=\"ruby-identifier\">:member?</span> ).\n\ 268: <span class=\"ruby-identifier\">with</span>( <span class=\"ruby-identifier\">:model</span> ).\n\ 269: <span class=\"ruby-identifier\">and_return</span>( <span class=\"ruby-keyword kw\">false</span> )\n\ 270: <span class=\"ruby-ivar\">@config</span>.<span class=\"ruby-identifier\">should_ignore_missing</span>\n\ 271: <span class=\"ruby-ivar\">@template_factory</span> = <span class=\"ruby-identifier\">flexmock</span>( <span class=\"ruby-value str\">"mock template factory"</span> )\n\ 272: \n\ 273: <span class=\"ruby-ivar\">@applet</span> = <span class=\"ruby-ivar\">@appletclass</span>.<span class=\"ruby-identifier\">new</span>( <span class=\"ruby-ivar\">@config</span>, <span class=\"ruby-ivar\">@template_factory</span>, <span class=\"ruby-node\">"#{@appletname}"</span> )\n\ 274: \n\ 275: <span class=\"ruby-ivar\">@delegate_behavior</span> = <span class=\"ruby-keyword kw\">nil</span>\n\ 276: <span class=\"ruby-ivar\">@delegate_should_be_called</span> = <span class=\"ruby-keyword kw\">true</span>\n\ 277: <span class=\"ruby-ivar\">@delegate_called</span> = <span class=\"ruby-keyword kw\">false</span>\n\ 278: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Set up a test with some useful test objects </p> params: () - visibility: public aref: M000429 name: setup_fixtured_request sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/applettestcase.rb, line 422</span>\n\ 422: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">setup_fixtured_request</span>( <span class=\"ruby-identifier\">action</span>, <span class=\"ruby-operator\">*</span><span class=\"ruby-identifier\">args</span> )\n\ 423: <span class=\"ruby-identifier\">uri</span> = <span class=\"ruby-value str\">'/'</span> <span class=\"ruby-operator\">+</span> <span class=\"ruby-constant\">File</span>.<span class=\"ruby-identifier\">join</span>( <span class=\"ruby-ivar\">@appletname</span>, <span class=\"ruby-identifier\">action</span>.<span class=\"ruby-identifier\">to_s</span> )\n\ 424: <span class=\"ruby-identifier\">req</span> = <span class=\"ruby-constant\">Apache</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">Request</span>.<span class=\"ruby-identifier\">new</span>( <span class=\"ruby-identifier\">uri</span> )\n\ 425: \n\ 426: <span class=\"ruby-identifier\">params</span> = <span class=\"ruby-identifier\">args</span>.<span class=\"ruby-identifier\">last</span>.<span class=\"ruby-identifier\">is_a?</span>( <span class=\"ruby-constant\">Hash</span> ) <span class=\"ruby-operator\">?</span> <span class=\"ruby-identifier\">args</span>.<span class=\"ruby-identifier\">pop</span> <span class=\"ruby-operator\">:</span> {}\n\ 427: <span class=\"ruby-identifier\">debug_msg</span> <span class=\"ruby-value str\">"Parameters hash set to: %p"</span> <span class=\"ruby-operator\">%</span> [<span class=\"ruby-identifier\">params</span>]\n\ 428: <span class=\"ruby-identifier\">req</span>.<span class=\"ruby-identifier\">paramtable</span> = <span class=\"ruby-identifier\">params</span>\n\ 429: \n\ 430: <span class=\"ruby-identifier\">debug_msg</span> <span class=\"ruby-value str\">"Request is: %p"</span> <span class=\"ruby-operator\">%</span> [<span class=\"ruby-identifier\">req</span>]\n\ 431: <span class=\"ruby-comment cmt\">#txn = Arrow::Transaction.new( req, @config, nil )</span>\n\ 432: <span class=\"ruby-identifier\">txn</span> = <span class=\"ruby-identifier\">flexmock</span>( <span class=\"ruby-value str\">"transaction"</span> )\n\ 433: <span class=\"ruby-identifier\">txn</span>.<span class=\"ruby-identifier\">should_receive</span>( <span class=\"ruby-identifier\">:request</span> ).\n\ 434: <span class=\"ruby-identifier\">and_return</span>( <span class=\"ruby-identifier\">req</span> ).<span class=\"ruby-identifier\">zero_or_more_times</span>\n\ 435: <span class=\"ruby-identifier\">txn</span>.<span class=\"ruby-identifier\">should_receive</span>( <span class=\"ruby-identifier\">:vargs=</span> ).\n\ 436: <span class=\"ruby-identifier\">with</span>( <span class=\"ruby-constant\">Arrow</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">FormValidator</span> ).<span class=\"ruby-identifier\">zero_or_more_times</span>\n\ 437: \n\ 438: <span class=\"ruby-identifier\">vargs</span> = <span class=\"ruby-identifier\">flexmock</span>( <span class=\"ruby-value str\">"form validator"</span> )\n\ 439: <span class=\"ruby-identifier\">txn</span>.<span class=\"ruby-identifier\">should_receive</span>( <span class=\"ruby-identifier\">:vargs</span> ).\n\ 440: <span class=\"ruby-identifier\">and_return</span>( <span class=\"ruby-identifier\">vargs</span> ).\n\ 441: <span class=\"ruby-identifier\">zero_or_more_times</span>\n\ 442: <span class=\"ruby-identifier\">vargs</span>.<span class=\"ruby-identifier\">should_receive</span>( <span class=\"ruby-identifier\">:[]</span> ).<span class=\"ruby-identifier\">zero_or_more_times</span>\n\ 443: \n\ 444: <span class=\"ruby-identifier\">debug_msg</span> <span class=\"ruby-value str\">"Transaction is: %p"</span> <span class=\"ruby-operator\">%</span> [<span class=\"ruby-identifier\">txn</span>]\n\ 445: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-identifier\">txn</span>, <span class=\"ruby-identifier\">req</span>, <span class=\"ruby-identifier\">vargs</span>, <span class=\"ruby-operator\">*</span><span class=\"ruby-identifier\">args</span>\n\ 446: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Set up faked request and transaction objects for the given <tt>action</tt>, using the given <tt>args</tt> as REST-style arguments, and/or query arguments if the last element is a Hash. </p> params: ( action, *args ) - visibility: public aref: M000426 name: should_delegate sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/applettestcase.rb, line 393</span>\n\ 393: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">should_delegate</span>( <span class=\"ruby-operator\">&</span><span class=\"ruby-identifier\">block</span> )\n\ 394: <span class=\"ruby-ivar\">@delegate_should_be_called</span> = <span class=\"ruby-keyword kw\">true</span>\n\ 395: <span class=\"ruby-ivar\">@delegate_behavior</span> = <span class=\"ruby-identifier\">block</span> <span class=\"ruby-operator\">||</span> \n\ 396: <span class=\"ruby-identifier\">method</span>( <span class=\"ruby-identifier\">:default_delegation_behavior</span> ).<span class=\"ruby-identifier\">to_proc</span>\n\ 397: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> The default delegate block — call this from within your <a href="AppletTestCase.html#M000425">#with_fixtured_delegation</a> block if the applet under test should delegate to the next applet in the chain. </p> params: ( &block ) - visibility: public aref: M000430 name: should_load_template sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/applettestcase.rb, line 452</span>\n\ 452: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">should_load_template</span>( <span class=\"ruby-identifier\">key</span> )\n\ 453: <span class=\"ruby-identifier\">tname</span> = <span class=\"ruby-ivar\">@applet</span>.<span class=\"ruby-identifier\">signature</span>.<span class=\"ruby-identifier\">templates</span>[ <span class=\"ruby-identifier\">key</span> ] <span class=\"ruby-keyword kw\">or</span>\n\ 454: <span class=\"ruby-identifier\">raise</span> <span class=\"ruby-constant\">Test</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">Unit</span><span class=\"ruby-operator\">::</span><span class=\"ruby-constant\">AssertionFailedError</span>.<span class=\"ruby-identifier\">new</span>(\n\ 455: <span class=\"ruby-node\">"Expected applet to load the '#{key.inspect}' template\\n"</span> <span class=\"ruby-operator\">+</span>\n\ 456: <span class=\"ruby-value str\">"but there was no such template registered by the application."</span> )\n\ 457: \n\ 458: <span class=\"ruby-identifier\">mock_template</span> = <span class=\"ruby-identifier\">flexmock</span>( <span class=\"ruby-node\">"#{key.inspect} template"</span>)\n\ 459: <span class=\"ruby-ivar\">@template_factory</span>.<span class=\"ruby-identifier\">should_receive</span>( <span class=\"ruby-identifier\">:get_template</span> ).\n\ 460: <span class=\"ruby-identifier\">with</span>( <span class=\"ruby-identifier\">tname</span> ).<span class=\"ruby-identifier\">and_return</span>( <span class=\"ruby-identifier\">mock_template</span> ).<span class=\"ruby-identifier\">at_least</span>.<span class=\"ruby-identifier\">once</span>\n\ 461: <span class=\"ruby-identifier\">mock_template</span>.<span class=\"ruby-identifier\">should_ignore_missing</span>\n\ 462: \n\ 463: <span class=\"ruby-keyword kw\">yield</span>( <span class=\"ruby-identifier\">mock_template</span> ) <span class=\"ruby-keyword kw\">if</span> <span class=\"ruby-identifier\">block_given?</span>\n\ 464: \n\ 465: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-identifier\">mock_template</span>\n\ 466: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Assert that the current action should load the template associated with the given <tt>key</tt>, and passes a mock template object to the given block for further specification. </p> params: ( key ) {|mock_template| ...} - visibility: public aref: M000427 name: should_not_delegate sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/applettestcase.rb, line 403</span>\n\ 403: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">should_not_delegate</span>( <span class=\"ruby-operator\">&</span><span class=\"ruby-identifier\">block</span> )\n\ 404: <span class=\"ruby-ivar\">@delegate_should_be_called</span> = <span class=\"ruby-keyword kw\">false</span>\n\ 405: <span class=\"ruby-ivar\">@delegate_behavior</span> = <span class=\"ruby-identifier\">block</span> <span class=\"ruby-operator\">||</span> \n\ 406: <span class=\"ruby-identifier\">method</span>( <span class=\"ruby-identifier\">:default_delegation_behavior</span> ).<span class=\"ruby-identifier\">to_proc</span>\n\ 407: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Negated delegate block — call this at the end of your <a href="AppletTestCase.html#M000425">#with_fixtured_delegation</a> block if the applet under test should <b>not</b> delegate to the next applet in the chain. </p> params: ( &block ) - visibility: public aref: M000424 name: with_fixtured_action sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/applettestcase.rb, line 343</span>\n\ 343: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">with_fixtured_action</span>( <span class=\"ruby-identifier\">action</span>=<span class=\"ruby-keyword kw\">nil</span>, <span class=\"ruby-operator\">*</span><span class=\"ruby-identifier\">args</span>, <span class=\"ruby-operator\">&</span><span class=\"ruby-identifier\">block</span> )\n\ 344: <span class=\"ruby-ivar\">@action</span> = <span class=\"ruby-identifier\">action</span>\n\ 345: <span class=\"ruby-identifier\">txn</span>, <span class=\"ruby-identifier\">req</span>, <span class=\"ruby-identifier\">vargs</span>, <span class=\"ruby-operator\">*</span><span class=\"ruby-identifier\">args</span> = <span class=\"ruby-identifier\">setup_fixtured_request</span>( <span class=\"ruby-identifier\">action</span>, <span class=\"ruby-operator\">*</span><span class=\"ruby-identifier\">args</span> )\n\ 346: \n\ 347: <span class=\"ruby-keyword kw\">if</span> <span class=\"ruby-identifier\">block</span>.<span class=\"ruby-identifier\">arity</span> <span class=\"ruby-operator\">==</span> <span class=\"ruby-value\">3</span>\n\ 348: <span class=\"ruby-identifier\">block</span>.<span class=\"ruby-identifier\">call</span>( <span class=\"ruby-identifier\">txn</span>, <span class=\"ruby-identifier\">req</span>, <span class=\"ruby-identifier\">vargs</span> )\n\ 349: <span class=\"ruby-keyword kw\">else</span>\n\ 350: <span class=\"ruby-identifier\">block</span>.<span class=\"ruby-identifier\">call</span>( <span class=\"ruby-identifier\">txn</span>, <span class=\"ruby-identifier\">req</span> )\n\ 351: <span class=\"ruby-keyword kw\">end</span>\n\ 352: \n\ 353: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-ivar\">@applet</span>.<span class=\"ruby-identifier\">run</span>( <span class=\"ruby-identifier\">txn</span>, <span class=\"ruby-identifier\">action</span>.<span class=\"ruby-identifier\">to_s</span>, <span class=\"ruby-operator\">*</span><span class=\"ruby-identifier\">args</span> )\n\ 354: <span class=\"ruby-keyword kw\">ensure</span>\n\ 355: <span class=\"ruby-ivar\">@action</span> = <span class=\"ruby-keyword kw\">nil</span>\n\ 356: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Set up faked request and transaction objects, yield to the given block with them, then <a href="AppletTestCase.html#M000417">run</a> the applet under test with them when the block returns. </p> params: ( action=nil, *args, &block ) - visibility: public aref: M000425 name: with_fixtured_delegation sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/applettestcase.rb, line 364</span>\n\ 364: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">with_fixtured_delegation</span>( <span class=\"ruby-identifier\">chain</span>=[], <span class=\"ruby-operator\">*</span><span class=\"ruby-identifier\">args</span>, <span class=\"ruby-operator\">&</span><span class=\"ruby-identifier\">block</span> )\n\ 365: <span class=\"ruby-identifier\">txn</span>, <span class=\"ruby-identifier\">req</span>, <span class=\"ruby-identifier\">vargs</span>, <span class=\"ruby-operator\">*</span><span class=\"ruby-identifier\">args</span> = <span class=\"ruby-identifier\">setup_fixtured_request</span>( <span class=\"ruby-value str\">"delegated_action"</span>, <span class=\"ruby-operator\">*</span><span class=\"ruby-identifier\">args</span> )\n\ 366: \n\ 367: <span class=\"ruby-comment cmt\"># Set delegation expectation</span>\n\ 368: <span class=\"ruby-ivar\">@delegate_behavior</span> <span class=\"ruby-operator\">||=</span> <span class=\"ruby-identifier\">should_delegate</span>()\n\ 369: \n\ 370: <span class=\"ruby-keyword kw\">if</span> <span class=\"ruby-identifier\">block</span>.<span class=\"ruby-identifier\">arity</span> <span class=\"ruby-operator\">==</span> <span class=\"ruby-value\">3</span>\n\ 371: <span class=\"ruby-identifier\">block</span>.<span class=\"ruby-identifier\">call</span>( <span class=\"ruby-identifier\">txn</span>, <span class=\"ruby-identifier\">req</span>, <span class=\"ruby-identifier\">vargs</span> )\n\ 372: <span class=\"ruby-keyword kw\">else</span>\n\ 373: <span class=\"ruby-identifier\">block</span>.<span class=\"ruby-identifier\">call</span>( <span class=\"ruby-identifier\">txn</span>, <span class=\"ruby-identifier\">req</span> )\n\ 374: <span class=\"ruby-keyword kw\">end</span>\n\ 375: \n\ 376: <span class=\"ruby-identifier\">rval</span> = <span class=\"ruby-ivar\">@applet</span>.<span class=\"ruby-identifier\">delegate</span>( <span class=\"ruby-identifier\">txn</span>, <span class=\"ruby-identifier\">chain</span>, <span class=\"ruby-operator\">*</span><span class=\"ruby-identifier\">args</span>, <span class=\"ruby-operator\">&</span><span class=\"ruby-ivar\">@delegate_behavior</span> )\n\ 377: \n\ 378: <span class=\"ruby-keyword kw\">if</span> <span class=\"ruby-ivar\">@delegate_should_be_called</span>\n\ 379: <span class=\"ruby-identifier\">assert</span> <span class=\"ruby-ivar\">@delegate_called</span>,\n\ 380: <span class=\"ruby-value str\">"delegate applet was never called"</span> \n\ 381: <span class=\"ruby-keyword kw\">else</span>\n\ 382: <span class=\"ruby-identifier\">assert</span> <span class=\"ruby-operator\">!</span><span class=\"ruby-ivar\">@delegate_called</span>,\n\ 383: <span class=\"ruby-value str\">"delegate applet was called unexpectedly"</span>\n\ 384: <span class=\"ruby-keyword kw\">end</span>\n\ 385: \n\ 386: <span class=\"ruby-keyword kw\">return</span> <span class=\"ruby-identifier\">rval</span>\n\ 387: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Set up a faked request and transaction object, yield to the given block with them, and then call the #delegate method of the applet under test. Unless otherwise indicated (via a call to <a href="AppletTestCase.html#M000427">#should_not_delegate</a>), the expectation will be set up that the applet under test should call its delegate. </p> params: ( chain=[], *args, &block ) category: Instance type: Public - methods: - visibility: protected aref: M000415 name: initialize sourcecode: " <span class=\"ruby-comment cmt\"># File /Users/ged/source/ruby/Arrow/lib/arrow/applettestcase.rb, line 241</span>\n\ 241: <span class=\"ruby-keyword kw\">def</span> <span class=\"ruby-identifier\">initialize</span>( <span class=\"ruby-operator\">*</span><span class=\"ruby-identifier\">args</span> ) <span class=\"ruby-comment cmt\"># :notnew:</span>\n\ 242: <span class=\"ruby-identifier\">throw</span> <span class=\"ruby-identifier\">:invalid_test</span> <span class=\"ruby-keyword kw\">unless</span> <span class=\"ruby-keyword kw\">self</span>.<span class=\"ruby-identifier\">class</span>.<span class=\"ruby-identifier\">appletclass</span>\n\ 243: <span class=\"ruby-keyword kw\">super</span>\n\ 244: <span class=\"ruby-keyword kw\">end</span>" m_desc: |- <p> Check to be sure an applet has been associated before instantiation. </p> params: ( *args ) category: Instance type: Protected
---
--- - name: APPLET_PATH desc: |+ The default path to the directory where applets live value: Pathname.new( $0 ).expand_path.dirname + "applets" - name: AnsiAttributes desc: |+ Set some ANSI escape code constants (Shamelessly stolen from Perl‘s Term::ANSIColor by Russ Allbery <rra@stanford.edu> and Zenin <zenin@best.com> value: "{ 'clear' => 0, 'reset' => 0, 'bold' => 1, 'dark' => 2, 'underline' => 4, 'underscore' => 4, 'blink' => 5, 'reverse' => 7, 'concealed' => 8, 'black' => 30, 'on_black' => 40, 'red' => 31, 'on_red' => 41, 'green' => 32, 'on_green' => 42, 'yellow' => 33, 'on_yellow' => 43, 'blue' => 34, 'on_blue' => 44, 'magenta' => 35, 'on_magenta' => 45, 'cyan' => 36, 'on_cyan' => 46, 'white' => 37, 'on_white' => 47"
Generated with the Darkfish Rdoc Generator.