01: /*
02: * $Id: BPELProcessFactoryTest.java,v 1.6 2004/11/30 15:05:24 fornp1 Exp $
03: *
04: * Copyright (c) 2004 Patric Fornasier, Pawel Kowalski
05: * Berne University of Applied Sciences
06: * School of Engineering and Information Technology
07: * All rights reserved.
08: */
09: package bexee.model;
10:
11: import java.io.InputStream;
12:
13: import junit.framework.TestCase;
14: import bexee.model.process.BPELProcess;
15: import bexee.util.Constants;
16:
17: /**
18: * @version $Revision: 1.6 $, $Date: 2004/11/30 15:05:24 $
19: * @author Patric Fornasier
20: */
21: public class BPELProcessFactoryTest extends TestCase {
22:
23: private static final String FACTORY_IMPL = "bexee.model.BPELProcessFactoryTest$MockBPELProcessFactory";
24:
25: protected void tearDown() throws Exception {
26: super .tearDown();
27:
28: // make sure to remove that system property again
29: System.getProperties().remove(Constants.OPT_PROCESS_FACTORY);
30: }
31:
32: /**
33: * Test if the factory returns the correct default implementation if no
34: * system property is set.
35: */
36: public void testGetInstance() {
37: BPELProcessFactory factory = BPELProcessFactory.getInstance();
38: assertTrue(factory instanceof BPELProcessFactoryImpl);
39: }
40:
41: /**
42: * Test whether the factory returns the default implementation if an invalid
43: * class name is provided.
44: */
45: public void testWrongClassName() {
46: // set an invalid class name
47: System.setProperty(Constants.OPT_PROCESS_FACTORY,
48: "nonExistingClass");
49:
50: // check if the default implementation is created
51: BPELProcessFactory factory = BPELProcessFactory.getInstance();
52: assertTrue(factory instanceof BPELProcessFactoryImpl);
53: }
54:
55: /**
56: * Test whether the factory returns the right implementation based on a
57: * system property.
58: */
59: public void testGetInstanceBySystemProperty() {
60:
61: // set a different implementation
62: System.setProperty(Constants.OPT_PROCESS_FACTORY, FACTORY_IMPL);
63:
64: BPELProcessFactory factory = BPELProcessFactory.getInstance();
65: assertTrue(factory instanceof BPELProcessFactoryTest.MockBPELProcessFactory);
66: }
67:
68: /**
69: * Mock class extending the <code>BPELProcessFactory</code> for testing.
70: *
71: * @version $Revision: 1.6 $, $Date: 2004/11/30 15:05:24 $
72: * @author Patric Fornasier
73: */
74: public static class MockBPELProcessFactory extends
75: BPELProcessFactory {
76: /**
77: * Doesn't do anything
78: */
79: public BPELProcess createBPELProcess(
80: InputStream bpelDocumentStream)
81: throws BPELDocumentException {
82: return null;
83: }
84: }
85: }
|