/[suikacvs]/messaging/manakai/lib/Message/Util/ManakaiNodeTest.dis
Suika

Contents of /messaging/manakai/lib/Message/Util/ManakaiNodeTest.dis

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.3 - (hide annotations) (download)
Sun Feb 26 06:42:57 2006 UTC (19 years, 4 months ago) by wakaba
Branch: MAIN
CVS Tags: manakai-200612, manakai-release-0-3-2, manakai-release-0-3-1
Changes since 1.2: +4 -1 lines
++ manakai/t/ChangeLog	26 Feb 2006 06:42:43 -0000
2006-02-26  Wakaba  <wakaba@suika.fam.cx>

	* Makefile: Revised for new |daf| database format.

++ manakai/bin/ChangeLog	26 Feb 2006 06:36:16 -0000
	* daf.pl: Perl test file generation support from |dac2test.pl|
	is added.  Exits the program before any generation
	if the database constrution process has error.

2006-02-26  Wakaba  <wakaba@suika.fam.cx>

++ manakai/lib/Message/Markup/ChangeLog	26 Feb 2006 06:37:11 -0000
2006-02-26  Wakaba  <wakaba@suika.fam.cx>

	* Makefile: Revised for new |daf| database format.

++ manakai/lib/Message/Util/ChangeLog	26 Feb 2006 06:40:09 -0000
	* ManakaiNodeTest.dis (Require): Missing reference
	to the |DISlib:Test| module is added.

	* Makefile: Revised for new |daf| database format.

	* DIS.dis (elementTypeMatch, isSubsetOfURI): The |srinfo|
	parameter is added.
	(getFor, getModule): Set reference rather than string
	itself to the |{for}| property.
	(loadResource): Passes |srinfo| parameter
	to |isSubsetOfURI|-calling methods.
	(mergeAsAlias): The |srinfo| parameter is added.

2006-02-26  Wakaba  <wakaba@suika.fam.cx>

++ manakai/lib/Message/Util/DIS/ChangeLog	26 Feb 2006 06:41:53 -0000
	* Perl.dis (addHashKey): Revised to register keys to
	each key scope resource rather than database.

	* DNLite.dis (elementTypeMatch): The |srinfo| parameter is added.

	* DISDump.dis (Require): Missing reference to the |DISlib:DISMarkup|
	module is added.

2006-02-26  Wakaba  <wakaba@suika.fam.cx>

++ manakai/lib/Message/DOM/ChangeLog	26 Feb 2006 06:36:55 -0000
2006-02-26  Wakaba  <wakaba@suika.fam.cx>

	* Makefile: Revised for new |daf| database format.

++ manakai/lib/manakai/ChangeLog	26 Feb 2006 06:42:23 -0000
2006-02-26  Wakaba  <wakaba@suika.fam.cx>

	* Makefile: Rules to construct old |dae| database are removed.

