+
+ private Map<String, MappingServiceValue> prepareMapping(EidToLocatorRecord... records) {
+ if (records.length > 0) {
+ for (EidToLocatorRecord eidToLocatorRecord : records) {
+ MappingServiceValue value = new MappingServiceValue();
+ Map<String, MappingServiceValue> result = new HashMap<String, MappingServiceValue>();
+ result.put("value", value);
+ List<MappingServiceRLOC> rlocs = new ArrayList<MappingServiceRLOC>();
+ for (LocatorRecord locator : eidToLocatorRecord.getLocatorRecord()) {
+ rlocs.add(new MappingServiceRLOC(locator, eidToLocatorRecord.getRecordTtl(), eidToLocatorRecord.getAction(), eidToLocatorRecord
+ .isAuthoritative()));
+ }
+ value.setRlocs(rlocs);
+
+ daoResults.put(
+ MappingServiceKeyUtil.generateMappingServiceKey(eidToLocatorRecord.getLispAddressContainer(),
+ (short) eidToLocatorRecord.getMaskLength()), result);
+ }
+ }
+
+ ValueSaverAction<IMappingServiceKey> daoGetSaverAction = new ValueSaverAction<IMappingServiceKey>() {
+ @Override
+ protected boolean validate(IMappingServiceKey value) {
+ return true;
+ }
+
+ @Override
+ public Object invoke(Invocation invocation) throws Throwable {
+ return daoResults.get(lastValue);
+ }
+ };
+
+ allowing(lispDAO).get(with(daoGetSaverAction));
+ will(daoGetSaverAction);
+
+ return daoResults.get(MappingServiceKeyUtil.generateMappingServiceKey(LispAFIConvertor.toContainer(v4Address)));
+ }
+
+ private MapRequestBuilder getDefaultMapRequestBuilder() {
+ MapRequestBuilder mrBuilder = new MapRequestBuilder();
+ mrBuilder.setAuthoritative(false);
+ mrBuilder.setEidRecord(new ArrayList<EidRecord>());
+ mrBuilder.setItrRloc(new ArrayList<ItrRloc>());
+ mrBuilder.setMapDataPresent(true);
+ mrBuilder.setNonce((long) 0);
+ mrBuilder.setPitr(false);
+ mrBuilder.setProbe(false);
+ mrBuilder.setSmr(false);
+ mrBuilder.setSmrInvoked(true);
+ mrBuilder.setSourceEid(new SourceEidBuilder().setLispAddressContainer(
+ LispAFIConvertor.toContainer(LispAFIConvertor.asIPAfiAddress("127.0.0.1"))).build());
+ return mrBuilder;
+ }
+
+ private EidToLocatorRecordBuilder getDefaultEidToLocatorBuilder() {
+ EidToLocatorRecordBuilder builder = new EidToLocatorRecordBuilder();
+ builder.setAction(Action.NoAction);
+ builder.setAuthoritative(false);
+ builder.setLocatorRecord(new ArrayList<LocatorRecord>());
+ builder.setMapVersion((short) 0);
+ builder.setMaskLength((short) 32);
+ builder.setRecordTtl(60);
+ return builder;
+ }
+
+ private LocatorRecordBuilder getDefaultLocatorBuilder() {
+ LocatorRecordBuilder builder = new LocatorRecordBuilder();
+ builder.setLocalLocator(false);
+ builder.setMulticastPriority((short) 0);
+ builder.setMulticastWeight((short) 0);
+ builder.setPriority((short) 0);
+ builder.setRlocProbed(false);
+ builder.setRouted(true);
+ builder.setWeight((short) 0);
+ return builder;
+ }
+