package test.properties; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.util.List; import java.util.Properties; import aQute.bnd.build.model.BndEditModel; import aQute.bnd.properties.Document; import aQute.lib.io.IO; import junit.framework.TestCase; public class PropertiesTest extends TestCase { public static void testBndEditModel() throws Exception { Document doc = new Document("# Hello\nBundle-Description:\tTest \u2649\n" + "\n\nBundle-SymbolicName:\ttest.properties\n" + "Private-Package:\tpp1\n"); BndEditModel model = new BndEditModel(); model.loadFrom(doc); model.addPrivatePackage("pp2"); model.addPrivatePackage("pp3"); model.setBundleVersion("1.0.0"); model.setBundleVersion("1.1.0"); System.out.println(doc.get()); File file = File.createTempFile("test", ".properties"); IO.copy(model.toAsciiStream(doc), file); model = new BndEditModel(); model.loadFrom(file); Properties props = new Properties(); try (InputStream in = new FileInputStream(file)) { props.load(in); } assertEquals(props.getProperty("Bundle-Version"), model.getBundleVersionString()); List<String> privatePackages = model.getPrivatePackages(); String s = props.getProperty("Private-Package"); String[] pkgs = s.split("\\,"); for (String pkg : pkgs) { assertTrue(privatePackages.remove(pkg)); } assertEquals(0, privatePackages.size()); String desc = props.getProperty("Bundle-Description"); assertEquals(desc, "Test \u2649"); } }