@Override @Nonnull public UniformityArchive unmarshal (final @Nonnull InputStream is) throws IOException { final UniformityArchive archive = new UniformityArchive(); for (;;) { try { final UniformityMeasurements measurements = new UniformityMeasurements().as(Unmarshallable).unmarshal(is); archive.add(measurements); } catch (EOFException e) { break; // ok, finished } } return archive; } }
@Test(dataProvider="testCaseProvider") public void must_properly_unmarshall (final @Nonnegative int size, final long seed) throws FileNotFoundException, IOException { final UniformityArchiveUnmarshallable unmarshallable = new UniformityArchiveUnmarshallable(); final File file = new File("src/test/resources/expected-results/" + seed + ".txt"); final InputStream is = new FileInputStream(file); final UniformityArchive archive = unmarshallable.unmarshal(is); is.close(); final UniformityArchive expectedArchive = new UniformityArchive(); final Random r = new Random(seed); for (int i = 0; i < size; i++) { expectedArchive.add(FakeUniformityMeasurementsGenerator.createMeasurements("display1", r)); } assertThat(archive, is(expectedArchive)); }
/******************************************************************************************************************* * * * ******************************************************************************************************************/ public void onNewMeasurement (final @ListensTo @Nonnull UniformityMeasurementMessage message) throws IOException { log.info("onNewMeasurement({})", message); archive.add(message.getMeasurements()); storeArchive(); new UniformityArchiveUpdatedMessage(archive.findMeasurementsByDisplay(message.getMeasurements().getDisplay().getDisplay())).send(); }
@Test(dataProvider="testCaseProvider") public void must_properly_marshall (final @Nonnegative int size, final long seed) throws FileNotFoundException, IOException { final UniformityArchive archive = new UniformityArchive(); final Random r = new Random(seed); for (int i = 0; i < size; i++) { archive.add(FakeUniformityMeasurementsGenerator.createMeasurements("display1", r)); } final UniformityArchiveMarshallable marshallable = new UniformityArchiveMarshallable(archive); final File targetFolder = new File("target/test-artifacts"); final File actualFile = new File(targetFolder, "" + seed + ".txt"); final File expectedFile = new File("src/test/resources/expected-results/" + seed + ".txt"); targetFolder.mkdirs(); final OutputStream os = new FileOutputStream(actualFile); marshallable.marshal(os); os.close(); FileComparisonUtils.assertSameContents(expectedFile, actualFile); }