Version 3.6.0.4, tag libreoffice-3.6.0.4
[LibreOffice.git] / qadevOOo / tests / java / ifc / io / _XObjectOutputStream.java
blobfb635d472a5fee822500ea4be267ff6ca3d4531c
1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * Copyright 2000, 2010 Oracle and/or its affiliates.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * This file is part of OpenOffice.org.
11 * OpenOffice.org is free software: you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser General Public License version 3
13 * only, as published by the Free Software Foundation.
15 * OpenOffice.org is distributed in the hope that it will be useful,
16 * but WITHOUT ANY WARRANTY; without even the implied warranty of
17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18 * GNU Lesser General Public License version 3 for more details
19 * (a copy is included in the LICENSE file that accompanied this code).
21 * You should have received a copy of the GNU Lesser General Public License
22 * version 3 along with OpenOffice.org. If not, see
23 * <http://www.openoffice.org/license.html>
24 * for a copy of the LGPLv3 License.
26 ************************************************************************/
28 package ifc.io;
30 import lib.MultiMethodTest;
31 import lib.Status;
32 import lib.StatusException;
34 import com.sun.star.beans.XPropertySet;
35 import com.sun.star.io.XObjectInputStream;
36 import com.sun.star.io.XObjectOutputStream;
37 import com.sun.star.io.XPersistObject;
38 import com.sun.star.uno.UnoRuntime;
40 /**
41 * Testing <code>com.sun.star.io.XObjectOutputStream</code>
42 * interface methods:
43 * <ul>
44 * <li><code>writeObject()</code></li>
45 * </ul> <p>
46 * This test needs the following object relations :
47 * <ul>
48 * <li> <code>'InputStream'</code> (of type <code>XObjectInputStream</code>)</li>
49 * persist object for testing of write to stream</ul>
50 * @see com.sun.star.io.XObjectInputStream
51 * @see com.sun.star.io.XObjectOutputStream
52 * @see com.sun.star.io.XPersistObject
54 public class _XObjectOutputStream extends MultiMethodTest {
56 public XObjectOutputStream oObj = null;
58 /**
59 * Test creates persist object, sets label of object,
60 * calls the method for created persist object
61 * and checks label of object that was read from input stream. <p>
62 * Has <b> OK </b> status if the method successfully returns
63 * and labels are equals. <p>
65 public void _writeObject() throws Exception {
66 XObjectInputStream oInStream = (XObjectInputStream)
67 tEnv.getObjRelation("InputStream");
68 if (oInStream == null) throw
69 new StatusException(Status.failed("Relation 'InputStream' failed"));
71 // use own implementation of XPersistObject, so test runs
72 // without an office
73 XPersistObject objWrite = (XPersistObject)
74 tEnv.getObjRelation("PersistObject");
75 if (objWrite == null) throw
76 new StatusException(Status.failed("Relation 'PersistObject' failed"));
78 XPropertySet propObjWrite = (XPropertySet)
79 UnoRuntime.queryInterface(XPropertySet.class, objWrite);
81 // This XPersistObject has a property called 'String'
82 propObjWrite.setPropertyValue("String", "XObjectOutputStream");
84 log.println("Writing object with label 'XObjectOutputStream'");
85 oObj.writeObject(objWrite);
86 XPersistObject readObj = oInStream.readObject();
87 XPropertySet propSet = (XPropertySet)
88 UnoRuntime.queryInterface(XPropertySet.class, readObj);
89 String label = (String)propSet.getPropertyValue("String");
90 log.println("Object with label '" + label + "' was read");
92 tRes.tested("writeObject()", label.equals("XObjectOutputStream")) ;