12be43276SAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 32be43276SAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 42be43276SAndrew Rist * or more contributor license agreements. See the NOTICE file 52be43276SAndrew Rist * distributed with this work for additional information 62be43276SAndrew Rist * regarding copyright ownership. The ASF licenses this file 72be43276SAndrew Rist * to you under the Apache License, Version 2.0 (the 82be43276SAndrew Rist * "License"); you may not use this file except in compliance 92be43276SAndrew Rist * with the License. You may obtain a copy of the License at 102be43276SAndrew Rist * 112be43276SAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 122be43276SAndrew Rist * 132be43276SAndrew Rist * Unless required by applicable law or agreed to in writing, 142be43276SAndrew Rist * software distributed under the License is distributed on an 152be43276SAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 162be43276SAndrew Rist * KIND, either express or implied. See the License for the 172be43276SAndrew Rist * specific language governing permissions and limitations 182be43276SAndrew Rist * under the License. 192be43276SAndrew Rist * 202be43276SAndrew Rist *************************************************************/ 212be43276SAndrew Rist 222be43276SAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir package com.sun.star.uno; 25cdf0e10cSrcweir 26cdf0e10cSrcweir import com.sun.star.comp.connections.PipedConnection; 27cdf0e10cSrcweir import util.WaitUnreachable; 28cdf0e10cSrcweir 29*9cbd97ceSDamjan Jovanovic import org.junit.Test; 30*9cbd97ceSDamjan Jovanovic import static org.junit.Assert.*; 31cdf0e10cSrcweir 32*9cbd97ceSDamjan Jovanovic public final class UnoRuntime_EnvironmentTest { 33*9cbd97ceSDamjan Jovanovic @Test test_getEnvironment()34cdf0e10cSrcweir public void test_getEnvironment() throws java.lang.Exception { 35cdf0e10cSrcweir Object o1 = new Object(); 36cdf0e10cSrcweir Object o2 = new Object(); 37cdf0e10cSrcweir 38cdf0e10cSrcweir // get two environments with different contexts 39cdf0e10cSrcweir WaitUnreachable java_environment1 = new WaitUnreachable( 40cdf0e10cSrcweir UnoRuntime.getEnvironment("java", o1)); 41cdf0e10cSrcweir WaitUnreachable java_environment2 = new WaitUnreachable( 42cdf0e10cSrcweir UnoRuntime.getEnvironment("java", o2)); 43cdf0e10cSrcweir 44cdf0e10cSrcweir // ensure that the environments are different 45*9cbd97ceSDamjan Jovanovic assertTrue("", java_environment1.get() != java_environment2.get()); 46cdf0e10cSrcweir 47cdf0e10cSrcweir // test if we get the same environment when we reget it 48*9cbd97ceSDamjan Jovanovic assertTrue("", 49cdf0e10cSrcweir UnoRuntime.areSame(java_environment1.get(), 50cdf0e10cSrcweir UnoRuntime.getEnvironment("java", o1))); 51*9cbd97ceSDamjan Jovanovic assertTrue("", 52cdf0e10cSrcweir UnoRuntime.areSame(java_environment2.get(), 53cdf0e10cSrcweir UnoRuntime.getEnvironment("java", o2))); 54cdf0e10cSrcweir 55cdf0e10cSrcweir // drop the environments and wait until they are gc 56cdf0e10cSrcweir java_environment1.waitUnreachable(); 57cdf0e10cSrcweir java_environment2.waitUnreachable(); 58cdf0e10cSrcweir } 59cdf0e10cSrcweir 60*9cbd97ceSDamjan Jovanovic @Test test_getBridge()61cdf0e10cSrcweir public void test_getBridge() throws java.lang.Exception { 62cdf0e10cSrcweir PipedConnection conn = new PipedConnection(new Object[0]); 63cdf0e10cSrcweir new PipedConnection(new Object[] { conn }); 64cdf0e10cSrcweir 65cdf0e10cSrcweir // get a bridge 66cdf0e10cSrcweir IBridge iBridge = UnoRuntime.getBridgeByName( 67cdf0e10cSrcweir "java", null, "remote", "testname", 68cdf0e10cSrcweir new Object[] { "urp", conn, null }); 69cdf0e10cSrcweir 70cdf0e10cSrcweir // reget the bridge, it must be the same as above 71cdf0e10cSrcweir IBridge iBridge_tmp = UnoRuntime.getBridgeByName( 72cdf0e10cSrcweir "java", null, "remote", "testname", 73cdf0e10cSrcweir new Object[] { "urp", conn, null }); 74*9cbd97ceSDamjan Jovanovic assertTrue("", UnoRuntime.areSame(iBridge_tmp, iBridge)); 75cdf0e10cSrcweir 76cdf0e10cSrcweir // dispose the bridge, this removes the entry from the runtime 77cdf0e10cSrcweir iBridge.dispose(); 78cdf0e10cSrcweir 79cdf0e10cSrcweir conn = new PipedConnection(new Object[0]); 80cdf0e10cSrcweir new PipedConnection(new Object[] { conn }); 81cdf0e10cSrcweir 82cdf0e10cSrcweir // reget the bridge, it must be a different one 83cdf0e10cSrcweir iBridge_tmp = UnoRuntime.getBridgeByName( 84cdf0e10cSrcweir "java", null, "remote", "testname", 85cdf0e10cSrcweir new Object[]{ "urp", conn, null }); 86*9cbd97ceSDamjan Jovanovic assertTrue("", !UnoRuntime.areSame(iBridge_tmp, iBridge)); 87cdf0e10cSrcweir } 88cdf0e10cSrcweir } 89