@Test
public void testDecodeHostName() throws Exception {

    byte[] data = IpfixUtilities.hexStringToByteArray("000A00AC5DAEECB700000000000010EF00030022025800030001938AFFFF00000E91A1BCFFFF" +
            "00000E91A1BDFFFF00000E910258007A08686F73746E616D650961646D696E757365726224362471334739564D6D5424736C484C59547A6A6553495A3" +
            "86E525A465A5A487255384356385352387352456B6447544A656D6B705063616D4476414979372E504247494F6771767543757037716557382E6B6246" +
            "38416D44596378586B6373792E");
    IpfixMessage ipfixMessage = new IpfixMessage(data);
    IpfixDataSet dataSet = ipfixMessage.getDataSets().get(0);
    AbstractTemplateRecord blueprint = ipfixMessage.getOptionTemplateSets().get(0).getRecords().get(0);
    String family = "sample-model-tls-DPU-1.0";
    when(m_templateProvider.get(600)).thenReturn(blueprint);
    when(m_deviceFamilyCacheService.getDeviceFamily("hostname")).thenReturn(family);
    Set<IpfixDecodedData> decodedDataSet = m_decodingDataRecordService.decodeDataSet("", 1L, dataSet, ipfixMessage, m_templateProvider);
    verify(m_deviceFamilyCacheService).getDeviceFamily("hostname");
    Set<IpfixDecodedData> decodedDataRecords = decodedDataSet;
    assertEquals(3, decodedDataRecords.size());
    Set<String> decodedCounters = new HashSet<>();
    for (IpfixDecodedData decodedData : decodedDataRecords) {
        decodedCounters.add(decodedData.getCounterName());
    }
    assertTrue(decodedCounters.contains("5002.3729"));
    assertTrue(decodedCounters.contains("8636.3729"));
    assertTrue(decodedCounters.contains("8637.3729"));
}