@Test
public void testOptionParameterOverrides() throws Exception {

	URL url = Thread.currentThread().getContextClassLoader().getResource("at/rtr/rmbt/util/model/option/test3.json");
	File file = new File(url.getPath());
	ServerOptionContainer options = new ServerOptionContainer(
			new ArrayList<>(Arrays.asList(ServerOption.getGson().fromJson(new FileReader(file), ServerOption.class))));
	final List<ServerOption> list = options.getRootOptions();
	List<ServerOption> sublist = options.select(list.get(0));
	assertEquals("option 0 select param size", 0, options.getSelectedParams().size());
	
	sublist = options.select(sublist.get(0));
	assertEquals("option 0->0 select param size", 2, options.getSelectedParams().size());
	assertEquals("option 0->0 param 'option'", "a1", options.getSelectedParams().get("option"));
	
	sublist = options.select(sublist.get(0));
	assertEquals("option 0->0->0 select param size", 2, options.getSelectedParams().size());
	assertEquals("option 0->0->0 override param 'option'", "a2", options.getSelectedParams().get("option"));
	
	sublist = options.select(sublist.get(0));
	assertEquals("option 0->0->0->0 select param size", 2, options.getSelectedParams().size());
	assertEquals("option 0->0->0->0 override param 'option'", "a3", options.getSelectedParams().get("option"));
	sublist = options.select(sublist.get(0));
	assertEquals("option 0->0->0->0->0 select param size", 2, options.getSelectedParams().size());
	assertEquals("option 0->0->0->0->0 override param 'option'", "a3", options.getSelectedParams().get("option"));
}