From ed5640d8b587fbcfed7dd7967f3de04b37a76f26 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 11:06:44 +0200 Subject: Adding upstream version 4:7.4.7. Signed-off-by: Daniel Baumann --- qadevOOo/tests/java/mod/_streams/uno/Pump.java | 172 +++++++++++++++++++++++++ 1 file changed, 172 insertions(+) create mode 100644 qadevOOo/tests/java/mod/_streams/uno/Pump.java (limited to 'qadevOOo/tests/java/mod/_streams/uno/Pump.java') diff --git a/qadevOOo/tests/java/mod/_streams/uno/Pump.java b/qadevOOo/tests/java/mod/_streams/uno/Pump.java new file mode 100644 index 000000000..85669fbcc --- /dev/null +++ b/qadevOOo/tests/java/mod/_streams/uno/Pump.java @@ -0,0 +1,172 @@ +/* + * 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 mod._streams.uno; + +import com.sun.star.io.NotConnectedException; +import com.sun.star.io.XActiveDataSink; +import com.sun.star.io.XActiveDataSource; +import com.sun.star.io.XInputStream; +import com.sun.star.io.XOutputStream; +import com.sun.star.lang.XMultiServiceFactory; +import com.sun.star.uno.UnoRuntime; +import com.sun.star.uno.XInterface; + +import java.io.PrintWriter; + +import lib.TestCase; +import lib.TestEnvironment; +import lib.TestParameters; + +/** +* Test for object which is represented by service +* com.sun.star.io.Pump.

+* Object implements the following interfaces : +*

+* @see com.sun.star.io.Pump +* @see com.sun.star.io.XActiveDataSource +* @see com.sun.star.io.XActiveDataControl +* @see com.sun.star.io.XActiveDataSink +* @see ifc.io._XActiveDataSource +* @see ifc.io._XActiveDataControl +* @see ifc.io._XActiveDataSink +*/ +public class Pump extends TestCase { + + /** + * Creating a TestEnvironment for the interfaces to be tested. + * Creates an instance of the service com.sun.star.io.Pump. + * Settings up input and output streams for the created pump. + * Object relations created : + * + * @see com.sun.star.io.Pump + */ + @Override + protected TestEnvironment createTestEnvironment(TestParameters Param, PrintWriter log) throws Exception { + + Object oInterface = null; + XMultiServiceFactory xMSF = Param.getMSF(); + XInterface oPipe; + + // creating an instance of stm.Pump + oInterface = xMSF.createInstance( "com.sun.star.io.Pump" ); + oPipe = (XInterface) xMSF.createInstance( "com.sun.star.io.Pipe" ); + + XInterface oObj = (XInterface) oInterface; + + // setting up input and output streams for pump + XActiveDataSink xSink = UnoRuntime.queryInterface(XActiveDataSink.class, oObj); + XActiveDataSource xSource = UnoRuntime.queryInterface(XActiveDataSource.class, oObj); + + XInputStream xInput = new MyInput(); + XOutputStream xOutput = new MyOutput(); + + xSink.setInputStream(xInput); + xSource.setOutputStream(xOutput); + + log.println("creating a new environment for object"); + TestEnvironment tEnv = new TestEnvironment( oObj ); + + // add object relations for ActiveDataSource and XActiveDataSink + tEnv.addObjRelation("InputStream", oPipe); + tEnv.addObjRelation("OutputStream", oPipe); + + return tEnv; + } // finish method getTestEnvironment + + /** + * XInputStream implementation to use with the test. It returns bytes of + * which a simple string consists. + */ + private static class MyInput implements XInputStream { + String str = "Pump tesing string" ; + + public int readBytes(byte[][] bytes, int len) + throws NotConnectedException{ + + if (str == null) + throw new NotConnectedException("Input stream was closed"); + + int actual = 0 ; + if (len <= str.length()) { + String resStr = str.substring(0, len-1) ; + bytes[0] = resStr.getBytes() ; + actual = len ; + str = str.substring(len) ; + } else { + bytes[0] = str.getBytes() ; + actual = str.length() ; + } + + return actual; + } + + public int readSomeBytes(byte[][] bytes, int len) + throws NotConnectedException{ + return readBytes(bytes, len); + } + + public void skipBytes(int len) throws NotConnectedException { + if (str == null) + throw new NotConnectedException("Stream was closed.") ; + + if (len >= str.length()) + str = "" ; + else + str = str.substring(len) ; + } + + public void closeInput() throws NotConnectedException { + if (str == null) + throw new NotConnectedException("Stream was closed.") ; + + str = null ; + } + + public int available() throws NotConnectedException { + if (str == null) + throw new NotConnectedException("Stream was closed.") ; + + return str.length(); + } + } + + /** + * Dummy XOutputStream implementation to use with the test. Does nothing. + */ + private static class MyOutput implements XOutputStream { + public void writeBytes(byte[] bytes) { + } + + public void flush() { + } + + public void closeOutput() { + } + } +} + -- cgit v1.2.3