@Test
public void testJoin() throws RepositoryException {

    QueryObjectModelFactory delegate = mock(QueryObjectModelFactory.class);
    QueryObjectModelFactoryFacade<Session> facade = getFacade(delegate);
    final Join value = mock(Join.class);
    final Source arg1 = mock(Source.class);
    final Source arg2 = mock(Source.class);
    final String arg3 = "arg3";
    final JoinCondition arg4 = mock(JoinCondition.class);
    when(delegate.join(arg1, arg2, arg3, arg4)).thenReturn(value);
    assertSame("is same value", value, facade.join(arg1, arg2, arg3, arg4));
}