Clone
Gustaf Neumann <neumann@wu-wien.ac.at>
committed
on 27 Feb 12
- pass property name to slot "initialize" method to conform with the interface to "assign", "get" ... (all these receive the property na… Show more
- pass property name to slot "initialize" method to conform   with the interface to "assign", "get" ... (all these receive   the property name as well) - allow slot "initialize" method to be protected   (handled similarly to "init")

Show less

2-1-0-rc + 62 more
tests/interceptor-slot.test (+56 -0)
134 134   Class create M11
135 135   Class create C1
136 136
137 137   ? {C1 info lookup method mixin} "::nsf::classes::nx::Class::mixin"
138 138   C1 class mixin M1
139 139   ? {C1 info precedence} "::M1 ::nx::Class ::nx::Object"
140 140   C1 create c11
141 141   ? {c11 info precedence} "::C1 ::nx::Object"
142 142   C1 class mixin add M11
143 143   ? {C1 info precedence} "::M11 ::M1 ::nx::Class ::nx::Object"
144 144   Object create o -mixin M1
145 145   ? {o info precedence} "::M1 ::nx::Object"
146 146
147 147   Class create O
148 148   O class mixin M1
149 149   ? {O info precedence} "::M1 ::nx::Class ::nx::Object"
150 150   Class create O -object-mixin M1
151 151   ? {O info precedence} "::M1 ::nx::Class ::nx::Object"
152 152 }
153 153
  154 Test case filter-relation {
  155   nx::Class create CC {
  156     :public method filterA args {next}
  157     :public method filterB args {next}
  158     :public class method filterC args {next}
  159     :create cc {
  160       :public method filterD args {next}
  161     }
  162   }
  163
  164   ? {::nsf::relation cc object-filter} ""
  165   ? {cc info filter methods} ""
  166   ? {::nsf::relation cc object-filter filterA} filterA
  167   ? {cc info filter methods} "filterA"
  168   ? {cc filter filterB} "filterB"
  169   ? {::nsf::relation cc object-filter} "filterB"
  170   ? {cc info filter methods} "filterB"
  171   ? {cc filter add filterD} "filterD filterB"
  172   ? {::nsf::relation cc object-filter} "filterD filterB"
  173   ? {cc info filter methods} "filterD filterB"
  174   ? {cc filter delete filterB} "filterD"
  175   ? {::nsf::relation cc object-filter} "filterD"
  176   ? {cc info filter methods} "filterD"
  177   ? {catch {::nsf::relation cc object-filter UNKNOWN}} 1
  178   ? {::nsf::relation cc object-filter} "filterD"
  179   ? {cc info filter methods} "filterD"
  180
  181   ? {::nsf::relation CC object-filter} ""
  182   ? {CC class info filter methods} ""
  183   ? {::nsf::relation CC object-filter filterC} "filterC"
  184   ? {::nsf::relation CC object-filter} "filterC"
  185   ? {CC class info filter methods} "filterC"
  186   ? {::nsf::relation CC object-filter ""} ""
  187   ? {::nsf::relation CC object-filter} ""
  188   ? {CC class info filter methods} ""
  189  
  190   ? {::nsf::relation CC class-filter} ""
  191   ? {CC info filter methods} ""
  192   ? {::nsf::relation CC class-filter filterA} "filterA"
  193   ? {::nsf::relation CC class-filter} "filterA"
  194   ? {CC info filter methods} "filterA"
  195   ? {CC filter add filterB} "filterB filterA"
  196   ? {::nsf::relation CC class-filter} "filterB filterA"
  197   ? {CC info filter methods} "filterB filterA"
  198   ? {CC filter delete filterA} "filterB"
  199   ? {::nsf::relation CC class-filter} "filterB"
  200   ? {CC info filter methods} "filterB"
  201   ? {catch {::nsf::relation CC class-filter UNKNOWN}} 1
  202   ? {::nsf::relation CC class-filter} "filterB"
  203   ? {CC info filter methods} "filterB"
  204   ? {::nsf::relation CC class-filter ""} ""
  205   ? {::nsf::relation CC class-filter} ""
  206   ? {CC info filter methods} ""
  207 }
  208
  209
154 210 Test parameter count 3
155 211 Test case "filter-and-creation" {
156 212   Class create Foo {
157 213     :method myfilter {args} {
158 214       set i [::incr ::count]
159 215       set s [self]
160 216       set m [current calledmethod]
161 217       #puts stderr "$i: $s.$m"
162 218       #puts stderr "$i: procsearch before [$s procsearch info]"
163 219       set r [next]
164 220       #puts stderr "$i: $s.$m got ($r)"
165 221       #puts stderr "$i: $s.$m procsearch after [$s info lookup method info]"
166 222       return $r
167 223     }
168 224     # method for testing next to non-existing shadowed method
169 225     :public method baz {} {next}
170 226   }
171 227
172 228   ? {Foo create ob} ::ob
173 229