1 package org.apache.maven.doxia.macro;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import java.io.File;
23
24 import java.util.HashMap;
25 import java.util.Iterator;
26 import java.util.Map;
27
28 import org.apache.maven.doxia.sink.impl.SinkEventElement;
29 import org.apache.maven.doxia.sink.impl.SinkEventTestingSink;
30
31 import junit.framework.TestCase;
32
33
34
35
36
37
38 public class SwfMacroTest
39 extends TestCase
40 {
41
42
43
44
45
46
47 public void testExecute()
48 throws MacroExecutionException
49 {
50
51 Map<String, Object> macroParameters = new HashMap<String, Object>();
52 macroParameters.put( "src", "src.swf" );
53 macroParameters.put( "id", "Movie" );
54 macroParameters.put( "width", "50" );
55 macroParameters.put( "height", "60" );
56 macroParameters.put( "quality", "best" );
57 macroParameters.put( "menu", "true" );
58 macroParameters.put( "loop", "3" );
59 macroParameters.put( "play", "false" );
60 macroParameters.put( "version", "6" );
61 macroParameters.put( "allowScript", "always" );
62
63
64 SinkEventTestingSink sink = new SinkEventTestingSink();
65 MacroRequest request = new MacroRequest( macroParameters, new File( "." ) );
66 SwfMacro macro = new SwfMacro();
67 macro.required( "src", "value" );
68
69 try
70 {
71 macro.required( "src", "" );
72 fail();
73 }
74 catch ( IllegalArgumentException e )
75 {
76 assertNotNull( e );
77 }
78
79 try
80 {
81 macro.required( "src", null );
82 fail();
83 }
84 catch ( IllegalArgumentException e )
85 {
86 assertNotNull( e );
87 }
88
89 macro.execute( sink, request );
90
91 Iterator<SinkEventElement> it = sink.getEventList().iterator();
92 SinkEventElement event = it.next();
93
94 assertEquals( "rawText", event.getName() );
95 assertFalse( it.hasNext() );
96
97 request = new MacroRequest( new HashMap<String, Object>(), new File( "." ) );
98 sink.reset();
99
100 macro.execute( sink, request );
101
102 it = sink.getEventList().iterator();
103 event = it.next();
104
105 assertEquals( "rawText", event.getName() );
106 assertFalse( it.hasNext() );
107 }
108
109
110
111
112
113
114 public void testOthersThenStringParameters()
115 throws MacroExecutionException
116 {
117
118 Map<String, Object> macroParameters = new HashMap<String, Object>();
119 macroParameters.put( "src", "src.swf" );
120 macroParameters.put( "id", "Movie" );
121 macroParameters.put( "width", "50" );
122 macroParameters.put( "height", "60" );
123 macroParameters.put( "quality", "best" );
124 macroParameters.put( "menu", "true" );
125 macroParameters.put( "loop", "3" );
126 macroParameters.put( "play", "false" );
127 macroParameters.put( "version", "6" );
128 macroParameters.put( "allowScript", "always" );
129 macroParameters.put( "notAString", new Integer(0) );
130
131
132 SinkEventTestingSink sink = new SinkEventTestingSink();
133 MacroRequest request = new MacroRequest( macroParameters, new File( "." ) );
134 SwfMacro macro = new SwfMacro();
135 macro.required( "src", "value" );
136
137 macro.execute( sink, request );
138
139 Iterator<SinkEventElement> it = sink.getEventList().iterator();
140 SinkEventElement event = it.next();
141
142 assertEquals( "rawText", event.getName() );
143 assertFalse( it.hasNext() );
144
145 request = new MacroRequest( new HashMap<String, Object>(), new File( "." ) );
146 sink.reset();
147
148 macro.execute( sink, request );
149
150 it = sink.getEventList().iterator();
151 event = it.next();
152
153 assertEquals( "rawText", event.getName() );
154 assertFalse( it.hasNext() );
155 }
156
157
158 }