package org.jgroups.tests;
import org.jgroups.Global;
import org.jgroups.util.AsciiString;
import org.testng.annotations.Test;
import java.util.HashMap;
import java.util.Map;
/**
* Tests {@link AsciiString}
* @author Bela Ban
* @since 3.5
*/
@Test(groups=Global.FUNCTIONAL)
public class AsciiStringTest {
public void testCreation() {
String orig="hello";
AsciiString str=new AsciiString(orig);
assert str.length() == orig.length();
assert str.toString().equals(orig);
AsciiString str2=new AsciiString(str);
assert str2.equals(str);
assert str2.length() == str.length();
byte[] tmp={'h', 'e', 'l', 'l', 'o'};
str2=new AsciiString(tmp);
assert str2.equals(str);
assert str2.length() == str.length();
assert str.equals(tmp);
assert str.equals(str.chars());
tmp=null;
assert !str.equals(tmp);
}
public void testCompareTo() {
AsciiString str=new AsciiString("hello"), str2=new AsciiString("hello world");
int comp=str.compareTo(str2);
assert comp < 0;
}
public void testHashcode() {
AsciiString str=new AsciiString("hello"), str2=new AsciiString("hello");
assert str.hashCode() == str2.hashCode();
str2=new AsciiString("hello world");
assert str.hashCode() != str2.hashCode();
Map<AsciiString,Integer> map=new HashMap<>(5);
map.put(new AsciiString("a"), 1);
assert map.get(new AsciiString("a")) == 1;
map.put(new AsciiString("b"), 2);
assert map.get(new AsciiString("b")) == 2;
map.put(new AsciiString("a"), 2);
assert map.get(new AsciiString("a")) == 2;
}
}