@Test
 public void testMissingConfiguration() {
   try {
     Db4oDaoSupport dao = new Db4oDaoSupport() {};
     dao.afterPropertiesSet();
     Assert.fail(
         "Should have thrown IllegalArgumentException because neither #setObjectContainer nor #setTemplate have been invoked");
   } catch (IllegalArgumentException ex) {
     // expected
   }
 }
 /*
  * Test method for 'org.db4ospring.support.Db4oDaoSupport.checkDaoConfig'
  */
 public void testMissingConfiguration() {
   containerControl.replay();
   templateControl.replay();
   try {
     Db4oDaoSupport dao = new Db4oDaoSupport() {};
     dao.afterPropertiesSet();
     fail(
         "Should have thrown IllegalArgumentException because neither #setObjectContainer nor #setTemplate have been invoked");
   } catch (IllegalArgumentException ex) {
     // it's ok. We expect this exception to be thrown
   }
 }
  @Test
  public void testConfigureWithObjectContainer() {
    Db4oDaoSupport dao = new Db4oDaoSupport() {};
    dao.setObjectContainer(container);
    dao.afterPropertiesSet();

    Assert.assertNotNull(dao.getDb4oTemplate());
    Assert.assertEquals(container, dao.getDb4oTemplate().getObjectContainer());
    Assert.assertEquals(container, dao.getObjectContainer());
  }
  @Test
  public void testConfigureWithTemplate() {
    when(template.getObjectContainer()).thenReturn(container);

    Db4oDaoSupport dao = new Db4oDaoSupport() {};
    dao.setDb4oTemplate(template);
    dao.afterPropertiesSet();

    Assert.assertEquals(template, dao.getDb4oTemplate());
    Assert.assertEquals(container, dao.getDb4oTemplate().getObjectContainer());
    Assert.assertEquals(container, dao.getObjectContainer());
  }
  /*
   * Test method for
   * 'org.db4ospring.support.Db4oDaoSupport.setObjectContainer'
   */
  public void testConfigureWithObjectContainer() {
    containerControl.replay();
    templateControl.replay();

    Db4oDaoSupport dao = new Db4oDaoSupport() {};
    dao.setObjectContainer(container);
    // must not throw an exception
    dao.afterPropertiesSet();

    assertNotNull(dao.getDb4oTemplate());
    assertEquals(container, dao.getDb4oTemplate().getObjectContainer());
    assertEquals(container, dao.getObjectContainer());
  }
  /*
   * Test method for 'org.db4ospring.support.Db4oDaoSupport.setDb4oTemplate'
   */
  public void testConfigureWithTemplate() {
    templateControl.expectAndReturn(template.getObjectContainer(), container, 2);

    containerControl.replay();
    templateControl.replay();

    Db4oDaoSupport dao = new Db4oDaoSupport() {};
    dao.setDb4oTemplate(template);
    dao.afterPropertiesSet();

    assertEquals(template, dao.getDb4oTemplate());
    assertEquals(container, dao.getObjectContainer());
    assertEquals(container, dao.getDb4oTemplate().getObjectContainer());
  }