/*
* Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
package org.opendaylight.yangtools.objcache.guava;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotSame;
import static org.junit.Assert.assertSame;
import org.junit.Before;
import org.junit.Test;
import org.opendaylight.yangtools.objcache.ObjectCache;
import org.opendaylight.yangtools.objcache.ObjectCacheFactory;
public class GuavaObjectCacheTest {
private ObjectCache cache;
@Before
public void setUp() {
cache = ObjectCacheFactory.getObjectCache(String.class);
}
@Test
public void testCorrectWiring() {
assertEquals(GuavaObjectCache.class, cache.getClass());
}
@Test
public void testInitialReference() {
final String s1 = "abcd";
final String s2 = cache.getReference(s1);
assertSame(s1, s2);
}
@Test
// This test is based on using different references
@SuppressWarnings("RedundantStringConstructorCall")
public void testMultipleReferences() {
final String s1 = "abcd";
final String s2 = new String(s1);
// Preliminary check
assertEquals(s1, s2);
assertNotSame(s1, s2);
assertSame(s1, cache.getReference(s1));
assertSame(s1, cache.getReference(s2));
assertNotSame(s2, cache.getReference(s2));
}
}