### Question:
BaseProjectProperty implements IProjectProperty<T> { public void setJob(ICascadingJob job) { if (null == job) { throw new IllegalArgumentException(INVALID_JOB_EXCEPTION); } this.job = job; } BaseProjectProperty(ICascadingJob job); void setKey(String propertyKey); String getKey(); void setJob(ICascadingJob job); void setOverridden(boolean overridden); @SuppressWarnings("unchecked") T getCascadingValue(); boolean isOverridden(); T getDefaultValue(); T getValue(); @SuppressWarnings("unchecked") void setValue(T value); void resetValue(); boolean allowOverrideValue(T cascadingValue, T candidateValue); T getOriginalValue(); final void onCascadingProjectChanged();  }### Answer:
@Test public void testSetJob() { try { property.setJob(null); fail("Null is not allowed."); } catch (Exception e) { assertEquals(BaseProjectProperty.INVALID_JOB_EXCEPTION, e.getMessage()); } assertNotNull(property.getJob()); assertEquals(project, property.getJob()); }