summaryrefslogtreecommitdiffstats
path: root/sandbox/ant/tuscany-container-rhino/src/test/java/org/apache/tuscany/container/rhino/builder/JavaScriptContextFactoryBuilderTestCase.java
diff options
context:
space:
mode:
Diffstat (limited to 'sandbox/ant/tuscany-container-rhino/src/test/java/org/apache/tuscany/container/rhino/builder/JavaScriptContextFactoryBuilderTestCase.java')
-rw-r--r--sandbox/ant/tuscany-container-rhino/src/test/java/org/apache/tuscany/container/rhino/builder/JavaScriptContextFactoryBuilderTestCase.java121
1 files changed, 121 insertions, 0 deletions
diff --git a/sandbox/ant/tuscany-container-rhino/src/test/java/org/apache/tuscany/container/rhino/builder/JavaScriptContextFactoryBuilderTestCase.java b/sandbox/ant/tuscany-container-rhino/src/test/java/org/apache/tuscany/container/rhino/builder/JavaScriptContextFactoryBuilderTestCase.java
new file mode 100644
index 0000000000..8d25183386
--- /dev/null
+++ b/sandbox/ant/tuscany-container-rhino/src/test/java/org/apache/tuscany/container/rhino/builder/JavaScriptContextFactoryBuilderTestCase.java
@@ -0,0 +1,121 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.tuscany.container.rhino.builder;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import junit.framework.TestCase;
+
+import org.apache.tuscany.common.resource.impl.ResourceLoaderImpl;
+import org.apache.tuscany.container.rhino.assembly.JavaScriptImplementation;
+import org.apache.tuscany.container.rhino.context.JavaScriptComponentContext;
+import org.apache.tuscany.core.builder.ContextFactory;
+import org.apache.tuscany.core.extension.ExternalServiceInvoker;
+import org.apache.tuscany.model.assembly.AssemblyContext;
+import org.apache.tuscany.model.assembly.AssemblyInitializationException;
+import org.apache.tuscany.model.assembly.AssemblyVisitor;
+import org.apache.tuscany.model.assembly.ComponentType;
+import org.apache.tuscany.model.assembly.Property;
+import org.apache.tuscany.model.assembly.Reference;
+import org.apache.tuscany.model.assembly.Service;
+
+/**
+ * Tests for the RhinoScript
+ */
+public class JavaScriptContextFactoryBuilderTestCase extends TestCase {
+
+ public JavaScriptContextFactoryBuilderTestCase() {
+
+ }
+
+ protected void setUp() throws Exception {
+ super.setUp();
+ }
+
+ @SuppressWarnings("unchecked")
+ public void testSimpleConstructor() {
+ JavaScriptContextFactoryBuilder builder = new JavaScriptContextFactoryBuilder();
+ JavaScriptImplementation jsImpl = createMockJSImpl();
+ jsImpl.setScript("function foo() { return 'petra';}");
+
+ ContextFactory cf = builder.createContextFactory("foo", jsImpl, null);
+ assertNotNull(cf);
+
+ JavaScriptComponentContext context = (JavaScriptComponentContext) cf.createContext();
+ assertNotNull(context);
+
+ ExternalServiceInvoker invoker = (ExternalServiceInvoker) context.getTargetInstance();
+ assertNotNull(invoker);
+
+ Object response = invoker.invoke("foo", new Object[0]);
+ assertEquals("petra", response);
+ }
+
+ private JavaScriptImplementation createMockJSImpl() {
+ JavaScriptImplementation jsImpl = new JavaScriptImplementation();
+
+ jsImpl.setComponentType(new ComponentType() {
+
+ public List<Service> getServices() {
+ return new ArrayList<Service>();
+ }
+
+ public Service getService(String name) {
+ return null;
+ }
+
+ public List<Reference> getReferences() {
+ return null;
+ }
+
+ public Reference getReference(String name) {
+ return null;
+ }
+
+ public List<Property> getProperties() {
+ return new ArrayList<Property>();
+ }
+
+ public Property getProperty(String name) {
+ return null;
+ }
+
+ public List<Object> getExtensibilityElements() {
+ return null;
+ }
+
+ public List<Object> getExtensibilityAttributes() {
+ return null;
+ }
+
+ public void initialize(AssemblyContext modelContext) throws AssemblyInitializationException {
+ }
+
+ public void freeze() {
+ }
+
+ public boolean accept(AssemblyVisitor visitor) {
+ return false;
+ }
+ });
+
+ jsImpl.setResourceLoader(new ResourceLoaderImpl(getClass().getClassLoader()));
+
+ return jsImpl;
+ }
+
+} \ No newline at end of file