### Question:
Binding extends DMNModelInstrumentedBase implements HasExpression,
                                                                 HasTypeRefs,
                                                                 HasVariable<InformationItem> { @Override public List<HasTypeRef> getHasTypeRefs() { final List<HasTypeRef> hasTypeRefs = new ArrayList<>(); hasTypeRefs.addAll(getNotNullHasTypeRefs(getExpression())); hasTypeRefs.addAll(getNotNullHasTypeRefs(getParameter())); return hasTypeRefs; }  Binding copy(); InformationItem getParameter(); void setParameter(final InformationItem value); @Override //Proxy for getParameter() to allow use as HasVariable InformationItem getVariable(); @Override //Proxy for setParameter(..) to allow use as HasVariable void setVariable(final InformationItem informationItem); @Override Expression getExpression(); @Override void setExpression(final Expression value); @Override DMNModelInstrumentedBase asDMNModelInstrumentedBase(); @Override boolean equals(final Object o); @Override int hashCode(); @Override List<HasTypeRef> getHasTypeRefs();  }### Answer:
@Test public void testGetHasTypeRefs() { final Expression expression = mock(Expression.class); final InformationItem parameter = mock(InformationItem.class); final HasTypeRef hasTypeRef1 = mock(HasTypeRef.class); final HasTypeRef hasTypeRef2 = mock(HasTypeRef.class); final HasTypeRef hasTypeRef3 = mock(HasTypeRef.class); final HasTypeRef hasTypeRef4 = mock(HasTypeRef.class); doReturn(expression).when(binding).getExpression(); doReturn(parameter).when(binding).getParameter(); when(expression.getHasTypeRefs()).thenReturn(asList(hasTypeRef1, hasTypeRef2)); when(parameter.getHasTypeRefs()).thenReturn(asList(hasTypeRef3, hasTypeRef4)); final List<HasTypeRef> actualHasTypeRefs = binding.getHasTypeRefs(); final List<HasTypeRef> expectedHasTypeRefs = asList(hasTypeRef1, hasTypeRef2, hasTypeRef3, hasTypeRef4); assertEquals(expectedHasTypeRefs, actualHasTypeRefs); }