Package org.milyn.scribe.invoker

Source Code of org.milyn.scribe.invoker.InterfaceDaoInvokerTest

/*
  Milyn - Copyright (C) 2006 - 2010

  This library is free software; you can redistribute it and/or
  modify it under the terms of the GNU Lesser General Public
  License (version 2.1) as published by the Free Software
  Foundation.

  This library is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

  See the GNU Lesser General Public License for more details:
  http://www.gnu.org/licenses/lgpl.txt
*/
package org.milyn.scribe.invoker;

import static org.mockito.Matchers.*;
import static org.mockito.Mockito.*;

import java.util.HashMap;
import java.util.Map;

import org.apache.commons.lang.NotImplementedException;
import org.milyn.scribe.Dao;
import org.milyn.scribe.invoker.DaoInvoker;
import org.milyn.scribe.invoker.InterfaceDaoInvoker;
import org.milyn.scribe.test.dao.FullInterfaceDao;
import org.milyn.scribe.test.util.BaseTestCase;
import org.mockito.Mock;
import org.testng.annotations.Test;

/**
* @author <a href="mailto:maurice.zeijen@smies.com">maurice.zeijen@smies.com</a>
*
*/
@Test(groups = "unit")
public class InterfaceDaoInvokerTest extends BaseTestCase {

  @Mock
  private FullInterfaceDao<Object> fullDao;

  @Mock
  private Dao<Object> minimumDao;

  @Test(groups = "unit")
  public void test_insert() {

    DaoInvoker invoker = new InterfaceDaoInvoker(fullDao);

    Object toPersist = new Object();

    invoker.insert(toPersist);

    verify(fullDao).insert(same(toPersist));

  }

  public void test_insert_named() {

    DaoInvoker invoker = new InterfaceDaoInvoker(fullDao);

    Object toPersist = new Object();

    invoker.insert("myInsert", toPersist);

    verify(fullDao).insert(eq("myInsert"), same(toPersist));

  }

  public void test_update() {


    DaoInvoker invoker = new InterfaceDaoInvoker(fullDao);

    Object toMerge = new Object();

    invoker.update(toMerge);

    verify(fullDao).update(same(toMerge));

  }


  public void test_update_named() {


    DaoInvoker invoker = new InterfaceDaoInvoker(fullDao);

    Object toMerge = new Object();

    invoker.update("myMerge", toMerge);

    verify(fullDao).update(eq("myMerge") ,same(toMerge));

  }

  public void test_delete() {


    DaoInvoker invoker = new InterfaceDaoInvoker(fullDao);

    Object toDelete = new Object();

    invoker.delete(toDelete);

    verify(fullDao).delete(same(toDelete));

  }

  public void test_delete_named() {


    DaoInvoker invoker = new InterfaceDaoInvoker(fullDao);

    Object toDelete = new Object();

    invoker.delete("myDelete", toDelete);

    verify(fullDao).delete(eq("myDelete"), same(toDelete));

  }

  public void test_flush() {

    DaoInvoker invoker = new InterfaceDaoInvoker(fullDao);

    invoker.flush();

    verify(fullDao).flush();

  }

  @Test(expectedExceptions = UnsupportedOperationException.class)
  public void test_flush_non_flushable_dao() {

    DaoInvoker invoker = new InterfaceDaoInvoker(minimumDao);

    invoker.flush();

  }

  public void test_lookup() {

    DaoInvoker invoker = new InterfaceDaoInvoker(fullDao);

    Map<String, Object> params = new HashMap<String, Object>();

    invoker.lookup("id", params);

    verify(fullDao).lookup(eq("id"), same(params));

  }


  @Test(expectedExceptions = UnsupportedOperationException.class)
  public void test_findBy_non_finder_dao() {

    DaoInvoker invoker = new InterfaceDaoInvoker(minimumDao);

    Map<String, Object> params = new HashMap<String, Object>();

    invoker.lookup("id", params);

  }

  public void test_lookupByQuery_map_params() {

    DaoInvoker invoker = new InterfaceDaoInvoker(fullDao);

    Map<String, Object> params = new HashMap<String, Object>();

    invoker.lookupByQuery("query", params);

    verify(fullDao).lookupByQuery(eq("query"), same(params));

  }

  public void test_lookupByQuery_array_params() {

    DaoInvoker invoker = new InterfaceDaoInvoker(fullDao);

    invoker.lookupByQuery("query", "test", "test2");

    verify(fullDao).lookupByQuery(eq("query"), eq("test"), eq("test2"));

  }


  @Test(expectedExceptions = UnsupportedOperationException.class)
  public void test_lookupByQuery_non_query_finder_dao_map_params() {

    DaoInvoker invoker = new InterfaceDaoInvoker(minimumDao);

    Map<String, Object> params = new HashMap<String, Object>();

    invoker.lookupByQuery("id", params);

  }

  @Test(expectedExceptions = UnsupportedOperationException.class)
  public void test_lookupByQuery_non_query_finder_dao_array_params() {

    DaoInvoker invoker = new InterfaceDaoInvoker(minimumDao);

    invoker.lookupByQuery("id", "test", "test2");

  }

}
TOP

Related Classes of org.milyn.scribe.invoker.InterfaceDaoInvokerTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.