### Question:
AbstractJcrProperty extends AbstractJcrItem implements Property, Comparable<Property> { public final void accept( ItemVisitor visitor ) throws RepositoryException { CheckArg.isNotNull(visitor, "visitor"); checkSession(); visitor.visit(this); } AbstractJcrProperty( SessionCache cache,
                         AbstractJcrNode node,
                         Name name ); abstract boolean isMultiple(); final void accept( ItemVisitor visitor ); int getType(); final JcrPropertyDefinition getDefinition(); final String getName(); final AbstractJcrNode getParent(); final String getPath(); final boolean isModified(); final boolean isNew(); final boolean isNode(); @Override final boolean isSame( Item otherItem ); void refresh( boolean keepChanges ); void remove(); void save(); int compareTo( Property that ); @Override String toString();  }### Answer:
@Test public void shouldAllowVisitation() throws Exception { ItemVisitor visitor = Mockito.mock(ItemVisitor.class); altimaModel.accept(visitor); Mockito.verify(visitor).visit(altimaModel); }
@Test( expected = IllegalArgumentException.class ) public void shouldNotAllowVisitationIfNoVisitor() throws Exception { altimaModel.accept(null); }