Add tokens cache to default set of forwarded eviction events

Change-Id: I4f4cbd5e769386dfe7fc47e1e127226686a19dc6
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/cache/CachePatternMatcher.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/cache/CachePatternMatcher.java
index baf512f..ac6ea4c 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/cache/CachePatternMatcher.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/cache/CachePatternMatcher.java
@@ -26,7 +26,7 @@
 @Singleton
 class CachePatternMatcher {
   private static final List<String> DEFAULT_PATTERNS =
-      ImmutableList.of("^groups.*", "ldap_usernames", "projects", "sshkeys");
+      ImmutableList.of("^groups.*", "ldap_usernames", "projects", "sshkeys", "tokens");
 
   private final Pattern pattern;
 
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/cache/Constants.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/cache/Constants.java
index b456998..d4fab98 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/cache/Constants.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/cache/Constants.java
@@ -22,6 +22,7 @@
   public static final String GROUPS_BYINCLUDE = "groups_byinclude";
   public static final String GROUPS_MEMBERS = "groups_members";
   public static final String PROJECTS = "projects";
+  public static final String TOKENS = "tokens";
 
   private Constants() {}
 }
diff --git a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/CacheKeyJsonParser.java b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/CacheKeyJsonParser.java
index ba28650..b8f5e9c 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/CacheKeyJsonParser.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/CacheKeyJsonParser.java
@@ -44,6 +44,7 @@
     // Need to add a case for 'adv_bases'
     switch (cacheName) {
       case Constants.ACCOUNTS:
+      case Constants.TOKENS:
         return id.get() == null ? null : Account.id(id.get().getAsInt());
       case Constants.GROUPS:
         return id.get() == null ? null : AccountGroup.id(id.get().getAsInt());
diff --git a/src/test/java/com/ericsson/gerrit/plugins/highavailability/cache/CachePatternMatcherTest.java b/src/test/java/com/ericsson/gerrit/plugins/highavailability/cache/CachePatternMatcherTest.java
index caf50b9..088b42e 100644
--- a/src/test/java/com/ericsson/gerrit/plugins/highavailability/cache/CachePatternMatcherTest.java
+++ b/src/test/java/com/ericsson/gerrit/plugins/highavailability/cache/CachePatternMatcherTest.java
@@ -47,6 +47,7 @@
             "ldap_usernames",
             "projects",
             "sshkeys",
+            "tokens",
             "my_cache_a",
             "my_cache_b",
             "other")) {
diff --git a/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/CacheRestApiServletTest.java b/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/CacheRestApiServletTest.java
index e4ffd59..58c0aef 100644
--- a/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/CacheRestApiServletTest.java
+++ b/src/test/java/com/ericsson/gerrit/plugins/highavailability/forwarder/rest/CacheRestApiServletTest.java
@@ -87,6 +87,12 @@
   }
 
   @Test
+  public void evictTokensCache() throws Exception {
+    configureMocksFor(Constants.TOKENS);
+    verifyResponseIsOK();
+  }
+
+  @Test
   public void evictDefault() throws Exception {
     configureMocksFor(Constants.PROJECTS);
     verifyResponseIsOK();
@@ -134,6 +140,8 @@
     } else if (Constants.GROUPS_BYINCLUDE.equals(cacheName)
         || Constants.GROUPS_MEMBERS.equals(cacheName)) {
       when(readerMock.readLine()).thenReturn("{\"uuid\":\"abcd1234\"}");
+    } else if (Constants.TOKENS.equals(cacheName)) {
+      when(readerMock.readLine()).thenReturn("{\"id\":\"1234\"}");
     } else {
       when(readerMock.readLine()).thenReturn("{}");
     }