	@Test
	public void testOptionParameterOverrides() throws Exception {

		URL url = Thread.currentThread().getContextClassLoader().getResource("at/alladin/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"));
	}