package io.ebean.cache; import org.junit.Test; import static org.assertj.core.api.Assertions.assertThat; public class CacheKeyTest { @Test public void equals_when_null_tenantId() { TenantAwareKey.CacheKey key0 = key("12", null); TenantAwareKey.CacheKey key1 = key("12", null); assertMatchEquals(key0, key1); } private void assertMatchEquals(TenantAwareKey.CacheKey key0, TenantAwareKey.CacheKey key1) { assertThat(key0.hashCode()).isEqualTo(key1.hashCode()); assertThat(key0.equals(key1)).isTrue(); assertThat(key0.toString()).isEqualTo(key1.toString()); } @Test public void equals_when_same_tenantId() { TenantAwareKey.CacheKey key0 = key(42L, "1"); TenantAwareKey.CacheKey key1 = key(42L, "1"); assertMatchEquals(key0, key1); } @Test public void not_equal_when_diff_both() { TenantAwareKey.CacheKey key0 = key(42L, "1"); TenantAwareKey.CacheKey key1 = key(43L, "2"); assertThat(key0.equals(key1)).isFalse(); } @Test public void not_equal_when_diff_key() { TenantAwareKey.CacheKey key0 = key(42L, "1"); TenantAwareKey.CacheKey key1 = key(43L, "1"); assertThat(key0.equals(key1)).isFalse(); } @Test public void not_equal_when_diff_key_andNoTenantId() { TenantAwareKey.CacheKey key0 = key(42L, null); TenantAwareKey.CacheKey key1 = key(43L, null); assertThat(key0.equals(key1)).isFalse(); } @Test public void not_equal_when_diff_tenantId() { TenantAwareKey.CacheKey key0 = key(42L, "1"); TenantAwareKey.CacheKey key1 = key(42L, "2"); assertThat(key0.equals(key1)).isFalse(); } private TenantAwareKey.CacheKey key(Object key, Object tenantId) { return new TenantAwareKey.CacheKey(key, tenantId); } }