public JsonKapuaDataMessage(KapuaDataMessage kapuaDataMessage) { setId(kapuaDataMessage.getId()); setScopeId(kapuaDataMessage.getScopeId()); setDeviceId(kapuaDataMessage.getDeviceId()); setClientId(kapuaDataMessage.getClientId()); setReceivedOn(kapuaDataMessage.getReceivedOn()); setSentOn(kapuaDataMessage.getSentOn()); setCapturedOn(kapuaDataMessage.getCapturedOn()); setPosition(kapuaDataMessage.getPosition()); setChannel(kapuaDataMessage.getChannel()); setPayload(kapuaDataMessage.getPayload()); }
private KuraDataPayload translate(KapuaDataPayload kapuaPayload) throws KapuaException { KuraDataPayload kuraPayload = new KuraDataPayload(); if (kapuaPayload.getMetrics() != null) { kuraPayload.setMetrics(new HashMap<>(kapuaPayload.getMetrics())); } if (kapuaPayload.getBody() != null) { kuraPayload.setBody(kapuaPayload.getBody()); } // // Return Kura payload return kuraPayload; }
private boolean checkThatTheInsertedMessageMatchesTheOriginal(KapuaDataMessage origMsg, DatastoreMessage foundMsg) throws KapuaException { assertTrue(areSemanticPartsEqual(origMsg.getChannel().getSemanticParts(), foundMsg.getChannel().getSemanticParts())); if (origMsg.getPayload() != null) { assertArrayEquals(origMsg.getPayload().getBody(), foundMsg.getPayload().getBody()); assertTrue(areMetricsEqual(origMsg.getPayload().getMetrics(), foundMsg.getPayload().getMetrics())); } assertTrue(arePositionsEqual(origMsg.getPosition(), foundMsg.getPosition())); assertTrue(foundMsg.getTimestamp().compareTo(origMsg.getReceivedOn()) >= 0); assertTrue(foundMsg.getTimestamp().compareTo(new Date(origMsg.getReceivedOn().getTime() + 10000)) <= 0); assertEquals(origMsg.getCapturedOn(), foundMsg.getCapturedOn()); assertEquals(origMsg.getSentOn(), foundMsg.getSentOn()); assertEquals(origMsg.getReceivedOn(), foundMsg.getReceivedOn()); return true; }
@Override public KuraDataMessage translate(KapuaDataMessage kapuaDataMessage) throws KapuaException { KapuaLocator locator = KapuaLocator.getInstance(); AccountService accountService = locator.getService(AccountService.class); Account account = accountService.find(kapuaDataMessage.getScopeId()); if (account == null) { throw new KapuaEntityNotFoundException(Account.TYPE, kapuaDataMessage.getScopeId()); } // // Kapua Channel KuraDataChannel kuraDataChannel = translate(kapuaDataMessage.getChannel()); kuraDataChannel.setClientId(kapuaDataMessage.getClientId()); kuraDataChannel.setScope(account.getName()); // // Kapua payload KuraDataPayload kuraDataPayload = translate(kapuaDataMessage.getPayload()); kuraDataPayload.setBody(kapuaDataMessage.getPayload().getBody()); kuraDataPayload.setMetrics(kapuaDataMessage.getPayload().getMetrics()); kuraDataPayload.setPosition(TranslatorKapuaKuraUtils.translate(kapuaDataMessage.getPosition())); kuraDataPayload.setTimestamp(kapuaDataMessage.getSentOn()); // // Kapua message KuraDataMessage kuraDataMessage = new KuraDataMessage(); kuraDataMessage.setChannel(kuraDataChannel); kuraDataMessage.setPayload(kuraDataPayload); // Return Kapua Message return kuraDataMessage; }
private void checkMetricInfoAgainstPreparedMessages(MetricInfoListResult metInfo, List<KapuaDataMessage> msgLst) { Set<String> msgMetrics = new HashSet<>(); Set<String> msgClients = new HashSet<>(); Set<String> infoMetrics = new HashSet<>(); Set<String> infoClients = new HashSet<>(); assertNotNull("No channel info data!", metInfo); assertNotNull("No messages to compare to!", msgLst); for (KapuaDataMessage tmpMsg : msgLst) { msgClients.add(tmpMsg.getClientId()); for (String tmpMet : tmpMsg.getPayload().getMetrics().keySet()) { msgMetrics.add(tmpMet); } } for (MetricInfo tmpMet : metInfo.getItems()) { infoClients.add(tmpMet.getClientId()); infoMetrics.add(tmpMet.getName()); } assertEquals("The number of clients does not match!", msgClients.size(), infoClients.size()); assertEquals("The number of topics does not match!", msgMetrics.size(), infoMetrics.size()); for (String tmpMetric : msgMetrics) { assertTrue(String.format("The topic [%s] is not found in the info list!", tmpMetric), infoMetrics.contains(tmpMetric)); } for (String tmpClient : msgClients) { assertTrue(String.format("The client id [%s] is not found in the info list!", tmpClient), infoClients.contains(tmpClient)); } }
private KuraDataChannel translate(KapuaDataChannel kapuaChannel) throws KapuaException { KuraDataChannel kuraChannel = new KuraDataChannel(); kuraChannel.setSemanticChannelParts(kapuaChannel.getSemanticParts()); // // Return Kapua Channel return kuraChannel; }
private void checkClientInfoAgainstPreparedMessages(ClientInfoListResult cliInfo, List<KapuaDataMessage> msgLst) { Set<String> msgClients = new HashSet<>(); Set<String> infoClients = new HashSet<>(); assertNotNull("No client info data!", cliInfo); assertNotNull("No messages to compare to!", msgLst); for (KapuaDataMessage tmpMsg : msgLst) { msgClients.add(tmpMsg.getClientId()); } for (ClientInfo tmpClient : cliInfo.getItems()) { infoClients.add(tmpClient.getClientId()); } assertEquals("The number of clients does not match!", msgClients.size(), infoClients.size()); for (String tmpClient : msgClients) { assertTrue(String.format("The client id [%s] is not found in the info list!", tmpClient), infoClients.contains(tmpClient)); } }
private KapuaDataPayload translate(KuraDataPayload kuraPayload) throws KapuaException { KapuaDataPayload kapuaPayload = new KapuaDataPayloadImpl(); if (kuraPayload.getMetrics() != null) { kapuaPayload.setMetrics(new HashMap<>(kuraPayload.getMetrics())); } if (kuraPayload.getBody() != null) { kapuaPayload.setBody(kuraPayload.getBody()); } // // Return Kapua payload return kapuaPayload; }
@Given("^I store the messages from list \"(.*)\" with the server time and remember the IDs as \"(.*)\"$") public void insertRandomMessagesIntoDatastoreWithCurrentTimestamps(String msgListKey, String idListKey) throws KapuaException { List<KapuaDataMessage> tmpMsgList = (List<KapuaDataMessage>) stepData.get(msgListKey); StorableId tmpId = null; List<StorableId> tmpList = new ArrayList<>(); for (KapuaDataMessage tmpMsg : tmpMsgList) { tmpMsg.setReceivedOn(new Date()); tmpId = insertMessageInStore(tmpMsg); tmpList.add(tmpId); } stepData.put(idListKey, tmpList); }
private KapuaDataChannel translate(KuraChannel kuraChannel) throws KapuaException { KapuaDataChannel kapuaChannel = new KapuaDataChannelImpl(); kapuaChannel.setSemanticParts(kuraChannel.getSemanticChannelParts()); // // Return Kapua Channel return kapuaChannel; }
@Given("^I prepare a random message with null payload and save it as \"(.*)\"$") public void prepareRandomMessageWithNullPayload(String msgKey) throws Exception { KapuaDataMessage tmpMessage = createTestMessage( ((Account) stepData.get("LastAccount")).getId(), ((Device) stepData.get("LastDevice")).getId(), ((Device) stepData.get("LastDevice")).getClientId(), null, null); tmpMessage.setPayload(null); stepData.put(msgKey, tmpMessage); }
@Then("^The datastore message \"(.*)\" matches the prepared message \"(.*)\"$") public void checkThatTheStoredMessageMatchesTheOriginal(String datastoreMsgKey, String originalMsgKey) throws KapuaException { KapuaDataMessage origMsg = (KapuaDataMessage) stepData.get(originalMsgKey); DatastoreMessage foundMsg = (DatastoreMessage) stepData.get(datastoreMsgKey); checkThatTheInsertedMessageMatchesTheOriginal(origMsg, foundMsg); isChannelForFirstMessageInStoreOK(foundMsg.getDatastoreId(), foundMsg.getTimestamp()); isClientForFirstMessageInStoreOK(foundMsg.getDatastoreId(), foundMsg.getTimestamp()); if (origMsg.getPayload() != null) { isMetricForFirstMessageInStoreOK(foundMsg.getDatastoreId(), foundMsg.getTimestamp()); } }
@Override public KuraDataMessage translate(KapuaDataMessage kapuaDataMessage) throws KapuaException { KapuaLocator locator = KapuaLocator.getInstance(); AccountService accountService = locator.getService(AccountService.class); Account account = accountService.find(kapuaDataMessage.getScopeId()); if (account == null) { throw new KapuaEntityNotFoundException(Account.TYPE, kapuaDataMessage.getScopeId()); } // // Kapua Channel KuraDataChannel kuraDataChannel = translate(kapuaDataMessage.getChannel()); kuraDataChannel.setClientId(kapuaDataMessage.getClientId()); kuraDataChannel.setScope(account.getName()); // // Kapua payload KuraDataPayload kuraDataPayload = translate(kapuaDataMessage.getPayload()); kuraDataPayload.setBody(kapuaDataMessage.getPayload().getBody()); kuraDataPayload.setMetrics(kapuaDataMessage.getPayload().getMetrics()); kuraDataPayload.setPosition(TranslatorKapuaKuraUtils.translate(kapuaDataMessage.getPosition())); kuraDataPayload.setTimestamp(kapuaDataMessage.getSentOn()); // // Kapua message KuraDataMessage kuraDataMessage = new KuraDataMessage(); kuraDataMessage.setChannel(kuraDataChannel); kuraDataMessage.setPayload(kuraDataPayload); // Return Kapua Message return kuraDataMessage; }
private KuraDataPayload translate(KapuaDataPayload kapuaPayload) throws KapuaException { KuraDataPayload kuraPayload = new KuraDataPayload(); if (kapuaPayload.getMetrics() != null) { kuraPayload.setMetrics(new HashMap<>(kapuaPayload.getMetrics())); } if (kapuaPayload.getBody() != null) { kuraPayload.setBody(kapuaPayload.getBody()); } // // Return Kura payload return kuraPayload; }
private KuraDataChannel translate(KapuaDataChannel kapuaChannel) throws KapuaException { KuraDataChannel kuraChannel = new KuraDataChannel(); kuraChannel.setSemanticChannelParts(kapuaChannel.getSemanticParts()); // // Return Kapua Channel return kuraChannel; }
private KapuaDataPayload translate(KuraDataPayload kuraPayload) throws KapuaException { KapuaDataPayload kapuaPayload = new KapuaDataPayloadImpl(); if (kuraPayload.getMetrics() != null) { kapuaPayload.setMetrics(new HashMap<>(kuraPayload.getMetrics())); } if (kuraPayload.getBody() != null) { kapuaPayload.setBody(kuraPayload.getBody()); } // // Return Kapua payload return kapuaPayload; }
@Given("^I store the message \"(.*)\" with the server time and remember its ID as \"(.*)\"$") public void insertRandomMessageIntoDatastoreWithCurrentTimestamp(String msgKey, String idKey) throws KapuaException { KapuaDataMessage tmpMessage = (KapuaDataMessage) stepData.get(msgKey); tmpMessage.setReceivedOn(new Date()); StorableId storeId = insertMessageInStore(tmpMessage); stepData.put(idKey, storeId); }
private KapuaDataChannel translate(KuraChannel kuraChannel) throws KapuaException { KapuaDataChannel kapuaChannel = new KapuaDataChannelImpl(); kapuaChannel.setSemanticParts(kuraChannel.getSemanticChannelParts()); // // Return Kapua Channel return kapuaChannel; }
private boolean checkThatDatastoreMessagesMatch(DatastoreMessage firstMsg, DatastoreMessage secondMsg) throws KapuaException { assertEquals(firstMsg.getDatastoreId().toString(), secondMsg.getDatastoreId().toString()); assertTrue(areSemanticPartsEqual(firstMsg.getChannel().getSemanticParts(), secondMsg.getChannel().getSemanticParts())); if ((firstMsg.getPayload() != null) || (secondMsg.getPayload() != null)) { assertArrayEquals(firstMsg.getPayload().getBody(), secondMsg.getPayload().getBody()); assertTrue(areMetricsEqual(firstMsg.getPayload().getMetrics(), secondMsg.getPayload().getMetrics())); } assertTrue(arePositionsEqual(firstMsg.getPosition(), secondMsg.getPosition())); assertEquals(firstMsg.getTimestamp(), secondMsg.getTimestamp()); assertEquals(firstMsg.getCapturedOn(), secondMsg.getCapturedOn()); assertEquals(firstMsg.getSentOn(), secondMsg.getSentOn()); assertEquals(firstMsg.getReceivedOn(), secondMsg.getReceivedOn()); return true; }
/** * This constructor should be used for wrapping Kapua message into datastore message for insert purpose * * @param message */ private DatastoreMessage convertTo(KapuaMessage<?, ?> message, String messageId) { KapuaDataChannel datastoreChannel = new KapuaDataChannelImpl(); datastoreChannel.setSemanticParts(message.getChannel().getSemanticParts()); DatastoreMessage datastoreMessage = new DatastoreMessageImpl(); datastoreMessage.setCapturedOn(message.getCapturedOn()); datastoreMessage.setChannel(datastoreChannel); datastoreMessage.setClientId(message.getClientId()); datastoreMessage.setDeviceId(message.getDeviceId()); datastoreMessage.setId(message.getId()); datastoreMessage.setPayload(message.getPayload()); datastoreMessage.setPosition(message.getPosition()); datastoreMessage.setReceivedOn(message.getReceivedOn()); datastoreMessage.setScopeId(message.getScopeId()); datastoreMessage.setSentOn(message.getSentOn()); // generate uuid datastoreMessage.setId(message.getId()); datastoreMessage.setDatastoreId(new StorableIdImpl(messageId)); return datastoreMessage; }