|
@@ -24,6 +24,8 @@ import org.junit.Assert;
|
|
|
import org.junit.Before;
|
|
|
import org.junit.Test;
|
|
|
|
|
|
+import static org.hamcrest.CoreMatchers.equalTo;
|
|
|
+
|
|
|
public class EphemeralTypeTest {
|
|
|
@Before
|
|
|
public void setUp() {
|
|
@@ -70,15 +72,28 @@ public class EphemeralTypeTest {
|
|
|
|
|
|
@Test
|
|
|
public void testServerIds() {
|
|
|
- for ( int i = 0; i < 255; ++i ) {
|
|
|
- Assert.assertEquals(EphemeralType.NORMAL, EphemeralType.get(SessionTrackerImpl.initializeNextSession(i)));
|
|
|
+ for ( int i = 0; i <= EphemeralType.MAX_EXTENDED_SERVER_ID; ++i ) {
|
|
|
+ EphemeralType.validateServerId(i);
|
|
|
}
|
|
|
try {
|
|
|
- Assert.assertEquals(EphemeralType.TTL, EphemeralType.get(SessionTrackerImpl.initializeNextSession(255)));
|
|
|
- Assert.fail("Should have thrown IllegalArgumentException");
|
|
|
- } catch (IllegalArgumentException e) {
|
|
|
+ EphemeralType.validateServerId(EphemeralType.MAX_EXTENDED_SERVER_ID + 1);
|
|
|
+ Assert.fail("Should have thrown RuntimeException");
|
|
|
+ } catch (RuntimeException e) {
|
|
|
// expected
|
|
|
}
|
|
|
- Assert.assertEquals(EphemeralType.NORMAL, EphemeralType.get(SessionTrackerImpl.initializeNextSession(EphemeralType.MAX_EXTENDED_SERVER_ID)));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testEphemeralOwner_extendedFeature_TTL() {
|
|
|
+ // 0xff = Extended feature is ON
|
|
|
+ // 0x0000 = Extended type id TTL (0)
|
|
|
+ Assert.assertThat(EphemeralType.get(0xff00000000000000L), equalTo(EphemeralType.TTL));
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test(expected = IllegalArgumentException.class)
|
|
|
+ public void testEphemeralOwner_extendedFeature_extendedTypeUnsupported() {
|
|
|
+ // 0xff = Extended feature is ON
|
|
|
+ // 0x0001 = Unsupported extended type id (1)
|
|
|
+ EphemeralType.get(0xff00010000000000L);
|
|
|
}
|
|
|
}
|