### Question:
AuthenticationKeyChain extends ExternalKeyChain { public AuthenticationKeyChain(DeterministicSeed seed, ImmutableList<ChildNumber> path) { super(seed, null, path); setLookaheadSize(5); } AuthenticationKeyChain(DeterministicSeed seed, ImmutableList<ChildNumber> path);  AuthenticationKeyChain(DeterministicSeed seed, KeyCrypter keyCrypter, ImmutableList<ChildNumber> path);  AuthenticationKeyChain(DeterministicKey key);  AuthenticationKeyChain(DeterministicSeed seed, ImmutableList<ChildNumber> path, KeyChainType type);  AuthenticationKeyChain(DeterministicSeed seed, KeyCrypter keyCrypter, ImmutableList<ChildNumber> path, KeyChainType type);  AuthenticationKeyChain(DeterministicKey key, KeyChainType type); protected  AuthenticationKeyChain(KeyCrypter crypter, KeyParameter aesKey, AuthenticationKeyChain chain); static Builder<?> authenticationBuilder(); @Override DeterministicKey getKey(KeyPurpose purpose); @Override List<DeterministicKey> getKeys(KeyPurpose purpose, int numberOfKeys); DeterministicKey getKey(int index); int getCurrentIndex(); DeterministicKey freshAuthenticationKey(); DeterministicKey currentAuthenticationKey(); DeterministicKey getKeyByPubKeyHash(byte [] hash160); @Override String toString(boolean includeLookahead, boolean includePrivateKeys, @Nullable KeyParameter aesKey, NetworkParameters params); @Override AuthenticationKeyChain toEncrypted(KeyCrypter keyCrypter, KeyParameter aesKey);  }### Answer:
@Test public void authenticationKeyChainTest() { AuthenticationKeyChain owner = new AuthenticationKeyChain(seed, DeterministicKeyChain.PROVIDER_OWNER_PATH_TESTNET); DeterministicKey myOwnerKey = owner.getKey(KeyChain.KeyPurpose.AUTHENTICATION); assertEquals(myOwnerKey, ownerKey); AuthenticationKeyChain voting = new AuthenticationKeyChain(seed, DeterministicKeyChain.PROVIDER_VOTING_PATH_TESTNET); DeterministicKey myVotingKey = voting.getKey(KeyChain.KeyPurpose.AUTHENTICATION); assertEquals(myVotingKey, votingKey); AuthenticationKeyChain blockchainUser = new AuthenticationKeyChain(seed, DeterministicKeyChain.BLOCKCHAIN_USER_PATH_TESTNET); DeterministicKey myBlockchainUserKey = blockchainUser.getKey(KeyChain.KeyPurpose.AUTHENTICATION); assertEquals(myBlockchainUserKey, buKey); DeterministicKey bukeyIndexZero = blockchainUser.getKey(0); assertEquals(bukeyIndexZero, buKey); }