### Question:
CTSPersistentStoreImpl implements CTSPersistentStore { @Override public Token read(String tokenId) throws CoreTokenException { Token token = adapter.read(tokenId); if (token == null) { debug("Token {0} did not exist", tokenId); return null; } debug("Token {0} read", tokenId); return token; } @Inject  CTSPersistentStoreImpl(CoreTokenAdapter adapter, @Named(CoreTokenConstants.CTS_DEBUG) Debug debug); @Override void create(Token token); @Override void createAsync(Token token); @Override Token read(String tokenId); @Override void update(Token token); @Override void updateAsync(Token token); @Override void delete(Token token); @Override void deleteAsync(Token token); @Override void delete(String tokenId); @Override void deleteAsync(String tokenId); @Override int delete(Map<CoreTokenField, Object> query); @Override Collection<Token> query(TokenFilter tokenFilter); @Override Collection<PartialToken> attributeQuery(TokenFilter tokenFilter); @Override void deleteOnQueryAsync(TokenFilter tokenFilter);  }### Answer:
@Test public void shouldUseAdapterForRead() throws CoreTokenException { String badger = "badger"; impl.read(badger); verify(mockAdapter).read(eq(badger)); }
@Test public void shouldReturnNullForTokenNotFound() throws CoreTokenException { given(mockAdapter.read(anyString())).willReturn(null); assertThat(impl.read("")).isNull(); }