/*
* RHQ Management Platform
* Copyright (C) 2005-2008 Red Hat, Inc.
* All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation version 2 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
package org.rhq.core.util;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import org.testng.annotations.Test;
@Test
public class IniEditorTest {
public void testLoad() throws Exception {
String content = "[one]\n" + //
"\tfirst=value1\n" + //
" second=value2\n" + //
" [Two] \n" + //
"# comment here\n" + //
" # spaces then comment \n" + //
"\t# tab then comment \n" + //
"\n" + //
"foo = bar\n";
IniEditor ini = new IniEditor(new char[] { '#' }, true);
ini.load(new ByteArrayInputStream(content.getBytes()));
assert ini.get("one", "first").equals("value1");
assert ini.get("one", "second").equals("value2");
assert ini.get("Two", "foo").equals("bar");
assert ini.hasSection("one") : ini.sectionNames();
assert ini.hasSection("Two") : ini.sectionNames();
assert !ini.hasSection("two") : "should have been case sensitive";
assert ini.sectionNames().size() == 2 : ini.sectionNames();
assert ini.optionNames("one").size() == 2 : ini.optionNames("one");
assert ini.optionNames("Two").size() == 1 : ini.optionNames("Two");
ByteArrayOutputStream boas = new ByteArrayOutputStream();
ini.save(boas);
System.out.println(boas.toString());
}
public void testLoad2() throws Exception {
// tests an actual puppet config file
IniEditor ini = new IniEditor(new char[] { '#' }, true);
ini.load(this.getClass().getClassLoader().getResourceAsStream("ini-editor-test.ini"));
assert ini.sectionNames().size() == 4 : ini.sectionNames();
assert ini.sectionNames().get(0).equals("main");
assert ini.sectionNames().get(1).equals("puppetd");
assert ini.sectionNames().get(2).equals("puppetca");
assert ini.sectionNames().get(3).equals("puppetmasterd");
assert ini.optionNames("main").size() == 4 : ini.optionNames("main");
assert ini.optionNames("puppetd").size() == 2 : ini.optionNames("puppetd");
assert ini.optionNames("puppetca").size() == 1 : ini.optionNames("puppetca");
assert ini.optionNames("puppetmasterd").size() == 2 : ini.optionNames("puppetmasterd");
assert ini.get("main", "vardir").equals("/var/lib/puppet");
assert ini.get("main", "logdir").equals("/var/log/puppet");
assert ini.get("main", "rundir").equals("/var/run/puppet");
assert ini.get("main", "ssldir").equals("$vardir/ssl");
assert ini.get("puppetd", "classfile").equals("$vardir/classes.txt");
assert ini.get("puppetd", "localconfig").equals("$vardir/localconfig");
assert ini.get("puppetca", "autosign").equals("false");
assert ini.get("puppetmasterd", "ca").equals("true");
assert ini.get("puppetmasterd", "certname").equals("mycertname");
}
}