1 wakaba 1.1 Module:
2     @QName: Util|ManakaiNodeTest
3     @FullName:
4     @@lang:en
5     @@@:
6     <Module::Util|ManakaiNode> Test Module
7    
8     @Namespace:
9     http://suika.fam.cx/~wakaba/archive/2005/manakai/Util/ManakaiNodeTest#
10    
11     @DISCore:author: DISCore|Wakaba
12     @License: license|Perl+MPL
13     @Date:
14 wakaba 1.3 $Date: 2006/01/25 12:21:49 $
15 wakaba 1.1
16     @Require:
17     @@Module:
18     @@@QName: Util|ManakaiNode
19     @@@WithFor: ManakaiDOM|Perl
20 wakaba 1.3 @@Module:
21     @@@QName: DISlib|Test
22     @@@WithFor: ManakaiDOM|all
23 wakaba 1.1
24     @DefaultFor:
25     ManakaiDOM:Perl
26    
27     Namespace:
28     @dis:
29     http://suika.fam.cx/~wakaba/archive/2004/8/18/lang#dis--
30     @DISlib:
31     http://suika.fam.cx/~wakaba/archive/2004/dis/
32     @kwd:
33     http://suika.fam.cx/~wakaba/archive/2005/rfc2119/
34     @lang:
35     http://suika.fam.cx/~wakaba/archive/2004/8/18/lang#
36     @license:
37     http://suika.fam.cx/~wakaba/archive/2004/8/18/license#
38     @ManakaiDOM:
39     http://suika.fam.cx/~wakaba/archive/2004/8/18/manakai-dom#
40     @mn:
41     http://suika.fam.cx/~wakaba/archive/2005/manakai/Util/ManakaiNode#
42     @mnt:
43     http://suika.fam.cx/~wakaba/archive/2005/manakai/Util/ManakaiNodeTest#
44     @rdf:
45     http://www.w3.org/1999/02/22-rdf-syntax-ns#
46     @rdfs:
47     http://www.w3.org/2000/01/rdf-schema#
48     @test:
49     http://suika.fam.cx/~wakaba/archive/2004/dis/Test#
50     @Util:
51     http://suika.fam.cx/~wakaba/archive/2005/manakai/Util/
52    
53     ElementTypeBinding:
54     @Name: ClsDef
55     @ElementType:
56     dis:ResourceDef
57     @ShadowContent:
58     @@rdf:type:
59     @@@@:
60     dis:MultipleResource
61     @@@ForCheck: !ManakaiDOM|ForClass !ManakaiDOM|ForIF
62     @@resourceFor: ManakaiDOM|ForClass
63     @@rdf:type:
64     @@@@: DISLang|Class
65     @@@ForCheck: ManakaiDOM|ForClass
66     @@ForCheck: ManakaiDOM|Perl
67    
68     ElementTypeBinding:
69     @Name: IntMethod
70     @ElementType:
71     dis:ResourceDef
72     @ShadowContent:
73     @@rdf:type:
74     DISLang:Method
75     @@ManakaiDOM:isForInternal:1
76    
77     ElementTypeBinding:
78     @Name: Method
79     @ElementType:
80     dis:ResourceDef
81     @ShadowContent:
82     @@rdf:type:
83     DISLang:Method
84    
85     ElementTypeBinding:
86     @Name: Return
87     @ElementType:
88     dis:ResourceDef
89     @ShadowContent:
90     @@rdf:type:
91     DISLang:MethodReturn
92    
93     ElementTypeBinding:
94     @Name: Param
95     @ElementType:
96     dis:ResourceDef
97     @ShadowContent:
98     @@rdf:type:
99     DISLang:MethodParameter
100    
101     ElementTypeBinding:
102     @Name: PerlDef
103     @ElementType:
104     dis:Def
105     @ShadowContent:
106     @@ContentType:
107     lang:Perl
108    
109     ElementTypeBinding:
110     @Name: enDesc
111     @ElementType:
112     dis:Description
113     @ShadowContent:
114     @@lang:en
115    
116     ElementTypeBinding:
117     @Name: Test
118     @ElementType:
119     dis:ResourceDef
120     @ShadowContent:
121     @@rdf:type: test|StandaloneTest
122    
123     ElementTypeBinding:
124     @Name: ClsQName
125     @ElementType:
126     dis:QName
127     @ShadowContent:
128     @@ForCheck: ManakaiDOM|ForClass
129    
130     ElementTypeBinding:
131     @Name: ClsISA
132     @ElementType:
133     dis:ISA
134     @ShadowContent:
135     @@ForCheck: ManakaiDOM|ForClass
136    
137     PropDef:
138     @QName: mnt|parent
139    
140     PropDef:
141     @QName: mnt|children
142    
143     ElementTypeBinding:
144     @Name: PropDef
145     @ElementType:
146     dis:ResourceDef
147     @ShadowContent:
148     @@rdf:type: rdf|Property
149     @@For: =ManakaiDOM|all
150    
151     ClsDef:
152     @ClsQName: Node1
153    
154     @ClsISA: mn|ManakaiNodeRef
155    
156     @enDesc:
157     Simple tree pattern test.
158    
159     @IntMethod:
160     @@Name: newStem
161     @@ManakaiDOM:isStatic: 1
162     @@Return:
163     @@@Type: mn|NodeStem
164     @@@PerlDef:
165     $r = <ClassM::mn|ManakaiNodeStem.new> (<ClassName::Node1>);
166 wakaba 1.2 $r->{<H::mnt|children>} = [];
167     $r->{<H::mnt|attr>} = {};
168 wakaba 1.1 @mn:origin0: mnt|parent
169     @mn:subnode1: mnt|children
170 wakaba 1.2 @mn:subnode2: mnt|attr
171 wakaba 1.1
172     @IntMethod:
173     @@Name: getRef
174     @@ManakaiDOM:isStatic: 1
175     @@Param:
176     @@@Name: stem
177     @@@Type: mn|NodeStem
178     @@Return:
179     @@@Type: Node1
180     @@@PerlDef:
181     __CODE{mn|getNewReference::
182     $object => $stem,
183     $ref => $r,
184     $class => {<ClassName::Node1>},
185     }__;
186    
187     @Test:
188     @@QName: Node1.test1
189     @@PerlDef:
190     $test->id ('get.stem');
191     my $stem = <ClassM::Node1.newStem>;
192     $test->assert_isa ($stem, <IFName::mn|NodeStem>);
193     $test->assert_not_null ($stem->{<H::mn:nodeID>});
194     $test->assert_num_equals
195     (actual_value => $stem->{<H::mn:rc>},
196     expected_value => 0);
197     $test->assert_isa ($stem->{<H::mn:groveReferenceCounter>}, 'SCALAR');
198     $test->assert_num_equals
199     (actual_value => ${$stem->{<H::mn:groveReferenceCounter>}},
200     expected_value => 0);
201    
202     $test->id ('get.ref');
203     my $ref = <ClassM::Node1.getRef> ($stem);
204     $test->assert_isa ($ref, <IFName::mn|NodeRef>);
205     $test->assert_isa ($ref, <IFName::Node1>);
206     $test->assert_isa ($ref->{<H::mn:node>}, <IFName::mn|NodeStem>);
207     $test->assert_equals
208     ($ref->{<H::mn:node>}->{<H::mn:nodeID>},
209     $stem->{<H::mn:nodeID>});
210     $test->assert_num_equals
211     (actual_value => $stem->{<H::mn:rc>},
212     expected_value => 1);
213     $test->assert_isa ($stem->{<H::mn:groveReferenceCounter>}, 'SCALAR');
214     $test->assert_num_equals
215     (actual_value => ${$stem->{<H::mn:groveReferenceCounter>}},
216     expected_value => 1);
217    
218 wakaba 1.2 @Method:
219     @@Name: append
220     @@Param:
221     @@@Name: newChild
222     @@@Type: Node1
223     @@Return:
224     @@@PerlDef:
225     $self->{<H::mn:node>}-><M::mn:NodeStem.importTree>
226     ($newChild->{<H::mn:node>});
227     push @{$self->{<H::mn:node>}->{<H::mnt:children>}},
228     $newChild->{<H::mn:node>};
229     $newChild->{<H::mn:node>}->{<H::mnt:parent>} = $self->{<H::mn:node>};
230    
231     @@Test:
232     @@@QName: Node1.append.test
233     @@@PerlDef:
234     $test->id ('node.1');
235     my $stem1 = <ClassM::Node1.newStem>;
236     my $ref1 = <ClassM::Node1.getRef> ($stem1);
237     $test->assert_num_equals
238     (actual_value => $stem1->{<H::mn:rc>},
239     expected_value => 1);
240     $test->assert_num_equals
241     (actual_value => ${$stem1->{<H::mn:groveReferenceCounter>}},
242     expected_value => 1);
243    
244     $test->id ('node.2');
245     my $stem2 = <ClassM::Node1.newStem>;
246     my $ref2 = <ClassM::Node1.getRef> ($stem2);
247     $test->assert_num_equals
248     (actual_value => $stem2->{<H::mn:rc>},
249     expected_value => 1);
250     $test->assert_num_equals
251     (actual_value => ${$stem2->{<H::mn:groveReferenceCounter>}},
252     expected_value => 1);
253    
254     $test->id ('diff.tid');
255     $test->assert_not_equals
256     (${$stem1->{<H::mn:treeID>}},
257     ${$stem2->{<H::mn:treeID>}});
258    
259     $test->id ('append');
260     $ref1-><M::Node1.append> ($ref2);
261    
262     $test->id ('appended.tid');
263     $test->assert_equals
264     (${$stem1->{<H::mn:treeID>}},
265     ${$stem2->{<H::mn:treeID>}});
266    
267     $test->id ('appended.rc');
268     $test->assert_num_equals
269     (actual_value => $stem1->{<H::mn:rc>},
270     expected_value => 1);
271     $test->assert_num_equals
272     (actual_value => ${$stem1->{<H::mn:groveReferenceCounter>}},
273     expected_value => 2);
274     $test->assert_num_equals
275     (actual_value => $stem2->{<H::mn:rc>},
276     expected_value => 1);
277     $test->assert_num_equals
278     (actual_value => ${$stem2->{<H::mn:groveReferenceCounter>}},
279     expected_value => 2);
280    
281     @Method:
282     @@Name: set
283     @@Param:
284     @@@Name: ns
285     @@@Type: DISPerl|String||ManakaiDOM|all
286     @@Param:
287     @@@Name: name
288     @@@Type: DISPerl|String||ManakaiDOM|all
289     @@Param:
290     @@@Name: newChild
291     @@@Type: Node1
292     @@Return:
293     @@@PerlDef:
294     $self->{<H::mn:node>}-><M::mn:NodeStem.importTree>
295     ($newChild->{<H::mn:node>});
296     $self->{<H::mn:node>}->{<H::mnt:attr>}->{$ns}->{$name}
297     = $newChild->{<H::mn:node>};
298     $newChild->{<H::mn:node>}->{<H::mnt:parent>} = $self->{<H::mn:node>};
299    
300     @@Test:
301     @@@QName: Node1.set.test
302     @@@PerlDef:
303     $test->id ('node.1');
304     my $stem1 = <ClassM::Node1.newStem>;
305     my $ref1 = <ClassM::Node1.getRef> ($stem1);
306     $test->assert_num_equals
307     (actual_value => $stem1->{<H::mn:rc>},
308     expected_value => 1);
309     $test->assert_num_equals
310     (actual_value => ${$stem1->{<H::mn:groveReferenceCounter>}},
311     expected_value => 1);
312    
313     $test->id ('node.2');
314     my $stem2 = <ClassM::Node1.newStem>;
315     my $ref2 = <ClassM::Node1.getRef> ($stem2);
316     $test->assert_num_equals
317     (actual_value => $stem2->{<H::mn:rc>},
318     expected_value => 1);
319     $test->assert_num_equals
320     (actual_value => ${$stem2->{<H::mn:groveReferenceCounter>}},
321     expected_value => 1);
322    
323     $test->id ('diff.tid');
324     $test->assert_not_equals
325     (${$stem1->{<H::mn:treeID>}},
326     ${$stem2->{<H::mn:treeID>}});
327    
328     $test->id ('append');
329     $ref1-><M::Node1.set> ('uri', 'name', $ref2);
330    
331     $test->id ('appended.tid');
332     $test->assert_equals
333     (${$stem1->{<H::mn:treeID>}},
334     ${$stem2->{<H::mn:treeID>}});
335    
336     $test->id ('appended.rc');
337     $test->assert_num_equals
338     (actual_value => $stem1->{<H::mn:rc>},
339     expected_value => 1);
340     $test->assert_num_equals
341     (actual_value => ${$stem1->{<H::mn:groveReferenceCounter>}},
342     expected_value => 2);
343     $test->assert_num_equals
344     (actual_value => $stem2->{<H::mn:rc>},
345     expected_value => 1);
346     $test->assert_num_equals
347     (actual_value => ${$stem2->{<H::mn:groveReferenceCounter>}},
348     expected_value => 2);
349 wakaba 1.1 ##Node1
350    
351     ClsDef:
352     @ClsQName: Node2
353    
354     @ClsISA: mn|ManakaiNodeRef
355    
356     @enDesc:
357     Tree + ownwerDocument pattern test.
358    
359     @IntMethod:
360     @@Name: newStem
361     @@ManakaiDOM:isStatic: 1
362     @@Return:
363     @@@Type: mn|NodeStem
364     @@@PerlDef:
365     $r = <ClassM::mn|ManakaiNodeStem.new> (<ClassName::Node2>);
366 wakaba 1.2 $r->{<H::mnt|children>} = [];
367     $r->{<H::mnt|attr>} = {};
368 wakaba 1.1 @mn:origin0: mnt|parent
369     @mn:subnode1: mnt|children
370     @mn:xrefnode0: mnt|owner
371 wakaba 1.2 @mn:subnode2: mnt|attr
372 wakaba 1.1
373     @IntMethod:
374     @@Name: getRef
375     @@ManakaiDOM:isStatic: 1
376     @@Param:
377     @@@Name: stem
378     @@@Type: mn|NodeStem
379     @@Return:
380     @@@Type: Node2
381     @@@PerlDef:
382     __CODE{mn|getNewReference::
383     $object => $stem,
384     $ref => $r,
385     $class => {<ClassName::Node2>},
386     }__;
387 wakaba 1.2
388     @Method:
389     @@Name: append
390     @@Param:
391     @@@Name: newChild
392     @@@Type: Node2
393     @@Return:
394     @@@PerlDef:
395     $self->{<H::mn:node>}-><M::mn:NodeStem.importTree>
396     ($newChild->{<H::mn:node>});
397     push @{$self->{<H::mn:node>}->{<H::mnt:children>}},
398     $newChild->{<H::mn:node>};
399     $newChild->{<H::mn:node>}->{<H::mnt:parent>} = $self->{<H::mn:node>};
400    
401     @@Test:
402     @@@QName: Node2.append.test.1
403     @@@PerlDef:
404     $test->id ('node.1');
405     my $stem1 = <ClassM::Doc2.newStem>;
406     my $ref1 = <ClassM::Doc2.getRef> ($stem1);
407     $test->assert_num_equals
408     (actual_value => $stem1->{<H::mn:rc>},
409     expected_value => 1);
410     $test->assert_num_equals
411     (actual_value => ${$stem1->{<H::mn:groveReferenceCounter>}},
412     expected_value => 1);
413    
414     $test->id ('node.2');
415     my $ref2 = $ref1-><M::Doc2.createNode>;
416     my $stem2 = $ref2->{<H::mn:node>};
417     $test->assert_num_equals
418     (actual_value => $stem2->{<H::mn:rc>},
419     expected_value => 1);
420     $test->assert_num_equals
421     (actual_value => ${$stem2->{<H::mn:groveReferenceCounter>}},
422     expected_value => 1);
423    
424     $test->id ('diff.tid');
425     $test->assert_not_equals
426     (${$stem1->{<H::mn:treeID>}},
427     ${$stem2->{<H::mn:treeID>}});
428     $test->assert_num_equals
429     (actual_value => $stem1->{<H::mn:rc>},
430     expected_value => 2);
431     $test->assert_num_equals
432     (actual_value => ${$stem1->{<H::mn:groveReferenceCounter>}},
433     expected_value => 2);
434    
435     $test->id ('append');
436     $ref1-><M::Node2.append> ($ref2);
437    
438     $test->id ('appended.tid');
439     $test->assert_equals
440     (${$stem1->{<H::mn:treeID>}},
441     ${$stem2->{<H::mn:treeID>}});
442    
443     $test->id ('appended.rc');
444     $test->assert_num_equals
445     (actual_value => $stem1->{<H::mn:rc>},
446     expected_value => 1);
447     $test->assert_num_equals
448     (actual_value => ${$stem1->{<H::mn:groveReferenceCounter>}},
449     expected_value => 2);
450     $test->assert_num_equals
451     (actual_value => $stem2->{<H::mn:rc>},
452     expected_value => 1);
453     $test->assert_num_equals
454     (actual_value => ${$stem2->{<H::mn:groveReferenceCounter>}},
455     expected_value => 2);
456    
457     @@Test:
458     @@@QName: Node2.append.test.2
459     @@@PerlDef:
460     $test->id ('node.1');
461     my $stem1 = <ClassM::Doc2.newStem>;
462     my $ref1 = <ClassM::Doc2.getRef> ($stem1);
463     $test->assert_num_equals
464     (actual_value => $stem1->{<H::mn:rc>},
465     expected_value => 1);
466     $test->assert_num_equals
467     (actual_value => ${$stem1->{<H::mn:groveReferenceCounter>}},
468     expected_value => 1);
469    
470     $test->id ('node.2');
471     my $ref2 = $ref1-><M::Doc2.createNode>;
472     my $stem2 = $ref2->{<H::mn:node>};
473     $test->assert_num_equals
474     (actual_value => $stem2->{<H::mn:rc>},
475     expected_value => 1);
476     $test->assert_num_equals
477     (actual_value => ${$stem2->{<H::mn:groveReferenceCounter>}},
478     expected_value => 1);
479    
480     $test->id ('node.3');
481     my $ref3 = $ref1-><M::Doc2.createNode>;
482     my $stem3 = $ref3->{<H::mn:node>};
483     $test->assert_num_equals
484     (actual_value => $stem3->{<H::mn:rc>},
485     expected_value => 1);
486     $test->assert_num_equals
487     (actual_value => ${$stem3->{<H::mn:groveReferenceCounter>}},
488     expected_value => 1);
489    
490     $test->id ('diff.tid');
491     $test->assert_not_equals
492     (${$stem1->{<H::mn:treeID>}},
493     ${$stem2->{<H::mn:treeID>}});
494     $test->assert_not_equals
495     (${$stem2->{<H::mn:treeID>}},
496     ${$stem3->{<H::mn:treeID>}});
497     $test->assert_not_equals
498     (${$stem3->{<H::mn:treeID>}},
499     ${$stem1->{<H::mn:treeID>}});
500     $test->assert_num_equals
501     (actual_value => $stem1->{<H::mn:rc>},
502     expected_value => 3);
503     $test->assert_num_equals
504     (actual_value => ${$stem1->{<H::mn:groveReferenceCounter>}},
505     expected_value => 3);
506    
507     $test->id ('append');
508     $ref2-><M::Node2.append> ($ref3);
509    
510     $test->id ('appended.tid');
511     $test->assert_not_equals
512     (${$stem1->{<H::mn:treeID>}},
513     ${$stem2->{<H::mn:treeID>}});
514     $test->assert_equals
515     (${$stem2->{<H::mn:treeID>}},
516     ${$stem3->{<H::mn:treeID>}});
517    
518     $test->id ('appended.rc');
519     $test->assert_num_equals
520     (actual_value => $stem1->{<H::mn:rc>},
521     expected_value => 3);
522     $test->assert_num_equals
523     (actual_value => ${$stem1->{<H::mn:groveReferenceCounter>}},
524     expected_value => 3);
525     $test->assert_num_equals
526     (actual_value => $stem2->{<H::mn:rc>},
527     expected_value => 1);
528     $test->assert_num_equals
529     (actual_value => ${$stem2->{<H::mn:groveReferenceCounter>}},
530     expected_value => 2);
531     $test->assert_num_equals
532     (actual_value => $stem3->{<H::mn:rc>},
533     expected_value => 1);
534     $test->assert_num_equals
535     (actual_value => ${$stem3->{<H::mn:groveReferenceCounter>}},
536     expected_value => 2);
537    
538     $test->id ('stem1.unlinked');
539     undef $ref1;
540     $test->assert_num_equals
541     (actual_value => $stem1->{<H::mn:rc>},
542     expected_value => 2);
543     $test->assert_num_equals
544     (actual_value => ${$stem1->{<H::mn:groveReferenceCounter>}},
545     expected_value => 2);
546    
547     $test->id ('stem2.unlinked');
548     undef $ref2;
549     $test->assert_num_equals
550     (actual_value => $stem1->{<H::mn:rc>},
551     expected_value => 2);
552     $test->assert_num_equals
553     (actual_value => ${$stem1->{<H::mn:groveReferenceCounter>}},
554     expected_value => 2);
555     $test->assert_num_equals
556     (actual_value => $stem2->{<H::mn:rc>},
557     expected_value => 0);
558     $test->assert_num_equals
559     (actual_value => ${$stem2->{<H::mn:groveReferenceCounter>}},
560     expected_value => 1);
561     $test->assert_num_equals
562     (actual_value => $stem3->{<H::mn:rc>},
563     expected_value => 1);
564     $test->assert_num_equals
565     (actual_value => ${$stem3->{<H::mn:groveReferenceCounter>}},
566     expected_value => 1);
567    
568     $test->id ('stem3.unlinked');
569     undef $ref3;
570     $test->assert_null ($stem1->{<H::mn:rc>});
571     $test->assert_null ($stem2->{<H::mn:rc>});
572     $test->assert_null ($stem3->{<H::mn:rc>});
573     $test->assert_null ($stem1->{<H::mn:groveReferenceCounter>});
574     $test->assert_null ($stem2->{<H::mn:groveReferenceCounter>});
575     $test->assert_null ($stem3->{<H::mn:groveReferenceCounter>});
576    
577     @@Test:
578     @@@QName: Node2.append.test.3
579     @@@PerlDef:
580     $test->id ('node.1');
581     my $stem1 = <ClassM::Doc2.newStem>;
582     my $ref1 = <ClassM::Doc2.getRef> ($stem1);
583     $test->assert_num_equals
584     (actual_value => $stem1->{<H::mn:rc>},
585     expected_value => 1);
586     $test->assert_num_equals
587     (actual_value => ${$stem1->{<H::mn:groveReferenceCounter>}},
588     expected_value => 1);
589    
590     $test->id ('node.2');
591     my $ref2 = $ref1-><M::Doc2.createNode>;
592     my $stem2 = $ref2->{<H::mn:node>};
593     $test->assert_num_equals
594     (actual_value => $stem2->{<H::mn:rc>},
595     expected_value => 1);
596     $test->assert_num_equals
597     (actual_value => ${$stem2->{<H::mn:groveReferenceCounter>}},
598     expected_value => 1);
599    
600     $test->id ('node.3');
601     my $ref3 = $ref1-><M::Doc2.createNode>;
602     my $stem3 = $ref3->{<H::mn:node>};
603     $test->assert_num_equals
604     (actual_value => $stem3->{<H::mn:rc>},
605     expected_value => 1);
606     $test->assert_num_equals
607     (actual_value => ${$stem3->{<H::mn:groveReferenceCounter>}},
608     expected_value => 1);
609    
610     $test->id ('diff.tid');
611     $test->assert_not_equals
612     (${$stem1->{<H::mn:treeID>}},
613     ${$stem2->{<H::mn:treeID>}});
614     $test->assert_not_equals
615     (${$stem2->{<H::mn:treeID>}},
616     ${$stem3->{<H::mn:treeID>}});
617     $test->assert_not_equals
618     (${$stem3->{<H::mn:treeID>}},
619     ${$stem1->{<H::mn:treeID>}});
620     $test->assert_num_equals
621     (actual_value => $stem1->{<H::mn:rc>},
622     expected_value => 3);
623     $test->assert_num_equals
624     (actual_value => ${$stem1->{<H::mn:groveReferenceCounter>}},
625     expected_value => 3);
626    
627     $test->id ('append');
628     $ref2-><M::Node2.append> ($ref3);
629    
630     $test->id ('appended.tid');
631     $test->assert_not_equals
632     (${$stem1->{<H::mn:treeID>}},
633     ${$stem2->{<H::mn:treeID>}});
634     $test->assert_equals
635     (${$stem2->{<H::mn:treeID>}},
636     ${$stem3->{<H::mn:treeID>}});
637    
638     $test->id ('appended.rc');
639     $test->assert_num_equals
640     (actual_value => $stem1->{<H::mn:rc>},
641     expected_value => 3);
642     $test->assert_num_equals
643     (actual_value => ${$stem1->{<H::mn:groveReferenceCounter>}},
644     expected_value => 3);
645     $test->assert_num_equals
646     (actual_value => $stem2->{<H::mn:rc>},
647     expected_value => 1);
648     $test->assert_num_equals
649     (actual_value => ${$stem2->{<H::mn:groveReferenceCounter>}},
650     expected_value => 2);
651     $test->assert_num_equals
652     (actual_value => $stem3->{<H::mn:rc>},
653     expected_value => 1);
654     $test->assert_num_equals
655     (actual_value => ${$stem3->{<H::mn:groveReferenceCounter>}},
656     expected_value => 2);
657    
658     @Method:
659     @@Name: set
660     @@Param:
661     @@@Name: ns
662     @@@Type: DISPerl|String||ManakaiDOM|all
663     @@Param:
664     @@@Name: name
665     @@@Type: DISPerl|String||ManakaiDOM|all
666     @@Param:
667     @@@Name: newChild
668     @@@Type: Node2
669     @@Return:
670     @@@PerlDef:
671     $self->{<H::mn:node>}-><M::mn:NodeStem.importTree>
672     ($newChild->{<H::mn:node>});
673     $self->{<H::mn:node>}->{<H::mnt:attr>}->{$ns}->{$name}
674     = $newChild->{<H::mn:node>};
675     $newChild->{<H::mn:node>}->{<H::mnt:parent>} = $self->{<H::mn:node>};
676    
677     @@Test:
678     @@@QName: Node2.set.test.3
679     @@@PerlDef:
680     $test->id ('node.1');
681     my $stem1 = <ClassM::Doc2.newStem>;
682     my $ref1 = <ClassM::Doc2.getRef> ($stem1);
683     $test->assert_num_equals
684     (actual_value => $stem1->{<H::mn:rc>},
685     expected_value => 1);
686     $test->assert_num_equals
687     (actual_value => ${$stem1->{<H::mn:groveReferenceCounter>}},
688     expected_value => 1);
689    
690     $test->id ('node.2');
691     my $ref2 = $ref1-><M::Doc2.createNode>;
692     my $stem2 = $ref2->{<H::mn:node>};
693     $test->assert_num_equals
694     (actual_value => $stem2->{<H::mn:rc>},
695     expected_value => 1);
696     $test->assert_num_equals
697     (actual_value => ${$stem2->{<H::mn:groveReferenceCounter>}},
698     expected_value => 1);
699    
700     $test->id ('node.3');
701     my $ref3 = $ref1-><M::Doc2.createNode>;
702     my $stem3 = $ref3->{<H::mn:node>};
703     $test->assert_num_equals
704     (actual_value => $stem3->{<H::mn:rc>},
705     expected_value => 1);
706     $test->assert_num_equals
707     (actual_value => ${$stem3->{<H::mn:groveReferenceCounter>}},
708     expected_value => 1);
709    
710     $test->id ('diff.tid');
711     $test->assert_not_equals
712     (${$stem1->{<H::mn:treeID>}},
713     ${$stem2->{<H::mn:treeID>}});
714     $test->assert_not_equals
715     (${$stem2->{<H::mn:treeID>}},
716     ${$stem3->{<H::mn:treeID>}});
717     $test->assert_not_equals
718     (${$stem3->{<H::mn:treeID>}},
719     ${$stem1->{<H::mn:treeID>}});
720     $test->assert_num_equals
721     (actual_value => $stem1->{<H::mn:rc>},
722     expected_value => 3);
723     $test->assert_num_equals
724     (actual_value => ${$stem1->{<H::mn:groveReferenceCounter>}},
725     expected_value => 3);
726    
727     $test->id ('append');
728     $ref2-><M::Node2.set> ('uri', 'name', $ref3);
729    
730     $test->id ('appended.tid');
731     $test->assert_not_equals
732     (${$stem1->{<H::mn:treeID>}},
733     ${$stem2->{<H::mn:treeID>}});
734     $test->assert_equals
735     (${$stem2->{<H::mn:treeID>}},
736     ${$stem3->{<H::mn:treeID>}});
737    
738     $test->id ('appended.rc');
739     $test->assert_num_equals
740     (actual_value => $stem1->{<H::mn:rc>},
741     expected_value => 3);
742     $test->assert_num_equals
743     (actual_value => ${$stem1->{<H::mn:groveReferenceCounter>}},
744     expected_value => 3);
745     $test->assert_num_equals
746     (actual_value => $stem2->{<H::mn:rc>},
747     expected_value => 1);
748     $test->assert_num_equals
749     (actual_value => ${$stem2->{<H::mn:groveReferenceCounter>}},
750     expected_value => 2);
751     $test->assert_num_equals
752     (actual_value => $stem3->{<H::mn:rc>},
753     expected_value => 1);
754     $test->assert_num_equals
755     (actual_value => ${$stem3->{<H::mn:groveReferenceCounter>}},
756     expected_value => 2);
757 wakaba 1.1 ##Node2
758    
759 wakaba 1.2 PropDef:
760     @QName: mnt|attr
761    
762 wakaba 1.1 ClsDef:
763     @ClsQName: Doc2
764    
765     @ClsISA: Node2
766    
767     @IntMethod:
768     @@Name: newStem
769     @@ManakaiDOM:isStatic: 1
770     @@Return:
771     @@@Type: mn|NodeStem
772     @@@PerlDef:
773     $r = <ClassM::mn|ManakaiNodeStem.new> (<ClassName::Doc2>);
774 wakaba 1.2 $r->{<H::mnt|children>} = [];
775     $r->{<H::mnt|attr>} = {};
776 wakaba 1.1
777     @IntMethod:
778     @@Name: getRef
779     @@ManakaiDOM:isStatic: 1
780     @@Param:
781     @@@Name: stem
782     @@@Type: mn|NodeStem
783     @@Return:
784     @@@Type: Doc2
785     @@@PerlDef:
786     __CODE{mn|getNewReference::
787     $object => $stem,
788     $ref => $r,
789     $class => {<ClassName::Doc2>},
790     }__;
791    
792     @IntMethod:
793     @@Name: newNodeStem
794     @@Return:
795     @@@Type: mn|NodeStem
796     @@@PerlDef:
797     $r = $self->{<H::mn:node>}-><M::mn|NodeStem.newNode> (<IFName::Node2>);
798     @@Test:
799     @@@QName: Doc2.newNodeStem.test
800     @@@PerlDef:
801     $test->id ('new.doc.stem');
802     my $stem = <ClassM::Doc2.newStem>;
803     $test->assert_isa ($stem, <IFName::mn|NodeStem>);
804     my $doc_tid = $stem->{<H::mn:treeID>};
805     my $doc = <ClassM::Doc2.getRef> ($stem);
806    
807     $test->id ('new.node.stem');
808     my $nstem = $doc-><M::Doc2.newNodeStem>;
809     $test->assert_isa ($nstem, <IFName::mn|NodeStem>);
810     my $node_tid = $nstem->{<H::mn:treeID>};
811    
812     $test->id ('doc.node.tid.equals');
813     $test->assert_equals ($$doc_tid, $$node_tid);
814    
815     @Method:
816     @@Name: createNode
817     @@Return:
818     @@@Type: Node2
819     @@@PerlDef:
820 wakaba 1.2 my $stem = <ClassM::Node2.newStem>;
821 wakaba 1.1 __CODE{mn:setXRefNode::
822     $referrer => $stem,
823     $propName => {<H::mnt|owner>},
824     $referent => {$self->{<H::mn:node>}},
825     }__;
826     $r = <ClassM::Node2.getRef> ($stem);
827     @@Test:
828     @@@QName: Doc2.createNode.test
829     @@@PerlDef:
830     $test->id ('new.doc');
831     my $doc_stem = <ClassM::Doc2.newStem>;
832     my $doc = <ClassM::Doc2.getRef> ($doc_stem);
833     $test->assert_isa ($doc, <ClassName::Doc2>);
834     $test->assert_num_equals
835     (actual_value => $doc_stem->{<H::mn:rc>},
836     expected_value => 1);
837     $test->assert_num_equals
838     (actual_value => ${$doc_stem->{<H::mn:groveReferenceCounter>}},
839     expected_value => 1);
840     my $doc_tid = $doc_stem->{<H::mn:treeID>};
841    
842     $test->id ('new.node');
843     my $node = $doc-><M::Doc2.createNode>;
844     $test->assert_isa ($node, <ClassName::Node2>);
845     my $node_stem = $node->{<H::mn:node>};
846     $test->assert_isa ($node_stem, <IFName::mn|NodeStem>);
847     $test->assert_num_equals
848     (actual_value => $node_stem->{<H::mn:rc>},
849     expected_value => 1);
850     $test->assert_num_equals
851     (actual_value => ${$node_stem->{<H::mn:groveReferenceCounter>}},
852     expected_value => 1);
853     my $node_tid = $node_stem->{<H::mn:treeID>};
854    
855     $test->id ('doc.node.diff.tid');
856     $test->assert_not_equals ($$doc_tid, $$node_tid);
857    
858     $test->id ('doc.rc');
859     $test->assert_num_equals
860     (actual_value => $doc_stem->{<H::mn:rc>},
861     expected_value => 2);
862     $test->assert_num_equals
863     (actual_value => ${$doc_stem->{<H::mn:groveReferenceCounter>}},
864     expected_value => 2);
865    
866     $test->id ('node.owner');
867     $test->assert_equals ($node_stem->{<H::mnt|owner>}, $doc_stem);
868    
869     $test->id ('doc.destroy');
870     undef $doc;
871     $test->assert_num_equals
872     (actual_value => $doc_stem->{<H::mn:rc>},
873     expected_value => 1);
874     $test->assert_num_equals
875     (actual_value => ${$doc_stem->{<H::mn:groveReferenceCounter>}},
876     expected_value => 1);
877     ##Doc2
878    
879     PropDef:
880     @QName: mnt|owner

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24