### Question:
CompositePropertyDescriptor implements PropertyDescriptor { @Override public String get(Vertex vertex) { String value = preferredDescriptor.get(vertex); if (StringUtils.isBlank(value)) { value = backUpDescriptor.get(vertex); } return value; } CompositePropertyDescriptor(PropertyDescriptor preferredDescriptor, PropertyDescriptor backUpDescriptor); @Override String get(Vertex vertex);  }### Answer:
@Test public void getReturnsTheValueOfTheFirstPropDescription() { PropertyDescriptor propertyDescriptor1 = mock(PropertyDescriptor.class); String valueOfDesc1 = "notNull"; given(propertyDescriptor1.get(any(Vertex.class))).willReturn(valueOfDesc1); PropertyDescriptor propertyDescriptor2 = mock(PropertyDescriptor.class); CompositePropertyDescriptor instance = new CompositePropertyDescriptor(propertyDescriptor1, propertyDescriptor2); String value = instance.get(mock(Vertex.class)); assertThat(value, is(valueOfDesc1)); verify(propertyDescriptor1).get(any(Vertex.class)); verifyZeroInteractions(propertyDescriptor2); }
@Test public void getReturnsTheValueOfTheSecondPropDescriptionIfTheValueOfTheFirstOneItIsNull() { PropertyDescriptor propertyDescriptor1 = mock(PropertyDescriptor.class); given(propertyDescriptor1.get(any(Vertex.class))).willReturn(null); PropertyDescriptor propertyDescriptor2 = mock(PropertyDescriptor.class); String valueOfDesc2 = "notNull"; given(propertyDescriptor2.get(any(Vertex.class))).willReturn(valueOfDesc2); CompositePropertyDescriptor instance = new CompositePropertyDescriptor(propertyDescriptor1, propertyDescriptor2); String value = instance.get(mock(Vertex.class)); assertThat(value, is(valueOfDesc2)); verify(propertyDescriptor1).get(any(Vertex.class)); verify(propertyDescriptor2).get(any(Vertex.class)); }
@Test public void getReturnsTheValueOfTheSecondPropDescriptionIfTheValueOfTheFirstOneIsAnEmptyString() { PropertyDescriptor propertyDescriptor1 = mock(PropertyDescriptor.class); given(propertyDescriptor1.get(any(Vertex.class))).willReturn(""); PropertyDescriptor propertyDescriptor2 = mock(PropertyDescriptor.class); String valueOfDesc2 = "notNull"; given(propertyDescriptor2.get(any(Vertex.class))).willReturn(valueOfDesc2); CompositePropertyDescriptor instance = new CompositePropertyDescriptor(propertyDescriptor1, propertyDescriptor2); String value = instance.get(mock(Vertex.class)); assertThat(value, is(valueOfDesc2)); verify(propertyDescriptor1).get(any(Vertex.class)); verify(propertyDescriptor2).get(any(Vertex.class)); }