summaryrefslogtreecommitdiffstats
path: root/codemaker/test/javamaker/java15
diff options
context:
space:
mode:
Diffstat (limited to 'codemaker/test/javamaker/java15')
-rw-r--r--codemaker/test/javamaker/java15/Test.java91
-rw-r--r--codemaker/test/javamaker/java15/makefile.mk32
-rw-r--r--codemaker/test/javamaker/java15/types.idl44
3 files changed, 167 insertions, 0 deletions
diff --git a/codemaker/test/javamaker/java15/Test.java b/codemaker/test/javamaker/java15/Test.java
new file mode 100644
index 000000000..30ffb4102
--- /dev/null
+++ b/codemaker/test/javamaker/java15/Test.java
@@ -0,0 +1,91 @@
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you 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 .
+ */
+
+package test.codemaker.javamaker.java15;
+
+import com.sun.star.lang.XMultiComponentFactory;
+import com.sun.star.uno.DeploymentException;
+import com.sun.star.uno.XComponentContext;
+import complexlib.ComplexTestCase;
+
+public final class Test extends ComplexTestCase {
+ public String[] getTestMethodNames() {
+ return new String[] {
+ "testPlainPolyStruct", "testBooleanPolyStruct", "testStruct",
+ "testService" };
+ }
+
+ public void testPlainPolyStruct() {
+ PolyStruct s = new PolyStruct();
+ assure(s.member1 == null);
+ assure(s.member2 == 0);
+ s = new PolyStruct("ABC", 5);
+ assure(s.member1.equals("ABC"));
+ assure(s.member2 == 5);
+ }
+
+ public void testBooleanPolyStruct() {
+ PolyStruct<Boolean,Object> s = new PolyStruct<Boolean,Object>();
+ assure(s.member1 == null);
+ assure(s.member2 == 0);
+ s = new PolyStruct<Boolean,Object>(true, 5);
+ assure(s.member1 == true);
+ assure(s.member2 == 5);
+ }
+
+ public void testStruct() {
+ Struct s = new Struct();
+ assure(s.member.member1 == null);
+ assure(s.member.member2 == 0);
+ s = new Struct(
+ new PolyStruct<PolyStruct<boolean[], Object>, Integer>(
+ new PolyStruct<boolean[], Object>(new boolean[] { true }, 3),
+ 4));
+ assure(s.member.member1.member1.length == 1);
+ assure(s.member.member1.member1[0] == true);
+ assure(s.member.member1.member2 == 3);
+ assure(s.member.member2 == 4);
+ }
+
+ public void testService() {
+ XComponentContext context = new XComponentContext() {
+ public Object getValueByName(String name) {
+ return null;
+ }
+
+ public XMultiComponentFactory getServiceManager() {
+ throw new DeploymentException();
+ }
+ };
+ try {
+ Service.create(context);
+ failed();
+ } catch (DeploymentException e) {}
+ try {
+ Service.create(
+ context, false, (byte) 1, (short) 2, Integer.valueOf(4));
+ failed();
+ } catch (DeploymentException e) {}
+ }
+
+ private static final class Ifc implements XIfc {
+ public void f1(PolyStruct<Integer, Integer> arg) {}
+
+ public void f2(PolyStruct<Object, Object> arg) {}
+ }
+}
diff --git a/codemaker/test/javamaker/java15/makefile.mk b/codemaker/test/javamaker/java15/makefile.mk
new file mode 100644
index 000000000..a9be5c83e
--- /dev/null
+++ b/codemaker/test/javamaker/java15/makefile.mk
@@ -0,0 +1,32 @@
+#
+# This file is part of the LibreOffice project.
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#
+# This file incorporates work covered by the following license notice:
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed
+# with this work for additional information regarding copyright
+# ownership. The ASF licenses this file to you 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 .
+#
+
+PRJ := ..$/..$/..
+PRJNAME := codemaker
+TARGET := test_codemaker_javamaker_java15
+
+PACKAGE := test$/codemaker$/javamaker$/java15
+JAVATESTFILES := Test.java
+IDLTESTFILES := types.idl
+JARFILES := ridl.jar
+
+JAVAMAKER = $(BIN)$/javamaker$(EXECPOST)
+
+.INCLUDE: javaunittest.mk
+
+$(MISC)$/$(TARGET).javamaker.flag: $(BIN)$/javamaker$(EXECPOST)
diff --git a/codemaker/test/javamaker/java15/types.idl b/codemaker/test/javamaker/java15/types.idl
new file mode 100644
index 000000000..3244eb257
--- /dev/null
+++ b/codemaker/test/javamaker/java15/types.idl
@@ -0,0 +1,44 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ *
+ * This file incorporates work covered by the following license notice:
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed
+ * with this work for additional information regarding copyright
+ * ownership. The ASF licenses this file to you 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 .
+ */
+
+#include <com/sun/star/uno/XInterface.idl>
+
+module test { module codemaker { module javamaker { module java15 {
+
+struct PolyStruct<if,else> {
+ if member1;
+ long member2;
+};
+
+struct Struct {
+ PolyStruct<PolyStruct<sequence<boolean>,any>,long> member;
+};
+
+service Service: com::sun::star::uno::XInterface {
+ create([in] any... args);
+};
+
+interface XIfc {
+ void f1([in] PolyStruct<long, long> arg);
+ void f2([in] PolyStruct<any, com::sun::star::uno::XInterface> arg);
+};
+
+}; }; }; };
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */