trace-util-adv 0.2.3 → 0.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (114) hide show
  1. data/Advanced TraceUtils tutorial.pdf +0 -0
  2. data/CHANGELOG +4 -8
  3. data/{lib/TODO.txt → TODO.txt} +8 -0
  4. data/VERSION +1 -1
  5. data/lib/action_handler/action_handler.rb +40 -0
  6. data/lib/{action_handler.rb → action_handler/action_handler_registration.rb} +3 -41
  7. data/lib/appenders/appender.rb +1 -13
  8. data/lib/appenders/appender_mappings.rb +13 -0
  9. data/lib/appenders/base_appender.rb +2 -11
  10. data/lib/appenders/file_appender.rb +21 -13
  11. data/lib/appenders/include.rb +4 -0
  12. data/lib/appenders/types/README-NOTE.txt +2 -0
  13. data/lib/appenders/{html_appender.rb → types/html_appender.rb} +4 -20
  14. data/lib/appenders/{logger_appender.rb → types/logger_appender.rb} +0 -0
  15. data/lib/appenders/{stream_appender.rb → types/stream_appender.rb} +0 -0
  16. data/lib/appenders/{template_log_appender.rb → types/template_log_appender.rb} +0 -0
  17. data/lib/appenders/{xml_appender.rb → types/xml_appender.rb} +1 -1
  18. data/lib/extensions/array_extensions.rb +42 -0
  19. data/lib/extensions/hash_extensions.rb +181 -0
  20. data/lib/extensions/hash_rule_extensions.rb +50 -0
  21. data/lib/extensions/include.rb +1 -0
  22. data/lib/extensions/nilclass_extensions.rb +10 -0
  23. data/lib/extensions/object_extensions.rb +19 -0
  24. data/lib/extensions/string_extensions.rb +35 -0
  25. data/lib/extensions/symbol_extensions.rb +30 -0
  26. data/lib/filters/composite/composite_class_filter.rb +25 -0
  27. data/lib/filters/composite/composite_module_filter.rb +53 -0
  28. data/lib/filters/executor/filter_exec.rb +74 -0
  29. data/lib/filters/filter.rb +43 -0
  30. data/lib/filters/filter_factory.rb +1 -1
  31. data/lib/filters/filter_mappings.rb +36 -0
  32. data/lib/filters/{tracing_filter.rb → filter_registration.rb} +6 -49
  33. data/lib/filters/filter_use.rb +10 -0
  34. data/lib/filters/include.rb +8 -0
  35. data/lib/filters/list/README-NOTE.txt +1 -0
  36. data/lib/filters/list/list_instance_var_filter.rb +27 -0
  37. data/lib/filters/{message_filters.rb → msg_context/message_context_filters.rb} +3 -12
  38. data/lib/filters/simple/argument_filter.rb +24 -0
  39. data/lib/filters/simple/class_filter.rb +15 -0
  40. data/lib/filters/simple/instance_var_filter.rb +25 -0
  41. data/lib/filters/simple/method_filter.rb +17 -0
  42. data/lib/filters/simple/module_filter.rb +14 -0
  43. data/lib/{templates/trace_output_handler.rb → output_handler/output_handler.rb} +0 -0
  44. data/lib/rules/rule_mappings.rb +10 -0
  45. data/lib/{rule_match.rb → rules/rule_match.rb} +5 -3
  46. data/lib/targets/README-NOTE.txt +2 -0
  47. data/lib/targets/file_target.rb +65 -0
  48. data/lib/targets/stream_target.rb +9 -0
  49. data/lib/targets/string_target.rb +9 -0
  50. data/lib/templates/base_template.rb +3 -2
  51. data/lib/templates/html_template.rb +1 -2
  52. data/lib/templates/include.rb +2 -0
  53. data/lib/templates/string_template.rb +24 -25
  54. data/lib/templates/template_mappings.rb +10 -0
  55. data/lib/templates/xml_template.rb +28 -29
  56. data/lib/trace-util-adv.rb +24 -4
  57. data/lib/{trace_calls.rb → trace_calls/trace_calls.rb} +0 -0
  58. data/lib/trace_calls/trace_configuration.rb +29 -0
  59. data/lib/{trace_ext.rb → trace_calls/trace_ext.rb} +10 -9
  60. data/test/{test_action_handler.rb → action_handler/test_action_handler.rb} +1 -5
  61. data/test/action_handler/test_create_action_handler.rb +31 -0
  62. data/test/appenders/test_appender_filters.rb +0 -0
  63. data/test/appenders/test_appender_tracers.rb +56 -0
  64. data/test/appenders/test_create_appender.rb +49 -0
  65. data/test/{test_html_appender.rb → appenders/test_html_appender.rb} +3 -7
  66. data/test/appenders/test_stream_appender.rb +41 -0
  67. data/test/appenders/test_template_log_appender.rb +18 -0
  68. data/test/{test_xml_appender.rb → appenders/test_xml_appender.rb} +0 -0
  69. data/test/extensions/test_filters_creation.rb +36 -0
  70. data/test/extensions/test_hash_extensions.rb +208 -0
  71. data/test/extensions/test_hash_filter_extensions.rb +65 -0
  72. data/test/extensions/test_set_context.rb +94 -0
  73. data/test/extensions/test_string_extensions.rb +55 -0
  74. data/test/extensions/test_symbol_extensions.rb +35 -0
  75. data/test/{test_filters_chain.rb → filters/chain/test_filters_chain.rb} +2 -1
  76. data/test/filters/composite/test_composite_class_filter.rb +78 -0
  77. data/test/filters/composite/test_composite_module_filter.rb +82 -0
  78. data/test/filters/composite/test_composite_var_filter.rb +103 -0
  79. data/test/filters/executor/test_filter_exec.rb +80 -0
  80. data/test/filters/msg_context/test_custom_filters.rb +54 -0
  81. data/test/filters/simple/test_base_filter.rb +56 -0
  82. data/test/filters/simple/test_class_filter.rb +75 -0
  83. data/test/filters/simple/test_instancevar_filter.rb +82 -0
  84. data/test/filters/simple/test_method_filter.rb +77 -0
  85. data/test/filters/simple/test_module_filter.rb +63 -0
  86. data/test/samples/include.rb +1 -0
  87. data/test/samples/sample_classes.rb +23 -0
  88. data/test/samples/sample_composite_filters.rb +50 -0
  89. data/test/samples/sample_filters.rb +58 -0
  90. data/test/sandbox/matcher.rb +7 -0
  91. data/test/sandbox/sandbox.rb +25 -0
  92. data/test/{test_xml_gen.rb → sandbox/test_xml_gen.rb} +0 -0
  93. data/test/trace_calls/test_configure_.rb +70 -0
  94. data/test/trace_calls/tracing/test_html_tracing.rb +20 -0
  95. data/test/trace_calls/tracing/test_logger_tracing.rb +18 -0
  96. data/test/trace_calls/tracing/test_stream_tracing.rb +17 -0
  97. data/test/trace_calls/tracing/test_teamplate_log_tracing.rb +18 -0
  98. data/test/trace_calls/tracing/test_xml_tracing.rb +18 -0
  99. data/test/tracers/test_create_tracers.rb +46 -0
  100. data/test/tracers/test_exec_tracers.rb +11 -0
  101. data/trace-util-adv.gemspec +91 -32
  102. metadata +91 -32
  103. data/lib/core_extensions.rb +0 -101
  104. data/lib/filters/base_filters.rb +0 -178
  105. data/lib/filters/composite_filters.rb +0 -71
  106. data/lib/output_templates.rb +0 -5
  107. data/lib/sample_filters.rb +0 -97
  108. data/lib/trace_appenders.rb +0 -9
  109. data/lib/trace_filters.rb +0 -4
  110. data/test/test_appender.rb +0 -29
  111. data/test/test_file_appender.rb +0 -32
  112. data/test/test_filters.rb +0 -112
  113. data/test/test_filters_create.rb +0 -28
  114. data/test/test_special_filters.rb +0 -78
