/**
* Copyright 2010-2016 Ralph Schaer <ralphschaer@gmail.com>
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package ch.ralscha.extdirectspring.util;
import static org.assertj.core.api.Assertions.assertThat;
import org.junit.Test;
import nl.jqno.equalsverifier.EqualsVerifier;
public class ApiCacheTest {
@Test
public void verifyEquals() {
EqualsVerifier.forClass(ApiCacheKey.class).verify();
}
@Test
public void testPutAndGet() {
ApiCache cache = new ApiCache();
ApiCacheKey key1 = new ApiCacheKey(null, null, null, null, null, null, false);
ApiCacheKey key2 = new ApiCacheKey(null, null, null, null, null, null, true);
ApiCacheKey key3 = new ApiCacheKey(null, null, null, null, null, "/router", true);
ApiCacheKey key5 = new ApiCacheKey(null, null, null, null, "group", "/router",
true);
ApiCacheKey key6 = new ApiCacheKey(null, null, null, "polling", "group",
"/router", true);
ApiCacheKey key7 = new ApiCacheKey(null, null, "remoting", "polling", "group",
"/router", true);
ApiCacheKey key8 = new ApiCacheKey(null, "action", "remoting", "polling", "group",
"/router", true);
ApiCacheKey key9 = new ApiCacheKey("api", "action", "remoting", "polling",
"group", "/router", true);
cache.put(key1, "one");
cache.put(key3, "three");
cache.put(key5, "five");
cache.put(key6, "six");
cache.put(key7, "seven");
cache.put(key8, "eight");
cache.put(key9, "nine");
assertThat(cache.get(null)).isNull();
assertThat(cache.get(key2)).isNull();
assertThat(cache.get(key1)).isNotNull();
assertThat(cache.get(key1)).isEqualTo("one");
assertThat(cache.get(key3)).isEqualTo("three");
assertThat(cache.get(key5)).isEqualTo("five");
assertThat(cache.get(key6)).isEqualTo("six");
assertThat(cache.get(key7)).isEqualTo("seven");
assertThat(cache.get(key8)).isEqualTo("eight");
assertThat(cache.get(key9)).isEqualTo("nine");
assertThat(key1.equals("test")).isFalse();
assertThat(key1.equals(null)).isFalse();
assertThat(key1.equals(key1)).isTrue();
assertThat(key2.equals(key2)).isTrue();
assertThat(key3.equals(key3)).isTrue();
assertThat(key5.equals(key5)).isTrue();
assertThat(key6.equals(key6)).isTrue();
assertThat(key7.equals(key7)).isTrue();
assertThat(key8.equals(key8)).isTrue();
assertThat(key9.equals(key9)).isTrue();
assertThat(key2.equals(key1)).isFalse();
assertThat(key3.equals(key1)).isFalse();
assertThat(key5.equals(key1)).isFalse();
assertThat(key6.equals(key1)).isFalse();
assertThat(key7.equals(key1)).isFalse();
assertThat(key8.equals(key1)).isFalse();
assertThat(key9.equals(key1)).isFalse();
assertThat(key1.equals(key2)).isFalse();
assertThat(key3.equals(key2)).isFalse();
assertThat(key5.equals(key2)).isFalse();
assertThat(key6.equals(key2)).isFalse();
assertThat(key7.equals(key2)).isFalse();
assertThat(key8.equals(key2)).isFalse();
assertThat(key9.equals(key2)).isFalse();
assertThat(key1.equals(key3)).isFalse();
assertThat(key2.equals(key3)).isFalse();
assertThat(key5.equals(key3)).isFalse();
assertThat(key6.equals(key3)).isFalse();
assertThat(key7.equals(key3)).isFalse();
assertThat(key8.equals(key3)).isFalse();
assertThat(key9.equals(key3)).isFalse();
}
@Test
public void testEqualKeys() {
ApiCache cache = new ApiCache();
ApiCacheKey keyOne = new ApiCacheKey("api", "action", "remoting", "polling",
"group", "/router", true);
ApiCacheKey keyTwo = new ApiCacheKey("api", "action", "remoting", "polling",
"group", "/router", true);
cache.put(keyOne, "1");
assertThat(cache.get(keyOne)).isEqualTo("1");
assertThat(cache.get(keyTwo)).isEqualTo("1");
cache.put(keyTwo, "2");
assertThat(cache.get(keyOne)).isEqualTo("2");
assertThat(cache.get(keyTwo)).isEqualTo("2");
}
}