@Test
public void testCipherSessionReadKeyCacheSizeOfThree() throws Exception {

	SaltedSecretKey masterKey = createDummyMasterKey();		
	CipherSession cipherSession = new CipherSession(masterKey, 2, 999);
	
	CipherSpec cipherSpecAes128 = CipherSpecs.getCipherSpec(CipherSpecs.AES_128_GCM);
	
	byte[] readKeySalt1 = CipherUtil.createRandomArray(cipherSpecAes128.getKeySize());
	byte[] readKeySalt2 = CipherUtil.createRandomArray(cipherSpecAes128.getKeySize());
	byte[] readKeySalt3 = CipherUtil.createRandomArray(cipherSpecAes128.getKeySize());				
	
	SaltedSecretKey readSecretKey1Aes128 = cipherSession.getReadSecretKey(cipherSpecAes128, readKeySalt1);
	SaltedSecretKey readSecretKey2Aes128 = cipherSession.getReadSecretKey(cipherSpecAes128, readKeySalt2);
	SaltedSecretKey readSecretKey3Aes128 = cipherSession.getReadSecretKey(cipherSpecAes128, readKeySalt3);
	
	assertNotSame(readSecretKey1Aes128, readSecretKey2Aes128);
	assertNotSame(readSecretKey1Aes128, readSecretKey3Aes128);
	assertNotSame(readSecretKey2Aes128, readSecretKey3Aes128);
	
	// TODO [medium] This does NOT TEST the actual read cache. How to test this. The cache is completely hidden/private?!
}