*/
@Test
public void testAllowOverrideValue() {
//Don't need to override null values and equal lists
assertFalse(property.allowOverrideValue(null, null));
assertFalse(property.allowOverrideValue(new DescribableList(project), new DescribableList(project)));
//Don't need to override Describable lists which has same Describable#data values, even if owners are not equal.
assertFalse(property.allowOverrideValue(new DescribableList(project), new DescribableList(project)));
assertFalse(property.allowOverrideValue(new DescribableList(project), new DescribableList(parent)));
DescribableList describableList1 = new DescribableList(project,
Arrays.asList(new Shell("echo 'test3'"), new Shell("echo 'test2'")));
DescribableList describableList2 = new DescribableList(project,
Arrays.asList(new Shell("echo 'test2'"), new Shell("echo 'test3'")));
assertFalse(property.allowOverrideValue(describableList1, describableList2));
DescribableList describableList3 = new DescribableList(parent, describableList2.toList());
assertFalse(property.allowOverrideValue(describableList1, describableList3));
describableList1 = new DescribableList(project, Arrays.asList(new Object()));
describableList2 = new DescribableList(project, Arrays.asList(new Object()));
assertFalse(property.allowOverrideValue(describableList1, describableList2));
//Allow override if cascading or candidate are null
assertTrue(property.allowOverrideValue(null, new DescribableList(project)));
assertTrue(property.allowOverrideValue(new DescribableList(project), null));
assertTrue(property.allowOverrideValue(new DescribableList(project),
new DescribableList(project, Arrays.asList(new Shell("echo 'test1'")))));
assertTrue(property.allowOverrideValue(new DescribableList(project, Arrays.asList(new Shell("echo 'test1'"))),
new DescribableList(project)));
}