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
8 package org.opendaylight.groupbasedpolicy.sxp.mapper.impl.dao;
10 import com.google.common.base.Optional;
11 import com.google.common.collect.Iterables;
12 import org.junit.Assert;
13 import org.junit.Before;
14 import org.junit.Test;
15 import org.opendaylight.yangtools.yang.binding.DataContainer;
16 import org.opendaylight.yangtools.yang.binding.DataObject;
19 * Test for {@link SimpleCachedDaoImpl}.
21 public class SimpleCachedDaoImplTest {
23 private static final String KEY_1 = "dummyKey1";
24 private static final String KEY_2 = "dummyKey2";
25 private static final DummyDataObject DUMMY_DATA_1 = new DummyDataObject("dummyData1");
26 private static final DummyDataObject DUMMY_DATA_2 = new DummyDataObject("dummyData2");
28 private SimpleCachedDaoImpl<String, DummyDataObject> dao;
31 public void setUp() throws Exception {
32 dao = new SimpleCachedDaoImpl<>();
33 Assert.assertFalse(dao.find(KEY_1).isPresent());
37 public void testUpdate() throws Exception {
38 dao.update(KEY_1, DUMMY_DATA_1);
39 final Optional<DummyDataObject> dataOpt = dao.find(KEY_1);
40 Assert.assertTrue(dataOpt.isPresent());
41 Assert.assertEquals(DUMMY_DATA_1.getDummyData(), dataOpt.get().getDummyData());
45 public void testInvalidateCache() throws Exception {
46 dao.update(KEY_1, DUMMY_DATA_1);
47 Assert.assertTrue(dao.find(KEY_1).isPresent());
48 dao.invalidateCache();
49 Assert.assertFalse(dao.find(KEY_1).isPresent());
53 public void testIsEmpty() throws Exception {
54 Assert.assertTrue(dao.isEmpty());
55 dao.update(KEY_1, DUMMY_DATA_1);
56 Assert.assertFalse(dao.isEmpty());
60 public void testValues() throws Exception {
61 Assert.assertEquals(0, Iterables.size(dao.values()));
62 dao.update(KEY_1, DUMMY_DATA_1);
63 dao.update(KEY_1, DUMMY_DATA_2);
64 Assert.assertEquals(1, Iterables.size(dao.values()));
66 dao.update(KEY_2, DUMMY_DATA_2);
67 Assert.assertEquals(2, Iterables.size(dao.values()));
70 private static final class DummyDataObject implements DataObject {
71 private final String dummyData;
73 public DummyDataObject(final String dummyData) {
74 this.dummyData = dummyData;
77 public String getDummyData() {
82 public Class<? extends DataContainer> getImplementedInterface() {