Files
narya/tests/src/java/com/threerings/presents/server/DOMTest.java
T
Michael Bayne bc9f53396c Revamped distributed object creation. There was no particular reason to create
distributed objects by reflection since we don't allow clients to create
objects, furthermore we needn't do it asynchronously. The object creation
methods were moved into the server-side only interface and made "immediate", so
the caller creates a derived instance of DObject and registers it with the
system instead of creating it with a Subscriber callback.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4342 542714f4-19e9-0310-aa3c-eee0fc999fb1
2006-08-23 23:46:48 +00:00

114 lines
3.3 KiB
Java

//
// $Id$
//
// Narya library - tools for developing networked games
// Copyright (C) 2002-2004 Three Rings Design, Inc., All Rights Reserved
// http://www.threerings.net/code/narya/
//
// This library is free software; you can redistribute it and/or modify it
// under the terms of the GNU Lesser General Public License as published
// by the Free Software Foundation; either version 2.1 of the License, or
// (at your option) any later version.
//
// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// Lesser General Public License for more details.
//
// You should have received a copy of the GNU Lesser General Public
// License along with this library; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
package com.threerings.presents.server;
import junit.framework.Test;
import junit.framework.TestCase;
import com.threerings.presents.data.TestObject;
import com.threerings.presents.dobj.*;
/**
* A simple test case for the dobjmgr.
*/
public class DOMTest extends TestCase
implements AttributeChangeListener, ElementUpdateListener
{
public DOMTest ()
{
super(DOMTest.class.getName());
}
public void attributeChanged (AttributeChangedEvent event)
{
assertTrue(fields[_fcount] + " == " + values[_fcount],
event.getName().equals(fields[_fcount]) &&
event.getValue().equals(values[_fcount]));
// shutdown once we receive our last update
if (++_fcount == fields.length) {
_omgr.harshShutdown();
}
}
public void elementUpdated (ElementUpdatedEvent event)
{
// Log.info("Element updated " + event);
// Log.info(StringUtil.toString(_test.ints));
// Log.info(StringUtil.toString(_test.strings));
}
public void runTest ()
{
// request that a new TestObject be registered
_test = _omgr.registerObject(new TestObject());
// add ourselves as a listener
_test.addListener(this);
// test transactions
_test.startTransaction();
_test.setFoo(99);
_test.setBar("hoopie");
_test.commitTransaction();
// set some elements
_test.setIntsAt(15, 3);
_test.setIntsAt(5, 2);
_test.setIntsAt(1, 0);
_test.setStringsAt("Hello", 0);
_test.setStringsAt("Goodbye", 1);
_test.setStringsAt(null, 1);
// now set some values straight up
_test.setFoo(25);
_test.setBar("howdy");
// and run the object manager
_omgr.run();
}
public static Test suite ()
{
return new DOMTest();
}
public static void main (String[] args)
{
DOMTest test = new DOMTest();
test.runTest();
}
protected int _fcount = 0;
protected TestObject _test;
// the fields that will change in attribute changed events
protected Object[] fields = {
TestObject.FOO, TestObject.BAR, TestObject.FOO, TestObject.BAR };
// the values we'll receive via attribute changed events
protected Object[] values = {
new Integer(99), "hoopie", new Integer(25), "howdy" };
protected static PresentsDObjectMgr _omgr = new PresentsDObjectMgr();
}