unmarshalledMessage.put(MessageSchema.MESSAGE_SCOPE_ID, scopeId); unmarshalledMessage.put(MessageSchema.MESSAGE_DEVICE_ID, deviceIdStr); unmarshalledMessage.put(MessageSchema.MESSAGE_CLIENT_ID, message.getClientId()); unmarshalledMessage.put(MessageSchema.MESSAGE_CHANNEL, message.getChannel().toString()); unmarshalledMessage.put(MessageSchema.MESSAGE_CHANNEL_PARTS, message.getChannel().getSemanticParts());
clientInfo.setClientId(message.getClientId()); clientInfo.setId(new StorableIdImpl(ClientInfoField.getOrDeriveId(null, message.getScopeId(), message.getClientId()))); clientInfo.setFirstMessageId(message.getDatastoreId()); clientInfo.setFirstMessageOn(message.getTimestamp()); channelInfo.setClientId(message.getClientId()); channelInfo.setName(semanticChannel); channelInfo.setFirstMessageId(message.getDatastoreId()); for (Map.Entry<String, Object> entry : metrics.entrySet()) { MetricInfoImpl metricInfo = new MetricInfoImpl(message.getScopeId()); metricInfo.setClientId(message.getClientId()); metricInfo.setChannel(semanticChannel); metricInfo.setName(entry.getKey());
@Then("I expect the latest captured message on channel \"(.*)\" to have the metrics") public void testMessageData(final String topic, final List<MetricEntry> expectedMetrics) throws Exception { final MessageStoreService service = KapuaLocator.getInstance().getService(MessageStoreService.class); session.withLogin(() -> { With.withUserAccount(currentDevice.getAccountName(), account -> { // start a new query final MessageQueryImpl query = new MessageQueryImpl(account.getId()); // query for client and channel final AndPredicateImpl and = new AndPredicateImpl(); and.getPredicates().add(new TermPredicateImpl(MessageField.CLIENT_ID, currentDevice.getClientId())); and.getPredicates().add(new TermPredicateImpl(MessageField.CHANNEL, topic)); query.setPredicate(and); // sort by captured time query.setSortFields(Arrays.asList(SortField.descending(MessageField.CAPTURED_ON.field()))); // perform the query final MessageListResult result = service.query(query); Assert.assertEquals(1, result.getSize()); // get the first item final DatastoreMessage message = result.getFirstItem(); Assert.assertEquals(currentDevice.getClientId(), message.getClientId()); // get payload structure final KapuaPayload payload = message.getPayload(); // assert metrics data final Map<String, Object> properties = payload.getMetrics(); Assert.assertEquals(toData(expectedMetrics), properties); }); }); }
public JsonDatastoreMessage(DatastoreMessage datastoreMessage) { super(); setId(datastoreMessage.getId()); setDatastoreId(datastoreMessage.getDatastoreId()); setTimestamp(datastoreMessage.getTimestamp()); setScopeId(datastoreMessage.getScopeId()); setDeviceId(datastoreMessage.getDeviceId()); setClientId(datastoreMessage.getClientId()); setReceivedOn(datastoreMessage.getReceivedOn()); setSentOn(datastoreMessage.getSentOn()); setCapturedOn(datastoreMessage.getCapturedOn()); setPosition(datastoreMessage.getPosition()); setChannel((KapuaDataChannel) datastoreMessage.getChannel()); setPayload(datastoreMessage.getPayload()); }