import static org.junit.Assert.assertNull;
import com.google.common.collect.Lists;
-
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.List;
-
import org.apache.commons.lang3.tuple.ImmutablePair;
import org.apache.commons.lang3.tuple.MutablePair;
import org.apache.commons.lang3.tuple.Pair;
import org.mockito.Mockito;
import org.mockito.runners.MockitoJUnitRunner;
import org.opendaylight.controller.md.sal.binding.api.NotificationService;
-import org.opendaylight.controller.sal.binding.api.BindingAwareBroker;
-import org.opendaylight.controller.sal.binding.api.BindingAwareBroker.ProviderContext;
import org.opendaylight.lispflowmapping.interfaces.lisp.IMapResolverAsync;
import org.opendaylight.lispflowmapping.interfaces.lisp.IMapServerAsync;
import org.opendaylight.lispflowmapping.interfaces.mappingservice.IMappingService;
import org.opendaylight.lispflowmapping.lisp.type.LispMessage;
import org.opendaylight.lispflowmapping.lisp.util.LispAddressUtil;
-import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.PortNumber;
+import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.PortNumber;
import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.inet.binary.types.rev160303.IpAddressBinary;
import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.inet.binary.types.rev160303.Ipv4AddressBinary;
import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.AddMapping;
import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.GotMapNotify;
import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.GotMapReply;
import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.MapNotify;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.MapRegister;
import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.MapReply;
import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.MappingKeepAlive;
import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.RequestMapping;
import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.XtrRequestMapping;
import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.container.Eid;
import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.eid.list.EidItemBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.MapRegister;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.map.register.cache.metadata.container
- .MapRegisterCacheMetadata;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.map.register.cache.metadata.container
- .MapRegisterCacheMetadataBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.map.register.cache.metadata.container
- .map.register.cache.metadata.EidLispAddress;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.map.register.cache.metadata.container
- .map.register.cache.metadata.EidLispAddressBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.map.register.cache.metadata.container.MapRegisterCacheMetadata;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.map.register.cache.metadata.container.MapRegisterCacheMetadataBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.map.register.cache.metadata.container.map.register.cache.metadata.EidLispAddress;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.map.register.cache.metadata.container.map.register.cache.metadata.EidLispAddressBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapnotifymessage.MapNotifyBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping.record.container.
- MappingRecordBuilder;
-import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping.record.list.
- MappingRecordItemBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping.record.container.MappingRecordBuilder;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapping.record.list.MappingRecordItemBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.mapreplymessage.MapReplyBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.maprequest.SourceEidBuilder;
import org.opendaylight.yang.gen.v1.urn.opendaylight.lfm.lisp.proto.rev151105.maprequestmessage.MapRequest;
@RunWith(MockitoJUnitRunner.class)
public class LispMappingServiceTest {
@Mock private static MapRegister mapRegisterMock;
- @Mock(name = "lispSB") private static OdlLispSbService lispSBMock;
@Mock(name = "mapServer") private static IMapServerAsync mapServerMock;
- @Mock(name = "mapService") private static IMappingService iMappingServiceMock;
@Mock(name = "mapResolver") private static IMapResolverAsync mapResolverMock;
@Mock(name = "tlsMapReply") private static ThreadLocal<MapReply> tlsMapReplyMock;
- @Mock(name = "notificationService") private static NotificationService notificationServiceMock;
@Mock(name = "tlsMapNotify") private static ThreadLocal<Pair<MapNotify, List<TransportAddress>>> tlsMapNotifyMock;
@Mock(name = "tlsMapRequest") private static ThreadLocal<Pair<MapRequest, TransportAddress>> tlsMapRequestMock;
- @InjectMocks private static LispMappingService lispMappingService;
+
+ private final NotificationService notificationService = Mockito.mock(NotificationService.class);
+ private final IMappingService mappingService = Mockito.mock(IMappingService.class);
+ private final OdlLispSbService odlLispSbService = Mockito.mock(OdlLispSbService.class);
+
+ @InjectMocks
+ private LispMappingService lispMappingService = new LispMappingService(
+ notificationService,
+ mappingService,
+ odlLispSbService);
private static final byte[] IPV4_BYTES_1 = new byte[] {1, 2, 3, 0};
private static final byte[] IPV4_BYTES_2 = new byte[] {1, 2, 4, 0};
Mockito.when(tlsMapRequestMock.get()).thenReturn(pair);
assertNull(lispMappingService.handleMapRequest(mapRequest));
- Mockito.verify(lispSBMock).sendMapRequest(smrib.build());
+ Mockito.verify(odlLispSbService).sendMapRequest(smrib.build());
}
/**
Mockito.when(tlsMapNotifyMock.get()).thenReturn(getDefaultMapNotifyPair());
lispMappingService.onAddMapping(addMapping);
- Mockito.verify(lispSBMock, Mockito.times(2)).sendMapNotify(Mockito.argThat(new TransportAddressMatch()));
+ Mockito.verify(odlLispSbService, Mockito.times(2)).sendMapNotify(Mockito.argThat(new TransportAddressMatch()));
}
/**
.setTransportAddress(TRANSPORT_ADDRESS);
lispMappingService.onAddMapping(addMapping);
- Mockito.verify(lispSBMock).sendMapNotify(smnib.build());
+ Mockito.verify(odlLispSbService).sendMapNotify(smnib.build());
}
/**
.setTransportAddress(TRANSPORT_ADDRESS_1);
lispMappingService.onRequestMapping(requestMapping);
- Mockito.verify(lispSBMock).sendMapReply(smrib.build());
+ Mockito.verify(odlLispSbService).sendMapReply(smrib.build());
}
/**
Mockito.when(tlsMapReplyMock.get()).thenReturn(null);
lispMappingService.onRequestMapping(requestMapping);
- Mockito.verifyZeroInteractions(lispSBMock);
+ Mockito.verifyZeroInteractions(odlLispSbService);
}
/**
Mockito.when(mappingKeepAlive.getMapRegisterCacheMetadata()).thenReturn(getDefaultMapRegisterCacheMetadata());
lispMappingService.onMappingKeepAlive(mappingKeepAlive);
- Mockito.verify(iMappingServiceMock).updateMappingRegistration(MappingOrigin.Southbound, IPV4_EID_1, TIMESTAMP);
- Mockito.verify(iMappingServiceMock).updateMappingRegistration(MappingOrigin.Southbound, IPV4_EID_2, TIMESTAMP);
+ Mockito.verify(mappingService).updateMappingRegistration(MappingOrigin.Southbound, IPV4_EID_1, TIMESTAMP);
+ Mockito.verify(mappingService).updateMappingRegistration(MappingOrigin.Southbound, IPV4_EID_2, TIMESTAMP);
}
/**
.setTransportAddress(TRANSPORT_ADDRESS);
lispMappingService.handleSMR(mapRequest, subscriber);
- Mockito.verify(lispSBMock).sendMapRequest(smrib.build());
+ Mockito.verify(odlLispSbService).sendMapRequest(smrib.build());
}
/**
*/
@Test
public void otherTest() throws Exception {
- assertEquals(notificationServiceMock, lispMappingService.getNotificationService());
+ assertEquals(notificationService, lispMappingService.getNotificationService());
assertEquals(true, lispMappingService.shouldUseSmr());
- BindingAwareBroker brokerMock = Mockito.mock(BindingAwareBroker.class);
- lispMappingService.setBindingAwareBroker(brokerMock);
- assertEquals(brokerMock, getField("broker"));
-
- NotificationService otherNotificationServiceMock = Mockito.mock(NotificationService.class);
- lispMappingService.setNotificationService(otherNotificationServiceMock);
- assertEquals(otherNotificationServiceMock, getField("notificationService"));
-
- ProviderContext sessionMock = Mockito.mock(ProviderContext.class);
- lispMappingService.onSessionInitiated(sessionMock);
- assertEquals(sessionMock, getField("session"));
-
lispMappingService.setShouldAuthenticate(true);
Mockito.verify(mapResolverMock).setShouldAuthenticate(true);
- IMappingService mappingServiceMock = Mockito.mock(IMappingService.class);
- lispMappingService.setMappingService(mappingServiceMock);
- assertEquals(mappingServiceMock, getField("mapService"));
-
lispMappingService.onGotMapReply(Mockito.mock(GotMapReply.class));
lispMappingService.onGotMapNotify(Mockito.mock(GotMapNotify.class));
lispMappingService.onXtrRequestMapping(Mockito.mock(XtrRequestMapping.class));
}
@SuppressWarnings("unchecked")
- private static <T> T getField(String fieldName) throws NoSuchFieldException, IllegalAccessException {
+ private <T> T getField(String fieldName) throws NoSuchFieldException, IllegalAccessException {
final Field field = LispMappingService.class.getDeclaredField(fieldName);
field.setAccessible(true);