2 * Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.groupbasedpolicy.sxp.ep.provider.impl.dao;
11 import com.google.common.base.Optional;
12 import com.google.common.collect.Iterables;
13 import org.junit.Assert;
14 import org.junit.Before;
15 import org.junit.Test;
16 import org.opendaylight.yangtools.yang.binding.DataContainer;
17 import org.opendaylight.yangtools.yang.binding.DataObject;
20 * Test for {@link SimpleCachedDaoImpl}.
22 public class SimpleCachedDaoImplTest {
24 private static final String KEY_1 = "dummyKey1";
25 private static final String KEY_2 = "dummyKey2";
26 private static final DummyDataObject DUMMY_DATA_1 = new DummyDataObject("dummyData1");
27 private static final DummyDataObject DUMMY_DATA_2 = new DummyDataObject("dummyData2");
29 private SimpleCachedDaoImpl<String, DummyDataObject> dao;
32 public void setUp() throws Exception {
33 dao = new SimpleCachedDaoImpl<>();
34 Assert.assertFalse(dao.find(KEY_1).isPresent());
38 public void testUpdate() throws Exception {
39 dao.update(KEY_1, DUMMY_DATA_1);
40 final Optional<DummyDataObject> dataOpt = dao.find(KEY_1);
41 Assert.assertTrue(dataOpt.isPresent());
42 Assert.assertEquals(DUMMY_DATA_1.getDummyData(), dataOpt.get().getDummyData());
46 public void testInvalidateCache() throws Exception {
47 dao.update(KEY_1, DUMMY_DATA_1);
48 Assert.assertTrue(dao.find(KEY_1).isPresent());
49 dao.invalidateCache();
50 Assert.assertFalse(dao.find(KEY_1).isPresent());
54 public void testIsEmpty() throws Exception {
55 Assert.assertTrue(dao.isEmpty());
56 dao.update(KEY_1, DUMMY_DATA_1);
57 Assert.assertFalse(dao.isEmpty());
61 public void testValues() throws Exception {
62 Assert.assertEquals(0, Iterables.size(dao.values()));
63 dao.update(KEY_1, DUMMY_DATA_1);
64 dao.update(KEY_1, DUMMY_DATA_2);
65 Assert.assertEquals(1, Iterables.size(dao.values()));
67 dao.update(KEY_2, DUMMY_DATA_2);
68 Assert.assertEquals(2, Iterables.size(dao.values()));
71 private static final class DummyDataObject implements DataObject {
72 private final String dummyData;
74 public DummyDataObject(final String dummyData) {
75 this.dummyData = dummyData;
78 public String getDummyData() {
83 public Class<? extends DataContainer> getImplementedInterface() {