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.lispflowmapping.mapcache;
10 import static org.junit.Assert.assertEquals;
11 import static org.mockito.ArgumentMatchers.any;
12 import static org.mockito.ArgumentMatchers.anyString;
13 import static org.mockito.Mockito.atMost;
14 import static org.mockito.Mockito.mock;
15 import static org.mockito.Mockito.verify;
16 import static org.mockito.Mockito.when;
18 import java.util.Date;
19 import org.junit.Before;
20 import org.junit.Test;
21 import org.opendaylight.lispflowmapping.interfaces.dao.ILispDAO;
22 import org.opendaylight.lispflowmapping.interfaces.dao.MappingEntry;
23 import org.opendaylight.lispflowmapping.interfaces.dao.SubKeys;
24 import org.opendaylight.lispflowmapping.lisp.util.MaskUtil;
25 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.Ipv4Address;
26 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.lisp.address.types.rev151105.lisp.address.address.Ipv4Builder;
27 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.container.Eid;
28 import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.container.EidBuilder;
30 public class FlatMapCacheTest {
32 private static ILispDAO daoMock;
33 private static FlatMapCache flatMapCache;
34 private static final Eid EID_MOCK = mock(Eid.class);
35 private static final Object DUMMY_OBJECT = "dummy_object";
37 private static final Eid EID_TEST = new EidBuilder().setAddress(new Ipv4Builder()
38 .setIpv4(new Ipv4Address("127.0.0.1")).build()).build();
39 private static final Eid NORMALIZED_EID = MaskUtil.normalize(EID_TEST);
43 daoMock = mock(ILispDAO.class);
44 flatMapCache = new FlatMapCache(daoMock);
48 * Tests {@link FlatMapCache#addMapping}.
51 public void addMappingTest() {
52 flatMapCache.addMapping(EID_TEST, DUMMY_OBJECT);
53 verify(daoMock, atMost(2)).put(NORMALIZED_EID, new MappingEntry<>(anyString(), any(Date.class)));
54 verify(daoMock).put(NORMALIZED_EID, new MappingEntry<>(SubKeys.RECORD, DUMMY_OBJECT));
58 * Tests {@link FlatMapCache#getMapping}.
61 public void getMappingTest() {
62 when(daoMock.getSpecific(NORMALIZED_EID, SubKeys.RECORD)).thenReturn(DUMMY_OBJECT);
63 assertEquals(DUMMY_OBJECT, flatMapCache.getMapping(EID_MOCK, EID_TEST));
67 * Tests {@link FlatMapCache#removeMapping}.
70 public void removeMappingTest() {
71 flatMapCache.removeMapping(EID_TEST);
72 verify(daoMock).removeSpecific(NORMALIZED_EID, SubKeys.RECORD);
76 * Tests {@link FlatMapCache#addData}.
79 public void addDataTest() {
80 flatMapCache.addData(EID_TEST, SubKeys.RECORD, DUMMY_OBJECT);
81 verify(daoMock).put(NORMALIZED_EID, new MappingEntry<>(SubKeys.RECORD, DUMMY_OBJECT));
85 * Tests {@link FlatMapCache#getData}.
88 public void getDataTest() {
89 when(daoMock.getSpecific(NORMALIZED_EID, SubKeys.RECORD)).thenReturn(DUMMY_OBJECT);
90 assertEquals(DUMMY_OBJECT, flatMapCache.getData(EID_TEST, SubKeys.RECORD));
94 * Tests {@link FlatMapCache#removeData}.
97 public void removeDataTest() {
98 flatMapCache.removeData(EID_TEST, SubKeys.RECORD);
99 verify(daoMock).removeSpecific(NORMALIZED_EID, SubKeys.RECORD);