Sha256: 5274b47c4b8e653622c171f9c5cd5c01101f6f04508f87dde16f30532a327299
Contents?: true
Size: 1.28 KB
Versions: 11
Compression:
Stored size: 1.28 KB
Contents
require 'xcknife/json_stream_parser_helper' require 'set' module XCKnife class EventsAnalyzer include JsonStreamParserHelper attr_reader :target_class_map, :total_tests def self.for(events, relevant_partitions) return NullEventsAnalyzer.new if events.nil? new(events, relevant_partitions) end def initialize(events, relevant_partitions) @total_tests = 0 @relevant_partitions = relevant_partitions @target_class_map = analyze_events(events) end def has_test_target?(target) target_class_map.has_key?(target) end def has_test_class?(target, clazz) has_test_target?(target) and target_class_map[target].include?(clazz) end private def analyze_events(events) ret = Hash.new { |h, key| h[key] = Set.new } each_test_event(events) do |target_name, result| next unless @relevant_partitions.include?(target_name) @total_tests += 1 ret[target_name] << result.className end ret end end # Null object for EventsAnalyzer # @ref https://en.wikipedia.org/wiki/Null_Object_pattern class NullEventsAnalyzer def has_test_target?(target) true end def has_test_class?(target, clazz) true end def total_tests 0 end end end
Version data entries
11 entries across 11 versions & 1 rubygems