Assert.assertEquals(W * E, statsCollector.getTotalStats().getNumDataEvents());
File tmpFile= File.createTempFile(TestDbusEventBuffer.class.getSimpleName(), ".tmp");
tmpFile.deleteOnExit();
OutputStream outStream = new FileOutputStream(tmpFile);
WritableByteChannel outChannel = Channels.newChannel(outStream);
//stream events
DbusEventsStatisticsCollector outStatsCollector = new DbusEventsStatisticsCollector(1, "out", true, false, null);
Checkpoint cp = new Checkpoint();
cp.setFlexible();
cp.setConsumptionMode(DbusClientMode.ONLINE_CONSUMPTION);
ErrorCountingAppender errorCountAppender = new ErrorCountingAppender();
errorCountAppender.setName("errorCountAppender");
DbusEventSerializable.LOG.addAppender(errorCountAppender);
Level oldLevel = DbusEventSerializable.LOG.getLevel();
//ensure ERROR log level because gradle likes to change it
DbusEventSerializable.LOG.setLevel(Level.ERROR);
int errNum = errorCountAppender.getErrorNum();
StreamEventsArgs args = new StreamEventsArgs(10000).setStatsCollector(outStatsCollector);
int written = buf.streamEvents(cp, outChannel, args).getNumEventsStreamed();
Assert.assertEquals(errorCountAppender, DbusEventSerializable.LOG.getAppender("errorCountAppender"));
Assert.assertEquals(W * (E + 1), written);
Assert.assertEquals(errNum, errorCountAppender.getErrorNum());
//close the channel to force an error for streamEvents
outStream.close();
outChannel.close();
cp = new Checkpoint();
cp.setFlexible();
cp.setConsumptionMode(DbusClientMode.ONLINE_CONSUMPTION);
errNum = errorCountAppender.getErrorNum();