@@ -0,0 +1,208 @@
1
+ require 'extensions/core_extensions'
2
+ require 'filters/base_filters'
3
+ require 'rules/hash_rule_extensions'
4
+ require "test/unit"
5
+
6
+
7
+ class TestHashExtensions < Test::Unit::TestCase
8
+
9
+ def setup
10
+ end
11
+
12
+ def teardown
13
+ ## Nothing really
14
+ end
15
+
16
+ def test_map
17
+ mapper = {:x => 1, :y => 2, :default => 3}
18
+ result = mapper.map(:x)
19
+ assert_equal result, 1, ":x Should result in 1"
20
+ result = mapper.map(:w)
21
+ assert_equal result, 3, ":w Should result in default 3"
22
+ end
23
+
24
+ def test_method_full_name
25
+ my_instance_variables = {:template_path => 'taglibs/rapid_core.dryml'}
26
+ context_hash = {:class_name => "Alpha::Beta::Gamma", :method_name => "meth_a", :vars => [my_instance_variables], :args => {:a => 7} }
27
+ context.set_context context_hash
28
+ result = context.full_method_name
29
+ assert_equal result, 'Alpha::Beta::Gamma.meth_a', "Should result in 'Alpha::Beta::Gamma.meth_a'"
30
+ end
31
+
32
+ def test_rules_allow_action_include
33
+ rule = {:include => ['a']}
34
+ result = rule.rules_allow_action('a')
35
+ assert_equal result, :include, "Should include a"
36
+ end
37
+
38
+ def test_rules_allow_action_yield
39
+ rule = {:include => ['a']}
40
+ result = rule.rules_allow_action('b')
41
+ assert_equal result, :yield, "Should yield a"
42
+ end
43
+
44
+ def test_rules_allow_action_exclude
45
+ rule = {:exclude => ['a']}
46
+ result = rule.rules_allow_action('a')
47
+ assert_equal result, :exclude, "Should exclude a"
48
+ end
49
+
50
+ def test_rules_allow_action_exclude_and_yield
51
+ rule = {:exclude_and_yield => ['a']}
52
+ result = rule.rules_allow_action('a')
53
+ assert_equal result, :exclude_and_yield, "Should exclude_an_yield a"
54
+ end
55
+
56
+ # TODO
57
+ # rule_allow_action(name) NEEDS MAJOR CLEANUP AND REFACTOR!!!
58
+ def test_rules_allow_action_include_and_yield
59
+ rule = {:include_and_yield => ['a']}
60
+ result = rule.rules_allow_action('a')
61
+ assert_equal result, :include_and_yield, "Should include_an_yield a"
62
+ end
63
+
64
+ def test_rule_list
65
+ rules = ['a']
66
+ result = rules.rule_list
67
+ assert_equal result, rules, "Should not change rule"
68
+
69
+ rules = ['a', 'b']
70
+ result = rules.rule_list
71
+ assert_equal result, rules, "Should not change rules"
72
+
73
+ rules = "a b"
74
+ result = rules.rule_list
75
+ assert_equal result, ['a', 'b'], "Should split rules"
76
+ end
77
+
78
+ # return a symbol, either - :include, :exclude or :yield (let next filter decide)
79
+ def test_rule_allow_action
80
+ rule = {:include => ['a']}
81
+ result = rule.rule_allow_action('a')
82
+ assert_equal result, :include, "Should :include"
83
+
84
+ rule = {:exclude => ['a']}
85
+ result = rule.rule_allow_action('a')
86
+ assert_equal result, :exclude, "Should :exclude"
87
+
88
+ rule = {:include_and_yield => ['a']}
89
+ result = rule.rule_allow_action('a')
90
+ assert_equal result, :include_and_yield, "Should :include_and_yield"
91
+
92
+ rule = {:exclude_and_yield => ['a']}
93
+ result = rule.rule_allow_action('a')
94
+ assert_equal result, :exclude_and_yield, "Should :exclude_and_yield"
95
+
96
+ rule = {:yield => ['a']}
97
+ result = rule.rule_allow_action('a')
98
+ assert_equal result, :yield, "Should :yield"
99
+
100
+ rule = {:include => ['a']}
101
+ result = rule.rule_allow_action('a')
102
+ assert_equal result, :include, "Should :include"
103
+
104
+ rule = {:include => ['b'], :exclude => "a"}
105
+ result = rule.rule_allow_action('a')
106
+ assert_equal result, :exclude, "Should :exclude"
107
+
108
+ rule = {:include => ['a'], :exclude => "a"}
109
+ result = rule.rule_allow_action('a')
110
+ assert_equal result, :include, "Should :include"
111
+
112
+ end
113
+
114
+ def test_tracer
115
+ rule = {:tracer => :html}
116
+ result = rule.tracer
117
+ assert_equal result.class, Tracing::OutputTemplate::HtmlTrace, "Should result in HtmlTrace"
118
+
119
+ rule = {:tracer => :xml}
120
+ result = rule.tracer
121
+ assert_equal result.class, Tracing::OutputTemplate::XmlTrace, "Should result in XmlTrace"
122
+
123
+ rule = {:tracer => :string}
124
+ result = rule.tracer
125
+ assert_equal result.class, Tracing::OutputTemplate::StringTrace, "Should result in StringTrace"
126
+ end
127
+
128
+ def test_appenders
129
+ config = {:appenders => []}
130
+ result = config.appenders
131
+ assert_equal result.blank?, true, "Should result in empty appender list"
132
+
133
+ config = {:appenders => :html}
134
+ result = config.appenders
135
+ assert_equal result.class, Tracing::HtmlAppender, "Should result in empty appender list"
136
+
137
+ config = {:appenders => [:xml, :html]}
138
+ result = config.appenders
139
+ assert_equal Tracing::XmlAppender, result[0].class, "Should result in xml appender"
140
+ assert_equal Tracing::HtmlAppender, result[1].class, "Should also result in html appender"
141
+ end
142
+
143
+ def test_action_handlers
144
+ config = {:action_handlers => []}
145
+ result = config.action_handlers
146
+ assert_equal result.blank?, true, "Should result in empty action_handler list"
147
+
148
+ config = {:action_handlers => {:appenders => :html}}
149
+ result = config.action_handlers
150
+ assert_equal Tracing::HtmlAppender, result.appenders[0].class, "Should result in action handler with HtmlAppender registered"
151
+
152
+ config = {:action_handlers => {:filters => {:i_method_filter => "a,b"}}}
153
+ result = config.action_handlers
154
+ assert_equal Tracing::MethodFilter, result.filters[0].class, "Should result in action handler with MethodFilter registered"
155
+
156
+ ah1 = {:filters => {:i_method_filter => "a,b"}, :appenders => :html}
157
+ ah2 = {:filters => {:x_method_filter => "c,d"}, :appenders => :xml}
158
+
159
+ config = {:action_handlers => [ah1, ah2]}
160
+ result = config.action_handlers
161
+ assert_equal Tracing::MethodFilter, result[0].filters[0].class, "Should result in action handler with MethodFilter registered"
162
+ assert_equal Tracing::MethodFilter, result[1].filters[0].class, "Should result in action handler with MethodFilter registered"
163
+ end
164
+
165
+ def test_create_filter
166
+ config = {:i_method_filter => "a,b"}
167
+ result = config.create_filter
168
+ assert_equal Tracing::MethodFilter, result.class, "Should result in method filter"
169
+
170
+ config = {:filters => {:i_method_filter => "a,b"}}
171
+ result = config.create_filter
172
+ assert_equal Tracing::MethodFilter, result.class, "Should result in method filter"
173
+ end
174
+
175
+ def test_create_filter_hash
176
+ config = {:i_method_filter => "a,b"}
177
+ result = config.create_filter_hash
178
+ exp_result = {:method_filter => { :include => "a,b" } }
179
+ assert_equal exp_result, result, "Should result in :method_filter hash with :include name rules"
180
+
181
+ config = {:xy_class_filter => "a,b"}
182
+ result = config.create_filter_hash
183
+ exp_result = {:class_filter => { :exclude_and_yield => "a,b" } }
184
+ assert_equal exp_result, result, "Should result in :class_filter hash with :exclude_and_yield name rules"
185
+ end
186
+
187
+ def test_try_create_filter_hash
188
+ config = {:i_method_filter => "a,b"}
189
+ result = config.create_filter_hash
190
+ exp_result = {:method_filter => { :include => "a,b" } }
191
+ assert_equal exp_result, result, "Should result in :method_filter hash with :include name rules"
192
+ end
193
+
194
+ def test_filters
195
+ config = {:filters => []}
196
+ result = config.filters
197
+ assert_equal result.blank?, true, "Should result in empty filters list"
198
+
199
+ config = {:filters => {:i_method_filter => "a,b"}}
200
+ result = config.filters
201
+ assert_equal Tracing::MethodFilter, result.class, "Should result in method filter"
202
+
203
+ puts result.rules.inspect
204
+ expected = {:method_filter => {:include => "a, b"} }
205
+ assert_equal expected, result.rules, "Should result in method rules"
206
+ end
207
+
208
+ end
@@ -0,0 +1,65 @@
1
+ require 'extensions/core_extensions'
2
+ require "test/unit"
3
+
4
+
5
+ class TestHashFilterFilter < Test::Unit::TestCase
6
+
7
+ def setup
8
+ end
9
+
10
+ def teardown
11
+ ## Nothing really
12
+ end
13
+
14
+ def test_try_create_method_include_filter
15
+ hash = {:i_method_filter => 'a,b'}
16
+ filter_hash = hash.create_filter
17
+ # puts filter_hash.inspect
18
+ assert_equal filter_hash, {:method_filter => {:include => "a,b"}}, "Should create method include filter"
19
+ end
20
+
21
+ def test_try_create_method_exclude_filter
22
+ hash = {:x_method_filter => 'a,b'}
23
+ filter_hash = hash.create_filter
24
+ # puts filter_hash.inspect
25
+ assert_equal filter_hash, {:method_filter => {:exclude => "a,b"}}, "Should create method exclude filter"
26
+ end
27
+
28
+ def test_try_create_method_include_and_yield_filter
29
+ hash = {:iy_method_filter => 'a,b'}
30
+ filter_hash = hash.create_filter
31
+ # puts filter_hash.inspect
32
+ assert_equal filter_hash, {:method_filter => {:include_and_yield => "a,b"}}, "Should create method include_an_yield filter"
33
+ end
34
+
35
+ def test_create_method_exclude_and_yield_filter
36
+ hash = {:xy_method_filter => 'a,b'}
37
+ filter_hash = hash.create_filter
38
+ # puts filter_hash.inspect
39
+ assert_equal filter_hash, {:method_filter => {:exclude_and_yield => "a,b"}}, "Should create method exclude_and_yield filter"
40
+ end
41
+
42
+ def test_try_create_class_exclude_and_yield_filter
43
+ hash = {:xy_class_filter => 'a,b'}
44
+ filter_hash = hash.create_filter
45
+ # puts filter_hash.inspect
46
+ assert_equal filter_hash, {:class_filter => {:exclude_and_yield => "a,b"}}, "Should create class exclude_and_yield filter"
47
+ end
48
+
49
+ def test_try_create_module_exclude_and_yield_filter
50
+ hash = {:xy_module_filter => 'a,b'}
51
+ filter_hash = hash.create_filter
52
+ # puts filter_hash.inspect
53
+ assert_equal filter_hash, {:module_filter => {:exclude_and_yield => "a,b"}}, "Should create module exclude_and_yield filter"
54
+ end
55
+
56
+ def test_try_create_vars_exclude_and_yield_filter
57
+ hash = {:xy_vars_filter => 'a,b'}
58
+ filter_hash = hash.create_filter
59
+ # puts filter_hash.inspect
60
+ assert_equal filter_hash, {:vars_filter => {:exclude_and_yield => "a,b"}}, "Should create vars exclude_and_yield filter"
61
+ end
62
+
63
+
64
+ end
65
+
@@ -0,0 +1,94 @@
1
+ require 'extensions/core_extensions'
2
+ require 'filters/base_filters'
3
+ require 'rules/hash_rule_extensions'
4
+ require "test/unit"
5
+
6
+ class Person
7
+ attr_accessor :name
8
+
9
+ def initialize(name)
10
+ @name = name
11
+ end
12
+ end
13
+
14
+
15
+ class TestHashExtensions < Test::Unit::TestCase
16
+
17
+ def setup
18
+ end
19
+
20
+ def teardown
21
+ ## Nothing really
22
+ end
23
+
24
+ def test_set_context
25
+ context = {:class_name => "Hobo::Dryml", :method_name => "build_a"}.context
26
+ expected = {
27
+ :class_name =>"Dryml",
28
+ :method_name =>"build_a",
29
+ :modules =>["Hobo"],
30
+ :full_class_name =>"Hobo::Dryml",
31
+ :full_modules_name=>"Hobo",
32
+ :full_method_name =>"Hobo::Dryml.build_a"
33
+ }
34
+
35
+ assert_equal expected, context, "resulting @context not as expected"
36
+ end
37
+
38
+ def test_set_context_modules
39
+ context = {:modules => ["Hobo"], :class_name => "Dryml", :method_name => "build_a"}.context
40
+ puts "context set:" + context.inspect
41
+ expected = {
42
+ :method_name =>"build_a",
43
+ :class_name => "Dryml",
44
+ :modules =>["Hobo"],
45
+ :full_class_name =>"Hobo::Dryml",
46
+ :full_modules_name=>"Hobo",
47
+ :full_method_name =>"Hobo::Dryml.build_a"
48
+ }
49
+
50
+ assert_equal expected, context, "resulting @context not as expected"
51
+ end
52
+
53
+ def test_set_context_instance_vars
54
+ context = {:vars => [{:a => 12, :b => "B"}]}.context
55
+ puts "context set:" + context.inspect
56
+ expected = {
57
+ :vars => [{:a => 12, :b => "B"}]
58
+ }
59
+
60
+ assert_equal expected, context, "resulting @context not as expected"
61
+ end
62
+
63
+ def test_set_context_args
64
+ context = {:args => [{:a => 12, :b => "B"}]}.context
65
+ puts "context set:" + context.inspect
66
+ expected = {
67
+ :args => [{:a => 12, :b => "B"}]
68
+ }
69
+
70
+ assert_equal expected, context, "resulting @context not as expected"
71
+ end
72
+
73
+ def test_set_context_block
74
+ context = {:block => true}.context
75
+ puts "context set:" + context.inspect
76
+ expected = {
77
+ :block => true
78
+ }
79
+
80
+ assert_equal expected, context, "resulting @context not as expected"
81
+ end
82
+
83
+ def test_set_context_self
84
+ obj = Person.new "Kristian"
85
+ context = {:block => true, :self => obj}.context
86
+ puts "context set:" + context.inspect
87
+ expected = {
88
+ :self => obj
89
+ }
90
+
91
+ assert_equal expected, context, "resulting @context not as expected"
92
+ assert_equal "Kristian", context[:self].name, "Kristian expected as person name"
93
+ end
94
+ end
@@ -0,0 +1,55 @@
1
+ require 'extensions/core_extensions'
2
+ require "test/unit"
3
+
4
+
5
+ class TestFilter < Test::Unit::TestCase
6
+
7
+ def test_split_names
8
+ names = nil
9
+ result = names.split_names
10
+ expected = ["alpha", "beta"]
11
+ assert_equal nil, result, "No names should result in nil"
12
+
13
+ names = "alpha, beta"
14
+ result = names.split_names
15
+ expected = ["alpha", "beta"]
16
+ assert_equal expected, result, "Should be split into list of names"
17
+
18
+ names = "alpha beta"
19
+ result = names.split_names
20
+ expected = ["alpha", "beta"]
21
+ assert_equal expected, result, "Should be split into list of names"
22
+
23
+ names = "alpha , beta"
24
+ result = names.split_names
25
+ expected = ["alpha", "beta"]
26
+ assert_equal expected, result, "Should be split into list of names"
27
+ end
28
+
29
+ def test_modules
30
+ name = "Alpha::Beta::Gamma"
31
+ result = name.modules
32
+ expected = ["Alpha","Beta"]
33
+ assert_equal expected, result, "Should be split into list of module names"
34
+ end
35
+
36
+ def test_class_name
37
+ name = "Alpha::Beta"
38
+ result = name.class_name
39
+ expected = "Beta"
40
+ assert_equal expected, result, "Should be last part of module name"
41
+ end
42
+
43
+ def test_in_module?(module_name)
44
+ name = "Alpha::Beta"
45
+ result = name.in_module?("Alpha")
46
+ expected = true
47
+ assert_equal expected, result, "Should be in module"
48
+
49
+ result = name.in_module?("Gamma")
50
+ expected = true
51
+ assert_equal expected, result, "Should NOT be in module"
52
+ end
53
+
54
+ end
55
+
@@ -0,0 +1,35 @@
1
+ require 'extensions/core_extensions'
2
+ require "test/unit"
3
+
4
+
5
+ class TestSymbolExtensions < Test::Unit::TestCase
6
+
7
+ def setup
8
+ end
9
+
10
+ def teardown
11
+ ## Nothing really
12
+ end
13
+
14
+ def test_prefix
15
+ prefixed_symbol = :test.prefix(:xy)
16
+ assert_equal prefixed_symbol, :xy_test, "Should result in :xy_test"
17
+ end
18
+
19
+ def test_trace_class
20
+ result = :xml.trace_class
21
+ assert_equal result, Tracing::OutputTemplate::XmlTrace, ":xml Should result in XmlTrace"
22
+ end
23
+
24
+ def appender_class
25
+ result = :xml.trace_class
26
+ assert_equal result, Tracing::XmlAppender, ":xml Should result in XmlTrace"
27
+ end
28
+
29
+ def test_rule
30
+ result = :i.rule
31
+ assert_equal result, :include, ":i Should result in :include"
32
+ end
33
+
34
+
35
+ end
@@ -70,9 +70,10 @@ class TestFilter < Test::Unit::TestCase
70
70
  names_A = %w{blip blop}
