List<MediaFile> searchResults;
// search by name
MediaFileFilter filter1 = new MediaFileFilter();
filter1.setName("mytest.jpg");
searchResults = mfMgr.searchMediaFiles(testWeblog, filter1);
assertTrue(searchResults.isEmpty());
MediaFileFilter filter2 = new MediaFileFilter();
filter2.setName("test_home.jpg");
searchResults = mfMgr.searchMediaFiles(testWeblog, filter2);
assertFalse(searchResults.isEmpty());
assertEquals(id2, ((MediaFile) searchResults.get(0)).getId());
assertNotNull(((MediaFile) searchResults.get(0)).getDirectory());
assertEquals("/", ((MediaFile) searchResults.get(0)).getDirectory().getPath());
MediaFileFilter filter3 = new MediaFileFilter();
filter3.setName("test_work.jpg");
searchResults = mfMgr.searchMediaFiles(testWeblog, filter3);
assertFalse(searchResults.isEmpty());
assertEquals(id1, ((MediaFile) searchResults.get(0)).getId());
// search by tag
// must be tickling an OpenJPA bug. this tag query works the
// first time and then fails the second time it is run
// MediaFileFilter filter5 = new MediaFileFilter();
// filter5.setTags(Arrays.asList("home"));
// searchResults = mfMgr.searchMediaFiles(testWeblog, filter5);
// assertFalse(searchResults.isEmpty());
// assertEquals(2, searchResults.size());
//
// MediaFileFilter filter51 = new MediaFileFilter();
// filter51.setTags(Arrays.asList("home"));
// searchResults = mfMgr.searchMediaFiles(testWeblog, filter51);
// assertFalse(searchResults.isEmpty());
// assertEquals(2, searchResults.size());
MediaFileFilter filter4 = new MediaFileFilter();
filter4.setTags(Arrays.asList("work"));
searchResults = mfMgr.searchMediaFiles(testWeblog, filter4);
assertFalse(searchResults.isEmpty());
assertEquals(1, searchResults.size());
assertEquals("test_work.jpg", ((MediaFile) searchResults.get(0)).getName());
// search by size
MediaFileFilter filter6 = new MediaFileFilter();
filter6.setSize(3000);
filter6.setSizeFilterType(MediaFileFilter.SizeFilterType.LT);
searchResults = mfMgr.searchMediaFiles(testWeblog, filter6);
assertFalse(searchResults.isEmpty());
assertEquals(1, searchResults.size());
assertEquals("test_work.jpg", ((MediaFile) searchResults.get(0)).getName());
MediaFileFilter filter7 = new MediaFileFilter();
filter7.setSize(3000);
filter7.setSizeFilterType(MediaFileFilter.SizeFilterType.EQ);
searchResults = mfMgr.searchMediaFiles(testWeblog, filter7);
assertFalse(searchResults.isEmpty());
assertEquals(1, searchResults.size());
assertEquals("test_home.jpg", ((MediaFile) searchResults.get(0)).getName());
MediaFileFilter filter8 = new MediaFileFilter();
filter8.setSize(3000);
filter8.setSizeFilterType(MediaFileFilter.SizeFilterType.GT);
searchResults = mfMgr.searchMediaFiles(testWeblog, filter8);
assertFalse(searchResults.isEmpty());
assertEquals(1, searchResults.size());
assertEquals("test_pers.jpg", ((MediaFile) searchResults.get(0)).getName());
MediaFileFilter filter9 = new MediaFileFilter();
filter9.setSize(3000);
filter9.setSizeFilterType(MediaFileFilter.SizeFilterType.LTE);
searchResults = mfMgr.searchMediaFiles(testWeblog, filter9);
assertFalse(searchResults.isEmpty());
assertEquals(2, searchResults.size());
MediaFileFilter filter10 = new MediaFileFilter();
filter10.setSize(3000);
filter10.setSizeFilterType(MediaFileFilter.SizeFilterType.GTE);
searchResults = mfMgr.searchMediaFiles(testWeblog, filter10);
assertFalse(searchResults.isEmpty());
assertEquals(2, searchResults.size());
// search by type
MediaFileFilter filter11 = new MediaFileFilter();
filter11.setType(MediaFileType.IMAGE);
searchResults = mfMgr.searchMediaFiles(testWeblog, filter11);
assertFalse(searchResults.isEmpty());
assertEquals(3, searchResults.size());
MediaFileFilter filter12 = new MediaFileFilter();
filter12.setType(MediaFileType.IMAGE);
filter12.setTags(Arrays.asList("home"));
searchResults = mfMgr.searchMediaFiles(testWeblog, filter12);
assertFalse(searchResults.isEmpty());
assertEquals(2, searchResults.size());
} finally {