001: package org.drools.resource;
002:
003: import java.io.File;
004: import java.net.URI;
005: import java.net.URL;
006:
007: import junit.framework.TestCase;
008:
009: import org.apache.log4j.Logger;
010: import org.drools.resource.RepositoryBean;
011: import org.drools.resource.ResourceHandler;
012: import org.drools.resource.SvnResourceHandler;
013: import org.drools.resource.util.SvnUtil;
014:
015: /**
016: * @author James Williams (james.williams@redhat.com)
017: *
018: */
019: public class SvnResourceHandlerTest extends TestCase {
020:
021: private static Logger logger = Logger
022: .getLogger(SvnResourceHandlerTest.class);
023:
024: private static String svnUrl = "file:///D:/dev/trunk2/rule-resource-handler/target/test-classes/svn_repo";
025: private static String testFilePath = "D:/dev/trunk2/rule-resource-handler/target/test-classes/files";
026:
027: public void setUp() {
028: // First we need to find the absolute path
029: URL url = getClass().getResource("/svn_repo");
030:
031: // ClassLoader cl = getClass().getClassLoader();
032: // assertNotNull( cl );
033: // ClassLoader sys = cl.getSystemClassLoader();
034: // assertNotNull(sys);
035: //
036: // URL url = sys.getResource( "svn_repo" );
037: assertNotNull(url);
038: File file = new File(url.getFile());
039:
040: // Now set the two path roots
041: svnUrl = "file:///"
042: + file.getAbsolutePath().replaceAll("\\\\", "/");
043: testFilePath = file.getParentFile().getAbsolutePath()
044: .replaceAll("\\\\", "/")
045: + "/files";
046: }
047:
048: public void testAuthentication() {
049: ResourceHandler rHandler = new SvnResourceHandler();
050: rHandler.setCredentials("mrtrout", "drools");
051:
052: boolean authRtnPass = rHandler.authenticate(svnUrl);//"file:///D:/dev/trunk2/rule-resource-handler/target/test-classes/svn_repo" );
053: boolean authRtnFail = rHandler.authenticate(svnUrl + "2");//"file:///D:/dev/trunk2/rule-resource-handler/target/test-classes/svn_repo2" );
054:
055: System.out.println(svnUrl);
056:
057: assertEquals(true, authRtnPass);
058: assertEquals(false, authRtnFail);
059:
060: logger.debug("testAuthentication executed");
061: }
062:
063: public void testGetDrlFile() {
064: ResourceHandler rHandler = new SvnResourceHandler();
065: rHandler.setRepositoryUrl(svnUrl);
066: rHandler.setCredentials("mrtrout", "drools");
067:
068: RepositoryBean bean = new RepositoryBean();
069: bean.setName("test");
070: bean.setResourceType(ResourceType.DRL_FILE);
071: try {
072: File f = new File(testFilePath + "/drls/test.drl");
073: System.out.println(rHandler.getResourceStream(bean));
074: assertEquals(SvnUtil.getByteArrayOutputFromFile(f)
075: .toString(), rHandler.getResourceStream(bean)
076: .toString());
077: } catch (Exception e) {
078: e.printStackTrace();
079: throw new RuntimeException(e);
080: }
081: }
082:
083: public void testGetDrlFileByVersion() {
084: ResourceHandler rHandler = new SvnResourceHandler();
085: rHandler.setRepositoryUrl(svnUrl);
086: rHandler.setCredentials("mrtrout", "drools");
087:
088: RepositoryBean bean = new RepositoryBean();
089: bean.setName("test");
090: bean.setResourceType(ResourceType.DRL_FILE);
091:
092: //this value is unique to your subversion implementation
093: bean.setVersion("1");
094:
095: try {
096: File f = new File(testFilePath + "/drls/test.drl");
097: System.out.println(rHandler.getResourceStream(bean));
098: assertEquals(SvnUtil.getByteArrayOutputFromFile(f)
099: .toString(), rHandler.getResourceStream(bean)
100: .toString());
101: } catch (Exception e) {
102: throw new RuntimeException(e);
103: }
104: }
105:
106: public void testGetDslFile() {
107: ResourceHandler rHandler = new SvnResourceHandler();
108: rHandler.setRepositoryUrl(svnUrl);
109: rHandler.setCredentials("mrtrout", "drools");
110:
111: RepositoryBean bean = new RepositoryBean();
112: bean.setName("test");
113: bean.setResourceType(ResourceType.DSL_FILE);
114:
115: try {
116: File f = new File(testFilePath + "/dsls/test.dsl");
117: System.out.println(rHandler.getResourceStream(bean));
118: assertEquals(SvnUtil.getByteArrayOutputFromFile(f)
119: .toString(), rHandler.getResourceStream(bean)
120: .toString());
121: } catch (Exception e) {
122: throw new RuntimeException(e);
123: }
124: }
125:
126: public void testGetDslFileByVersion() {
127: ResourceHandler rHandler = new SvnResourceHandler();
128: rHandler.setRepositoryUrl(svnUrl);
129: rHandler.setCredentials("mrtrout", "drools");
130:
131: RepositoryBean bean = new RepositoryBean();
132: bean.setName("test");
133: bean.setResourceType(ResourceType.DSL_FILE);
134:
135: //this value is unique to your subversion implementation
136: bean.setVersion("1");
137:
138: try {
139: File f = new File(testFilePath + "/dsls/test.dsl");
140: System.out.println(rHandler.getResourceStream(bean));
141: assertEquals(SvnUtil.getByteArrayOutputFromFile(f)
142: .toString(), rHandler.getResourceStream(bean)
143: .toString());
144: } catch (Exception e) {
145: throw new RuntimeException(e);
146: }
147: }
148:
149: public void testGetRuleFunctionByVersion() {
150: ResourceHandler rHandler = new SvnResourceHandler();
151: rHandler.setRepositoryUrl(svnUrl);
152: rHandler.setCredentials("mrtrout", "drools");
153:
154: RepositoryBean bean = new RepositoryBean();
155: bean.setName("test");
156: bean.setResourceType(ResourceType.FUNCTION);
157:
158: //this value is unique to your subversion implementation
159: bean.setVersion("1");
160:
161: try {
162: File f = new File(testFilePath + "/functions/test.function");
163: System.out.println(rHandler.getResourceStream(bean));
164: assertEquals(SvnUtil.getByteArrayOutputFromFile(f)
165: .toString(), rHandler.getResourceStream(bean)
166: .toString());
167: } catch (Exception e) {
168: throw new RuntimeException(e);
169: }
170: }
171:
172: public void testGetRuleFunction() {
173: ResourceHandler rHandler = new SvnResourceHandler();
174: rHandler.setRepositoryUrl(svnUrl);
175: rHandler.setCredentials("mrtrout", "drools");
176:
177: RepositoryBean bean = new RepositoryBean();
178: bean.setName("test");
179: bean.setResourceType(ResourceType.FUNCTION);
180:
181: try {
182: File f = new File(testFilePath + "/functions/test.function");
183: System.out.println(rHandler.getResourceStream(bean));
184: assertEquals(SvnUtil.getByteArrayOutputFromFile(f)
185: .toString(), rHandler.getResourceStream(bean)
186: .toString());
187: } catch (Exception e) {
188: throw new RuntimeException(e);
189: }
190: }
191:
192: public void testGetRule() {
193: ResourceHandler rHandler = new SvnResourceHandler();
194: rHandler.setRepositoryUrl(svnUrl);
195: rHandler.setCredentials("mrtrout", "drools");
196:
197: RepositoryBean bean = new RepositoryBean();
198: bean.setName("test");
199: bean.setResourceType(ResourceType.RULE);
200:
201: try {
202: File f = new File(testFilePath + "/rules/test.rule");
203: System.out.println(rHandler.getResourceStream(bean));
204: assertEquals(SvnUtil.getByteArrayOutputFromFile(f)
205: .toString(), rHandler.getResourceStream(bean)
206: .toString());
207: } catch (Exception e) {
208: throw new RuntimeException(e);
209: }
210: }
211:
212: public void testGetRuleByVersion() {
213: ResourceHandler rHandler = new SvnResourceHandler();
214: rHandler.setRepositoryUrl(svnUrl);
215: rHandler.setCredentials("mrtrout", "drools");
216:
217: RepositoryBean bean = new RepositoryBean();
218: bean.setName("test");
219: bean.setResourceType(ResourceType.RULE);
220:
221: //this value is unique to your subversion implementation
222: bean.setVersion("1");
223:
224: try {
225: File f = new File(testFilePath + "/rules/test.rule");
226: System.out.println(rHandler.getResourceStream(bean));
227: assertEquals(SvnUtil.getByteArrayOutputFromFile(f)
228: .toString(), rHandler.getResourceStream(bean)
229: .toString());
230: } catch (Exception e) {
231: throw new RuntimeException(e);
232: }
233: }
234:
235: public void testGetSpreadsheet() {
236: ResourceHandler rHandler = new SvnResourceHandler();
237: rHandler.setRepositoryUrl(svnUrl);
238: rHandler.setCredentials("mrtrout", "drools");
239:
240: RepositoryBean bean = new RepositoryBean();
241: bean.setName("test");
242: bean.setResourceType(ResourceType.XLS_FILE);
243:
244: try {
245: File f = new File(testFilePath + "/spreadsheets/test.xls");
246: // System.out.println(rHandler.getResourceStream(bean));
247: assertEquals(SvnUtil.getByteArrayOutputFromFile(f)
248: .toString(), rHandler.getResourceStream(bean)
249: .toString());
250: } catch (Exception e) {
251: throw new RuntimeException(e);
252: }
253: }
254:
255: public void testGetSpreadsheetByVersion() {
256: ResourceHandler rHandler = new SvnResourceHandler();
257: rHandler.setRepositoryUrl(svnUrl);
258: rHandler.setCredentials("mrtrout", "drools");
259:
260: RepositoryBean bean = new RepositoryBean();
261: bean.setName("test");
262: bean.setResourceType(ResourceType.XLS_FILE);
263:
264: //this value is unique to your subversion implementation
265: bean.setVersion("1");
266:
267: try {
268: File f = new File(testFilePath + "/spreadsheets/test.xls");
269: // System.out.println(rHandler.getResourceStream(bean));
270: assertEquals(SvnUtil.getByteArrayOutputFromFile(f)
271: .toString(), rHandler.getResourceStream(bean)
272: .toString());
273: } catch (Exception e) {
274: throw new RuntimeException(e);
275: }
276: }
277:
278: }
|