package com.castlabs.dash.dashfragmenter.representation; import mpegDashSchemaMpd2011.MPDDocument; import org.apache.xmlbeans.XmlException; import org.junit.Assert; import org.junit.Test; import java.io.File; import java.io.IOException; public class ManifestOptimizerTest { @Test public void testMinMaxFrameRate() throws IOException, XmlException { MPDDocument mpd = MPDDocument.Factory.parse(new File(ManifestOptimizerTest.class.getProtectionDomain().getCodeSource().getLocation().getFile() + "/com/castlabs/dash/dashfragmenter/representation/exampleManifest.mpd")); ManifestOptimizer.adjustMinMaxFrameRate(mpd.getMPD().getPeriodArray(0).getAdaptationSetArray(0)); Assert.assertEquals("12000/1000", mpd.getMPD().getPeriodArray(0).getAdaptationSetArray(0).getMinFrameRate()); Assert.assertEquals("24000/1000", mpd.getMPD().getPeriodArray(0).getAdaptationSetArray(0).getMaxFrameRate()); MPDDocument mpd2 = MPDDocument.Factory.parse(new File(ManifestOptimizerTest.class.getProtectionDomain().getCodeSource().getLocation().getFile() + "/com/castlabs/dash/dashfragmenter/representation/exampleManifest.mpd")); mpd2.getMPD().getPeriodArray(0).getAdaptationSetArray(0).removeRepresentation(0); ManifestOptimizer.adjustMinMaxFrameRate(mpd2.getMPD().getPeriodArray(0).getAdaptationSetArray(0)); Assert.assertEquals(null, mpd2.getMPD().getPeriodArray(0).getAdaptationSetArray(0).getMinFrameRate()); Assert.assertEquals(null, mpd2.getMPD().getPeriodArray(0).getAdaptationSetArray(0).getMaxFrameRate()); } @Test public void testMinMax() throws IOException, XmlException { MPDDocument mpd = MPDDocument.Factory.parse(new File(ManifestOptimizerTest.class.getProtectionDomain().getCodeSource().getLocation().getFile() + "/com/castlabs/dash/dashfragmenter/representation/exampleManifest.mpd")); ManifestOptimizer.adjustMinMax(mpd.getMPD().getPeriodArray(0).getAdaptationSetArray(0), "bandwidth"); Assert.assertEquals(549100, mpd.getMPD().getPeriodArray(0).getAdaptationSetArray(0).getMinBandwidth()); Assert.assertEquals(1356600, mpd.getMPD().getPeriodArray(0).getAdaptationSetArray(0).getMaxBandwidth()); ManifestOptimizer.adjustMinMax(mpd.getMPD().getPeriodArray(0).getAdaptationSetArray(1), "bandwidth"); Assert.assertFalse(mpd.getMPD().getPeriodArray(0).getAdaptationSetArray(1).isSetMinBandwidth()); Assert.assertFalse(mpd.getMPD().getPeriodArray(0).getAdaptationSetArray(1).isSetMaxBandwidth()); } }