package org.ovirt.engine.core.dao;
import static org.junit.Assert.*;
import java.util.List;
import java.util.Random;
import org.junit.Before;
import org.junit.Test;
import org.ovirt.engine.core.common.businessentities.bookmarks;
import org.ovirt.engine.core.compat.Guid;
/**
* <code>BookmarkDAOTest</code> performs tests against the {@link BookmarkDAO} type.
*
*
*/
public class BookmarkDAOTest extends BaseDAOTestCase {
private static final int BOOKMARK_COUNT = 2;
private static final int BOOKMARK_MAX_RANDOM_NUMBER = 10000;
private BookmarkDAO dao;
private bookmarks new_bookmark;
private bookmarks existing_bookmark;
@Override
@Before
public void setUp() throws Exception {
super.setUp();
dao = prepareDAO(dbFacade.getBookmarkDAO());
// create some test data
new_bookmark = new bookmarks();
Random r = new Random(System.currentTimeMillis());
new_bookmark.setbookmark_name("newbookmarkname"+ (r.nextInt() % BOOKMARK_MAX_RANDOM_NUMBER));
new_bookmark.setbookmark_value("newbookmarkvalue");
existing_bookmark = dao.get(new Guid("a4affabf-7b45-4a6c-b0a9-107d0bbe265e"));
}
/**
* Ensures that if the id is invalid then no bookmark is returned.
*/
@Test
public void testGetWithInvalidId() {
bookmarks result = dao.get(Guid.NewGuid());
assertNull(result);
}
/**
* Ensures that, if the id is valid, then retrieving a bookmark works as expected.
*/
@Test
public void testGet() {
bookmarks result = dao.get(existing_bookmark.getbookmark_id());
assertNotNull(result);
assertEquals(existing_bookmark.getbookmark_id(),
result.getbookmark_id());
}
/**
* Ensures that, if the supplied name is invalid, then no bookmark is returned.
*/
@Test
public void testGetByNameWithInvalidName() {
bookmarks result = dao.getByName("thisnameisinvalid");
assertNull(result);
}
/**
* Ensures that finding by name works as expected.
*/
@Test
public void testGetByName() {
bookmarks result = dao.getByName(existing_bookmark.getbookmark_name());
assertNotNull(result);
assertEquals(existing_bookmark.getbookmark_name(),
result.getbookmark_name());
}
/**
* Ensures that finding all bookmarks works as expected.
*/
@Test
public void testGetAll() {
List<bookmarks> result = dao.getAll();
assertEquals(BOOKMARK_COUNT, result.size());
}
/**
* Ensures that saving a bookmark works as expected.
*/
@Test
public void testSave() {
dao.save(new_bookmark);
bookmarks result = dao.getByName(new_bookmark.getbookmark_name());
assertNotNull(result);
}
/**
* Ensures that updating a bookmark works as expected.
*/
@Test
public void testUpdate() {
existing_bookmark.setbookmark_name(existing_bookmark.getbookmark_name()
.toUpperCase());
dao.update(existing_bookmark);
bookmarks result = dao.get(existing_bookmark.getbookmark_id());
assertNotNull(result);
assertEquals(existing_bookmark.getbookmark_name(),
result.getbookmark_name());
}
/**
* Ensures that removing a bookmark works as expected.
*/
@Test
public void testRemove() {
dao.remove(existing_bookmark.getbookmark_id());
bookmarks result = dao.get(existing_bookmark.getbookmark_id());
assertNull(result);
}
}