package network.thunder.core.etc; import network.thunder.core.communication.objects.messages.impl.message.gossip.objects.ChannelStatusObject; import network.thunder.core.communication.objects.messages.impl.message.gossip.objects.P2PDataObject; import network.thunder.core.communication.objects.messages.impl.message.gossip.objects.PubkeyChannelObject; import network.thunder.core.communication.objects.messages.impl.message.gossip.objects.PubkeyIPObject; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * Created by matsjerratsch on 04/12/2015. */ public class SyncDBHandlerMock extends DBHandlerMock { public List<PubkeyChannelObject> pubkeyChannelObjectArrayList = new ArrayList<>(); public List<PubkeyIPObject> pubkeyIPObjectArrayList = new ArrayList<>(); public List<ChannelStatusObject> channelStatusObjectArrayList = new ArrayList<>(); public List<P2PDataObject> totalList = new ArrayList<>(); public Map<Integer, List<P2PDataObject>> fragmentToListMap = new HashMap<>(); public SyncDBHandlerMock () { } public void fillWithRandomData () { for (int i = 0; i < 1001; i++) { fragmentToListMap.put(i, new ArrayList<>()); } for (int i = 1; i < 1000; i++) { PubkeyChannelObject pubkeyChannelObject = PubkeyChannelObject.getRandomObject(); PubkeyIPObject pubkeyIPObject1 = PubkeyIPObject.getRandomObject(); PubkeyIPObject pubkeyIPObject2 = PubkeyIPObject.getRandomObject(); ChannelStatusObject channelStatusObject = ChannelStatusObject.getRandomObject(); pubkeyIPObject1.pubkey = pubkeyChannelObject.pubkeyA; pubkeyIPObject2.pubkey = pubkeyChannelObject.pubkeyB; channelStatusObject.pubkeyA = pubkeyChannelObject.pubkeyA; channelStatusObject.pubkeyB = pubkeyChannelObject.pubkeyB; pubkeyChannelObjectArrayList.add(pubkeyChannelObject); pubkeyIPObjectArrayList.add(pubkeyIPObject1); pubkeyIPObjectArrayList.add(pubkeyIPObject2); channelStatusObjectArrayList.add(channelStatusObject); totalList.add(pubkeyChannelObject); totalList.add(pubkeyIPObject1); totalList.add(pubkeyIPObject2); totalList.add(channelStatusObject); fragmentToListMap.get(pubkeyChannelObject.getFragmentIndex()).add(pubkeyChannelObject); fragmentToListMap.get(pubkeyIPObject1.getFragmentIndex()).add(pubkeyIPObject1); fragmentToListMap.get(pubkeyIPObject2.getFragmentIndex()).add(pubkeyIPObject2); fragmentToListMap.get(channelStatusObject.getFragmentIndex()).add(channelStatusObject); } } @Override public List<P2PDataObject> getSyncDataByFragmentIndex (int fragmentIndex) { return fragmentToListMap.get(fragmentIndex); } @Override public List<P2PDataObject> getSyncDataIPObjects () { List<P2PDataObject> ipList = new ArrayList<>(); for (int i = 0; i < 100; i++) { ipList.add(pubkeyIPObjectArrayList.get(i)); } return ipList; } @Override public void insertIPObjects (List<P2PDataObject> ipList) { for (P2PDataObject obj : ipList) { if (obj instanceof PubkeyIPObject) { pubkeyIPObjectArrayList.add((PubkeyIPObject) obj); } } } @Override public P2PDataObject getP2PDataObjectByHash (byte[] hash) { return null; } @Override public void syncDatalist (List<P2PDataObject> dataList) { for (P2PDataObject obj : dataList) { if (obj instanceof PubkeyIPObject) { pubkeyIPObjectArrayList.add((PubkeyIPObject) obj); } else if (obj instanceof PubkeyChannelObject) { pubkeyChannelObjectArrayList.add((PubkeyChannelObject) obj); } else if (obj instanceof ChannelStatusObject) { channelStatusObjectArrayList.add((ChannelStatusObject) obj); } totalList.add(obj); } } }