### Question:
PropertiesBasedTraceeFilterConfiguration implements TraceeFilterConfiguration { @Override public int generatedInvocationIdLength() { return parseIntOrZero(getProfiledOrDefaultProperty(GENERATE_INVOCATION_ID)); } PropertiesBasedTraceeFilterConfiguration(PropertyChain propertyChain);  PropertiesBasedTraceeFilterConfiguration(PropertyChain propertyChain,
													String profileName); static PropertyChain loadPropertyChain(); @Override boolean shouldProcessParam(String paramName, Channel channel); @Override boolean shouldProcessContext(final Channel channel); @Override boolean shouldGenerateInvocationId(); @Override int generatedInvocationIdLength(); @Override boolean shouldGenerateSessionId(); @Override int generatedSessionIdLength(); @Override Map<String, String> filterDeniedParams(final Map<String, String> unfiltered, final Channel channel);  }### Answer:
@Test public void testGeneratedInvocationIdLength() { when(propertyChain.getProperty(TRACEE_DEFAULT_PROFILE_PREFIX + GENERATE_INVOCATION_ID)).thenReturn("1"); assertThat(unit.generatedInvocationIdLength(), equalTo(1)); }
@Test public void testGeneratedInvocationIdNonNumericMeansZero() { when(propertyChain.getProperty(TRACEE_DEFAULT_PROFILE_PREFIX + GENERATE_INVOCATION_ID)).thenReturn("false"); assertThat(unit.generatedInvocationIdLength(), equalTo(0)); }