true, // initial
true, // pre-authent
true // hw-authent
};
KerberosTicket krbTicket = new KerberosTicket(ticket, pClient, pServer,
sessionKey, KEY_TYPE, myFlags, // <=== we test this
authTime, startTime, endTime, renewTill, addesses);
// test: returned value is copied
assertNotSame(krbTicket.getFlags(), krbTicket.getFlags());
// test: flags values
assertTrue(krbTicket.isForwardable());
assertTrue(krbTicket.isForwarded());
assertTrue(krbTicket.isInitial());
assertTrue(krbTicket.isPostdated());
assertTrue(krbTicket.isProxiable());
assertTrue(krbTicket.isProxy());
assertTrue(krbTicket.isRenewable());
//
// test: number of flags less the in Kerberos protocol (<32)
//
boolean[] ktFlags = krbTicket.getFlags();
assertEquals("flags length", FLAGS_NUM, ktFlags.length);
int index = 0;
// must match to initial array
for (; index < flags.length; index++) {
assertEquals("Index: " + index, myFlags[index], ktFlags[index]);
}
// the rest is expected to be false
for (; index < FLAGS_NUM; index++) {
assertEquals("Index: " + index, false, ktFlags[index]);
}
//
// test: flags array is greater then 32
//
myFlags = new boolean[50];
krbTicket = new KerberosTicket(ticket, pClient, pServer, sessionKey,
KEY_TYPE, myFlags, // <=== we test this
authTime, startTime, endTime, renewTill, addesses);
ktFlags = krbTicket.getFlags();
assertEquals(myFlags.length, ktFlags.length);
for (index = 0; index < ktFlags.length; index++) {
assertEquals(false, ktFlags[index]);
}
// initial array is copied
assertFalse(krbTicket.isForwardable());
myFlags[1] = true;
assertFalse(krbTicket.isForwardable());
//
// test: Null value
//
krbTicket = new KerberosTicket(ticket, pClient, pServer, sessionKey,
KEY_TYPE, null, // <=== we test this
authTime, startTime, endTime, renewTill, addesses);
assertTrue(Arrays.equals(new boolean[FLAGS_NUM], krbTicket.getFlags()));
}