private Map<String, Object> marshalChannelInfo(ChannelInfo channelInfo) throws ParseException { Map<String, Object> unmarshalledChannelInfo = new HashMap<>(); unmarshalledChannelInfo.put(ChannelInfoSchema.CHANNEL_NAME, channelInfo.getName()); unmarshalledChannelInfo.put(ChannelInfoSchema.CHANNEL_TIMESTAMP, KapuaDateUtils.formatDate(channelInfo.getFirstMessageOn())); unmarshalledChannelInfo.put(ChannelInfoSchema.CHANNEL_CLIENT_ID, channelInfo.getClientId()); unmarshalledChannelInfo.put(ChannelInfoSchema.CHANNEL_SCOPE_ID, channelInfo.getScopeId().toStringId()); unmarshalledChannelInfo.put(ChannelInfoSchema.CHANNEL_MESSAGE_ID, channelInfo.getFirstMessageId().toString()); return unmarshalledChannelInfo; }
@Then("^Client \"(.+)\" first published on a channel in the list \"(.+)\" on \"(.+)\"$") public void checkFirstPublishDateOnChannel(String clientId, String lstKey, String date) throws Exception { ChannelInfoListResult chnList = (ChannelInfoListResult) stepData.get(lstKey); Date tmpCaptured = KapuaDateUtils.parseDate(date); for (ChannelInfo tmpInfo : chnList.getItems()) { if (tmpInfo.getClientId().equals(clientId)) { assertEquals(tmpCaptured, tmpInfo.getFirstMessageOn()); return; } } fail(String.format("No channel matches the client id [%s]", clientId)); }
messageQuery.setSortFields(sort); RangePredicate messageIdPredicate = new RangePredicateImpl(new StorableFieldImpl(ChannelInfoSchema.CHANNEL_TIMESTAMP), channelInfo.getFirstMessageOn(), null); TermPredicate clientIdPredicate = storablePredicateFactory.newTermPredicate(MessageField.CLIENT_ID, channelInfo.getClientId()); TermPredicate channelPredicate = storablePredicateFactory.newTermPredicate(MessageField.CHANNEL, channelInfo.getName());
ArgumentValidator.notNull(channelInfo.getName(), "channelInfo.name"); ArgumentValidator.notNull(channelInfo.getFirstMessageId(), "channelInfo.messageId"); ArgumentValidator.notNull(channelInfo.getFirstMessageOn(), "channelInfo.messageTimestamp"); Metadata metadata = mediator.getMetadata(channelInfo.getScopeId(), channelInfo.getFirstMessageOn().getTime()); String registryIndexName = metadata.getRegistryIndexName();
private void isChannelForFirstMessageInStoreOK(StorableId msgId, Date storedOn) throws KapuaException { KapuaId tmpAccId = ((Account) stepData.get("LastAccount")).getId(); String tmpClId = ((Device) stepData.get("LastDevice")).getClientId(); AndPredicate andPredicate = new AndPredicateImpl(); andPredicate.getPredicates().add(new TermPredicateImpl(ChannelInfoField.CLIENT_ID, tmpClId)); ChannelInfoQuery channelInfoQuery = DatastoreQueryFactory.createBaseChannelInfoQuery(tmpAccId, 100); channelInfoQuery.setPredicate(andPredicate); channelInfoQuery.addFetchAttributes(ChannelInfoField.TIMESTAMP.field()); ChannelInfoListResult channelInfoList = channelInfoRegistryService.query(channelInfoQuery); assertNotNull("Cannot find the channel info registry!", channelInfoList); assertNotEquals("Cannot find the channel info registry!", channelInfoList.getSize(), 0); assertNotNull("Cannot find the channel info registry!", channelInfoList.getFirstItem()); assertEquals("Wrong channel info message id!", channelInfoList.getFirstItem().getFirstMessageId(), msgId); assertEquals("Wrong channel info message on!", channelInfoList.getFirstItem().getFirstMessageOn(), storedOn); }