71
71
  names_B = "blip blop"
72
72
  names_C = "blip, blop"
73
-
74
73
  bfil = {:xmethod_filter => names_B}
75
74
 
75
+ my_method_filter = {:xmethod_filter => "method_a, method b"}
76
+
76
77
  # method_filter_A = Tracing::Filter.create_filter({:imethod_filter => names_A})
77
78
  method_filter_B = Tracing::Filter.create_filter(bfil)
78
79
  # method_filter_C = Tracing::Filter.create_filter({:imethod_filter => names_C})
@@ -0,0 +1,78 @@
1
+ require 'filters/filter_exec'
2
+ require 'extensions/core_extensions'
3
+ require "test/unit"
4
+
5
+ Class_composite_filter_A = {
6
+ # id of composite rule set
7
+ :name => 'Template stuff',
8
+ :default => :exclude,
9
+ :classes => [{
10
+ :names => [/Dryml/],
11
+ :method_rules => {
12
+ :include => [/build.*/, 'exec'],
13
+ :exclude => ['add'],
14
+ :default => :exclude
15
+ }
16
+ }]
17
+ }
18
+
19
+ class TestCompositeFilter < Test::Unit::TestCase
20
+
21
+ def test_composite_class_filter_hash_to_class
22
+ composite_filter = Class_composite_filter_A
23
+ result = composite_filter.filter_class
24
+ assert_equal Tracing::CompositeClassFilter, result, "Should result in composite class filter"
25
+ end
26
+
27
+ def test_composite_class_filter_hash_to_class
28
+ composite_filter = Class_composite_filter_A
29
+ result = composite_filter.create_filter
30
+ assert_equal Tracing::CompositeClassFilter, result.class, "Should result in composite class filter"
31
+ end
32
+
33
+
34
+ def test_composite_class_filter_from_hash
35
+ composite_filter = Class_composite_filter_A
36
+ config = {:filters => composite_filter}
37
+ result = config.filters
38
+ assert_equal Tracing::CompositeClassFilter, result.class, "Should result in method filter"
39
+ end
40
+
41
+ # see allow_action in CompositeClassFilter, refactor :yield, :include .. as return values!?
42
+ def test_composite_class_filter__class_and_method_match
43
+ composite_filter = Class_composite_filter_A
44
+
45
+ context = {}
46
+ context.set_context :class_name => "Hobo::Dryml", :method_name => "build_a"
47
+
48
+ options = {:filters => composite_filter}
49
+ exec = Tracing::Filter::Executor.new(options)
50
+ result = exec.filters_allow?('msg', context)
51
+ assert_equal true, result, "Filter should allow passage"
52
+ end
53
+
54
+ def test_composite_class_filter__class_not_match
55
+ composite_filter = Class_composite_filter_A
56
+
57
+ context = {}
58
+ context.set_context :class_name => 'Blip::Blap'
59
+
60
+ options = {:filters => composite_filter}
61
+ exec = Tracing::Filter::Executor.new(options)
62
+ result = exec.filters_allow?('msg', context)
63
+ assert_equal false, result, "Filter should NOT allow passage"
64
+ end
65
+
66
+ def test_composite_class_filter__method_excluded
67
+ composite_filter = Class_composite_filter_A
68
+
69
+ context = {}
70
+ context.set_context :class_name => "Hobo::Dryml", :method_name => "add_it"
71
+
72
+ options = {:filters => composite_filter}
73
+ exec = Tracing::Filter::Executor.new(options)
74
+ result = exec.filters_allow?('msg', context)
75
+ assert_equal false, result, "Filter should NOT allow passage"
76
+ end
77
+
78
+ end
@@ -0,0 +1,82 @@
1
+ require 'filters/filter_exec'
2
+ require 'extensions/core_extensions'
3
+ require "test/unit"
4
+
5
+ Module_composite_filter_A = {
6
+ # id of composite rule set
7
+ :name => 'dryml_filter',
8
+ :modules => [{
9
+ :names => ['Hobo::Dryml', /Dryml/],
10
+ :class_rules => {
11
+ :include => [/Template.*/, 'DRYMLBuilder'],
12
+ :exclude => ['Taglib'],
13
+ :default => :include
14
+ },
15
+ :method_rules => {
16
+ :include => [/blip.*/, 'blap'],
17
+ :exclude => ['add_it'],
18
+ :default => :include
19
+ }
20
+ }]
21
+ }
22
+
23
+
24
+ class TestCompositeModuleFilter < Test::Unit::TestCase
25
+
26
+ def test_composite_module_filter_hash_to_module
27
+ composite_filter = Module_composite_filter_A
28
+ result = composite_filter.filter_module
29
+ assert_equal Tracing::CompositeModuleFilter, result, "Should result in composite module filter"
30
+ end
31
+
32
+ def test_composite_module_filter_hash_to_module
33
+ composite_filter = Module_composite_filter_A
34
+ result = composite_filter.create_filter
35
+ assert_equal Tracing::CompositeModuleFilter, result.class, "Should result in composite module filter"
36
+ end
37
+
38
+ def test_composite_module_filter_from_hash
39
+ composite_filter = Module_composite_filter_A
40
+ config = {:filters => composite_filter}
41
+ result = config.filters
42
+ assert_equal Tracing::CompositeModuleFilter, result.class, "Should result in composite module filter"
43
+ end
44
+
45
+ # see allow_action in CompositeModuleFilter, refactor :yield, :include .. as return values!?
46
+ def test_composite_module_filter__module_and_method_match
47
+ composite_filter = Module_composite_filter_A
48
+
49
+ context = {}
50
+ context.set_context :modules => ["Hobo", "Dryml"], :method_name => "build_a" #, :class_name => "Dryml"
51
+
52
+ options = {:filters => composite_filter}
53
+ exec = Tracing::Filter::Executor.new(options)
54
+ result = exec.filters_allow?('msg', context)
55
+ assert_equal true, result, "Filter should allow passage"
56
+ end
57
+
58
+
59
+ def test_composite_module_filter__module_not_match
60
+ composite_filter = Module_composite_filter_A
61
+
62
+ context = {}
63
+ context.set_context :modules => ['Blip', 'Blap']
64
+
65
+ options = {:filters => composite_filter}
66
+ exec = Tracing::Filter::Executor.new(options)
67
+ result = exec.filters_allow?('msg', context)
68
+ assert_equal false, result, "Filter should NOT allow passage"
69
+ end
70
+
71
+ def test_composite_module_filter__method_excluded
72
+ composite_filter = Module_composite_filter_A
73
+
74
+ context = {}
75
+ context.set_context :modules => ["Hobo", "Dryml"], :method_name => "add_it"
76
+
77
+ options = {:filters => composite_filter}
78
+ exec = Tracing::Filter::Executor.new(options)
79
+ result = exec.filters_allow?('msg', context)
80
+ assert_equal false, result, "Filter should NOT allow passage"
81
+ end
82
+ end