// Copyright (c) 2003 Dustin Sallings <dustin@spy.net>
package net.spy.util;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;
/**
* Test the IdentityEqualifier.
*/
public class IdentityEqualifierTest extends TestCase {
/**
* Get an instance of IdentityEqualifierTest.
*/
public IdentityEqualifierTest(String name) {
super(name);
}
/*
* Get this test.
*/
public static Test suite() {
return new TestSuite(IdentityEqualifierTest.class);
}
/**
* Run this test.
*/
public static void main(String args[]) {
junit.textui.TestRunner.run(suite());
}
/**
* Test basic identity equalifier functionality.
*/
public void testIdentityEqualifier() {
String test1=new String("Test");
String test2=new String("Test");
String test3=test1;
String test4=new String(test1);
IdentityEqualifier ie1=new IdentityEqualifier(test1);
IdentityEqualifier ie2=new IdentityEqualifier(test2);
IdentityEqualifier ie3=new IdentityEqualifier(test3);
IdentityEqualifier ie4=new IdentityEqualifier(test4);
assertEquals("=test1+test1", test1, test1);
assertEquals("=test1+test1", ie1, test1);
assertEquals("=test1+test2", test1, test2);
assertNotSame("=test1+test2", test1, test2);
assertFalse("=test1+test2", ie1.equals(test2));
assertFalse("=test1+test2", ie1.equals(ie2));
assertEquals(System.identityHashCode(test1), ie1.hashCode());
assertEquals(System.identityHashCode(test2), ie2.hashCode());
assertFalse(System.identityHashCode(test1) == ie2.hashCode());
assertEquals("=test1+test3", test1, test3);
assertSame("=test1+test3", test1, test3);
assertNotSame("=test1+test3", ie1, ie3);
assertEquals("=test1+test3", ie1, test3);
assertEquals("=test1+test3", ie1, ie3);
assertSame("=test1+test3", test1, ie1.get());
assertSame("=test1+test3", test1, ie3.get());
assertEquals("=test1+test4", test1, test4);
assertNotSame("=test1+test4", test1, test4);
assertNotSame("=test1+test4", ie1, ie4);
assertFalse("=test1+test4", ie1.equals(test4));
assertFalse("=test1+test4", ie1.equals(ie4));
}
}