Sha256: fbaa130ea32662fcc988946b8971d10babefdba692470408ca3d6fc8bd0b3614
Contents?: true
Size: 1.05 KB
Versions: 5
Compression:
Stored size: 1.05 KB
Contents
module ATP module Processors # Assigns an ID to all test nodes that don't have one class AddIDs < Processor def run(node) @i = 0 @existing_ids = [] @add_ids = false # First collect all existing IDs, this is required to make sure # that a generated ID does not clash with an existing one process(node) # Now run again to fill in the blanks @add_ids = true process(node) end def on_test(node) if @add_ids node = node.ensure_node_present(:id) node.updated(nil, process_all(node)) else if id = node.find(:id) @existing_ids << id.value end process_all(node) end end alias_method :on_group, :on_test def on_id(node) if @add_ids unless node.value node.updated(nil, [next_id]) end end end def next_id @i += 1 @i += 1 while @existing_ids.include?("t#{@i}") "t#{@i}" end end end end
Version data entries
5 entries across 5 versions & 1 rubygems