@Test
public void test_getRequiredParameters() {

	// reasonable protection against null things
	Set<String> parameters = _validator.getRequiredParameters(null);
	Assert.assertNotNull(parameters);
	Assert.assertTrue(parameters.isEmpty());
	RangerServiceDef serviceDef = mock(RangerServiceDef.class);
	when(serviceDef.getConfigs()).thenReturn(null);
	parameters = _validator.getRequiredParameters(null);
	Assert.assertNotNull(parameters);
	Assert.assertTrue(parameters.isEmpty());
	List<RangerServiceConfigDef> configs = new ArrayList<>();
	when(serviceDef.getConfigs()).thenReturn(configs);
	parameters = _validator.getRequiredParameters(null);
	Assert.assertNotNull(parameters);
	Assert.assertTrue(parameters.isEmpty());
	
	Object[][] input = new Object[][] {
			{ "param1", false },
			{ "param2", true },
			{ "param3", true },
			{ "param4", false },
	};
	configs = _utils.createServiceConditionDefs(input);
	when(serviceDef.getConfigs()).thenReturn(configs);
	parameters = _validator.getRequiredParameters(serviceDef);
	Assert.assertTrue("result does not contain: param2", parameters.contains("param2"));
	Assert.assertTrue("result does not contain: param3", parameters.contains("param3"));
}