📄 idtest.java
字号:
/*
* $Id: IDTest.java,v 1.1 2002/02/18 16:06:30 echtcherbina Exp $
********************
*
* Copyright (c) 2001 Sun Microsystems, Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Sun Microsystems, Inc. for Project JXTA."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Sun", "Sun Microsystems, Inc.", "JXTA" and "Project JXTA" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact Project JXTA at http://www.jxta.org.
*
* 5. Products derived from this software may not be called "JXTA",
* nor may "JXTA" appear in their name, without prior written
* permission of Sun.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL SUN MICROSYSTEMS OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of Project JXTA. For more
* information on Project JXTA, please see
* <http://www.jxta.org/>.
*
* This license is based on the BSD license adopted by the Apache Foundation.
********************
*/
import junit.framework.*;
import java.net.URL;
import net.jxta.id.*;
import net.jxta.codat.CodatID;
import net.jxta.peergroup.PeerGroupID;
import net.jxta.peer.PeerID;
import net.jxta.pipe.PipeID;
/**
*
* @author mike
* @version
*/
public final class IDTest extends TestCase {
/** Creates new DocTest */
public IDTest(String name) {
super(name);
}
public void testID() {
try {
ID first = ID.nullID;
ID second = ID.nullID;
ID third;
String asString;
URL asURL;
ID myPeerGroup;
assertTrue( "comparison of two IDs failed", first.equals(second) );
third = (ID) first.clone();
assertTrue( "comparison of cloned ID failed", first.equals(third) );
assertTrue( "zero hashcodereturned", 0 != first.hashCode() );
asURL = first.getURL( );
asString = first.toString( );
assertTrue( "comparison of ID string and string of URL was not the same", asString.equals( asURL.toString() ) );
third = (ID) IDFactory.fromURL( asURL );
assertTrue( "result of conversion to URL and back to ID was not equal to original", first.equals( third ) );
}
catch( Exception everything ) {
everything.printStackTrace();
fail( "caught an unexpected exception - " + everything.toString() );
}
}
public void testCodatID() {
try {
CodatID first = IDFactory.newCodatID( IDFactory.newPeerGroupID( ) );
CodatID second = IDFactory.newCodatID( IDFactory.newPeerGroupID( ) );
CodatID third;
ID interloper = (ID) IDFactory.newPeerID( IDFactory.newPeerGroupID( ) );
String asString;
URL asURL;
ID myPeerGroup;
boolean isStatic;
assertTrue( "comparison of a CodatID against itself failed", first.equals(first) );
assertTrue( "comparison of two different CodatIDs should have failed", !first.equals(second) );
third = (CodatID) first.clone();
assertTrue( "comparison of cloned ID failed", first.equals(third) );
assertTrue( "comparison of different types should have failed", !first.equals( interloper ) );
assertTrue( "comparison of different types should have failed", !interloper.equals( first ) );
assertTrue( "zero hashcodereturned", 0 != first.hashCode() );
asURL = first.getURL( );
asString = first.toString( );
assertTrue( "comparison of ID string and string of URL was not the same", asString.equals( asURL.toString() ) );
third = (CodatID) IDFactory.fromURL( asURL );
assertTrue( "result of conversion to URL and back to ID was not equal to original", first.equals( third ) );
myPeerGroup = first.getPeerGroupID();
assertTrue( "clone of ID is not of same peergroup.", first.getPeerGroupID().equals(third.getPeerGroupID()) );
assertTrue( "dynamic CodatID did not test as such.", !first.isStatic() );
}
catch( Exception everything ) {
everything.printStackTrace();
fail( "caught an unexpected exception - " + everything.toString() );
}
}
public void testPeerGroupID() {
try {
PeerGroupID first = IDFactory.newPeerGroupID( );
PeerGroupID second = IDFactory.newPeerGroupID( );
PeerGroupID third;
ID interloper = (ID) IDFactory.newPeerID( IDFactory.newPeerGroupID( ) );
String asString;
URL asURL;
ID myPeerGroup;
boolean isStatic;
assertTrue( "comparison of a PeerGroupID against itself failed", first.equals(first) );
assertTrue( "comparison against worldPeerGroup should have failed", !first.equals(PeerGroupID.worldPeerGroupID) );
assertTrue( "comparison of two different PeerGroupIDs should have failed", !first.equals(second) );
third = (PeerGroupID) first.clone();
assertTrue( "comparison of cloned ID failed", first.equals(third) );
assertTrue( "comparison of different types should have failed", !first.equals( interloper ) );
assertTrue( "comparison of different types should have failed", !interloper.equals( first ) );
assertTrue( "zero hashcodereturned", 0 != first.hashCode() );
assertTrue( "hashcode for world group should not have matched.", PeerGroupID.worldPeerGroupID.hashCode() != first.hashCode() );
asURL = first.getURL( );
asString = first.toString( );
assertTrue( "comparison of ID string and string of URL was not the same", asString.equals( asURL.toString() ) );
third = (PeerGroupID) IDFactory.fromURL( asURL );
assertTrue( "result of conversion to URL and back to ID was not equal to original", first.equals( third ) );
Object fromFirst = first.getUniqueValue();
Object fromSecond = second.getUniqueValue();
assertTrue( "comparison of UUIDs from an ID and a clone failed", fromFirst.equals( third.getUniqueValue()) );
assertTrue( "comparison of UUIDs from an ID and a different ID should have failed.", !fromFirst.equals( second.getUniqueValue()) );
}
catch( Exception everything ) {
everything.printStackTrace();
fail( "caught an unexpected exception - " + everything.toString() );
}
}
public void testPeerID() {
try {
PeerID first = IDFactory.newPeerID( IDFactory.newPeerGroupID( ) );
PeerID second = IDFactory.newPeerID( IDFactory.newPeerGroupID( ) );
PeerID third;
ID interloper = IDFactory.newPeerGroupID( );
String asString;
URL asURL;
ID myPeerGroup;
boolean isStatic;
assertTrue( "comparison of a PeerID against itself failed", first.equals(first) );
assertTrue( "comparison of two different PeerIDs should have failed", !first.equals(second) );
third = (PeerID) first.clone();
assertTrue( "comparison of cloned ID failed", first.equals(third) );
assertTrue( "comparison of different types should have failed", !first.equals( interloper ) );
assertTrue( "comparison of different types should have failed", !interloper.equals( first ) );
assertTrue( "zero hashcodereturned", 0 != first.hashCode() );
asURL = first.getURL( );
asString = first.toString( );
assertTrue( "comparison of ID string and string of URL was not the same" , asString.equals( asURL.toString() ) );
third = (PeerID) IDFactory.fromURL( asURL );
assertTrue( "result of conversion to URL and back to ID was not equal to original", first.equals( third ) );
assertTrue( "clone of ID is not of same peergroup.", first.getPeerGroupID().equals(third.getPeerGroupID()) );
}
catch( Exception everything ) {
everything.printStackTrace();
fail( "caught an unexpected exception - " + everything.toString() );
}
}
public void testPipeID() {
try {
PipeID first = IDFactory.newPipeID( IDFactory.newPeerGroupID( ) );
PipeID second = IDFactory.newPipeID( IDFactory.newPeerGroupID( ) );
PipeID third;
ID interloper = IDFactory.newPeerGroupID( );
String asString;
URL asURL;
ID myPeerGroup;
boolean isStatic;
assertTrue( "comparison of a PipeID against itself failed", first.equals(first) );
assertTrue( "comparison of two different PipeIDs should have failed", !first.equals(second) );
third = (PipeID) first.clone();
assertTrue( "comparison of cloned ID failed", first.equals(third) );
assertTrue( "comparison of different types should have failed", !first.equals( interloper ) );
assertTrue( "comparison of different types should have failed", !interloper.equals( first ) );
assertTrue( "zero hashcode returned", 0 != first.hashCode() );
asURL = first.getURL( );
asString = first.toString( );
assertTrue( "comparison of ID string and string of URL was not the same", asString.equals( asURL.toString() ) );
third = (PipeID) IDFactory.fromURL( asURL );
assertTrue( "result of conversion to URL and back to ID was not equal to original", first.equals( third ) );
assertTrue( "clone of ID is not of same peergroup.", first.getPeerGroupID().equals(third.getPeerGroupID()) );
} catch( Exception everything ) {
everything.printStackTrace();
fail( "caught an unexpected exception - " + everything.toString() );
}
}
public void testIDFactory() {
try {
URL urla = new URL( "urn:jxta:idform-1234567890" );
URL urlb = new URL( "URN:jxta:idform-1234567890" );
URL urlc = new URL( "urn:JXTA:idform-1234567890" );
URL urld = new URL( "urn:JXTA:idform-123456789%30" );
URL urle = new URL( "urn:JXTA:IDForm-1234567890" );
URL urlf = new URL( "urn:jxta:idform2-ABCDEFG" );
URL urlg = new URL( "urn:jxta:idform3-31:08:66:42:67:::91:24::73" );
ID ida = IDFactory.fromURL( urla );
ID idb = IDFactory.fromURL( urlb );
ID idc = IDFactory.fromURL( urlc );
ID idd = IDFactory.fromURL( urld );
ID ide = IDFactory.fromURL( urle );
ID idf = IDFactory.fromURL( urlf );
ID idg = IDFactory.fromURL( urlg );
assertEquals( ida, idb );
assertEquals( idb, idc );
assertEquals( ida, idc );
assertEquals( ida, idd );
assertTrue( !ida.equals(ide) );
assertTrue( !ida.equals(idf) );
assertTrue( !ida.equals(idg) );
} catch( Exception everything ) {
everything.printStackTrace();
fail( "caught an unexpected exception - " + everything.toString() );
}
}
public static void main(String args[]) {
new junit.textui.TestRunner().main(new String[] {"IDTest"});
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -