1
2
3
4
5
6
7
8
9
10
11 package org.mule.providers.file;
12
13 import org.mule.MuleManager;
14 import org.mule.tck.providers.AbstractConnectorTestCase;
15 import org.mule.umo.UMOComponent;
16 import org.mule.umo.endpoint.UMOEndpoint;
17 import org.mule.umo.endpoint.UMOImmutableEndpoint;
18 import org.mule.umo.provider.UMOConnector;
19 import org.mule.umo.provider.UMOMessageReceiver;
20 import org.mule.util.FileUtils;
21
22 import java.io.File;
23 import java.util.Properties;
24
25 public class FileConnectorTestCase extends AbstractConnectorTestCase
26 {
27 static final long POLLING_FREQUENCY = 1234;
28 static final long POLLING_FREQUENCY_OVERRIDE = 4321;
29
30 private File validMessage;
31
32
33 protected void doSetUp() throws Exception
34 {
35 super.doSetUp();
36
37
38 File tempDir = FileUtils.newFile(MuleManager.getConfiguration().getWorkingDirectory(), "tmp");
39 if (!tempDir.exists())
40 {
41 tempDir.mkdirs();
42 }
43
44 validMessage = File.createTempFile("simple", ".mule", tempDir);
45 assertNotNull(validMessage);
46 FileUtils.writeStringToFile(validMessage, "validMessage");
47 }
48
49
50 protected void doTearDown() throws Exception
51 {
52
53
54 FileUtils.deleteTree(FileUtils.newFile(getTestConnector().getProtocol()));
55 super.doTearDown();
56 }
57
58
59
60
61
62
63 public UMOConnector createConnector() throws Exception
64 {
65 UMOConnector connector = new FileConnector();
66 connector.setName("testFile");
67 connector.initialise();
68 return connector;
69 }
70
71 public String getTestEndpointURI()
72 {
73 return "file://" + MuleManager.getConfiguration().getWorkingDirectory();
74 }
75
76 public Object getValidMessage() throws Exception
77 {
78 return validMessage;
79 }
80
81
82
83
84 public void testConnectorPollingFrequency() throws Exception
85 {
86 FileConnector connector = (FileConnector) getConnector();
87 connector.setPollingFrequency(POLLING_FREQUENCY);
88
89 UMOEndpoint endpoint = getTestEndpoint("simple", UMOImmutableEndpoint.ENDPOINT_TYPE_RECEIVER);
90 UMOComponent component = getTestComponent(getDescriptor());
91 UMOMessageReceiver receiver = connector.createReceiver(component, endpoint);
92 assertEquals("Connector's polling frequency must not be ignored.", POLLING_FREQUENCY,
93 ((FileMessageReceiver) receiver).getFrequency());
94 }
95
96
97
98
99 public void testPollingFrequencyEndpointOverride() throws Exception
100 {
101 FileConnector connector = (FileConnector) getConnector();
102
103 connector.setPollingFrequency(-1);
104
105 UMOEndpoint endpoint = getTestEndpoint("simple", UMOImmutableEndpoint.ENDPOINT_TYPE_RECEIVER);
106
107 Properties props = new Properties();
108
109 props.put(FileConnector.PROPERTY_POLLING_FREQUENCY, String.valueOf(POLLING_FREQUENCY_OVERRIDE));
110 endpoint.setProperties(props);
111
112 UMOComponent component = getTestComponent(getDescriptor());
113 UMOMessageReceiver receiver = connector.createReceiver(component, endpoint);
114 assertEquals("Polling frequency endpoint override must not be ignored.", POLLING_FREQUENCY_OVERRIDE,
115 ((FileMessageReceiver) receiver).getFrequency());
116 }
117
118 public void testOnlySingleDispatcherPerEndpoint()
119 {
120
121 FileConnector connector = (FileConnector) getConnector();
122
123 assertEquals(1, connector.getMaxDispatchersActive());
124
125 try
126 {
127 connector.setMaxDispatchersActive(2);
128 fail("expected IllegalArgumentException");
129 }
130 catch (IllegalArgumentException iax)
131 {
132
133 }
134
135
136 assertEquals(1, connector.getMaxDispatchersActive());
137 }
138 }