/*
* gnizr is a trademark of Image Matters LLC in the United States.
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
* http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either expressed or implied. See the License
* for the specific language governing rights and limitations under the License.
*
* The Initial Contributor of the Original Code is Image Matters LLC.
* Portions created by the Initial Contributor are Copyright (C) 2007
* Image Matters LLC. All Rights Reserved.
*/
package com.gnizr.core.bookmark;
import java.util.ArrayList;
import java.util.GregorianCalendar;
import java.util.List;
import org.dbunit.dataset.IDataSet;
import org.dbunit.dataset.xml.FlatXmlDataSet;
import com.gnizr.core.GnizrCoreTestBase;
import com.gnizr.core.util.GnizrDaoUtil;
import com.gnizr.db.dao.Bookmark;
import com.gnizr.db.dao.DaoResult;
import com.gnizr.db.dao.Folder;
import com.gnizr.db.dao.FolderTag;
import com.gnizr.db.dao.Link;
import com.gnizr.db.dao.LinkTag;
import com.gnizr.db.dao.PointMarker;
import com.gnizr.db.dao.Tag;
import com.gnizr.db.dao.User;
import com.gnizr.db.dao.UserTag;
import com.gnizr.db.dao.bookmark.BookmarkDao;
import com.gnizr.db.dao.bookmark.GeometryMarkerDao;
import com.gnizr.db.dao.folder.FolderDao;
import com.gnizr.db.dao.link.LinkDao;
import com.gnizr.db.dao.tag.TagDao;
import com.gnizr.db.dao.user.UserDao;
public class TestBookmarkManager extends GnizrCoreTestBase {
private BookmarkManager manager;
private BookmarkDao bookmarkDao;
private FolderDao folderDao;
private TagDao tagDao;
private UserDao userDao;
private LinkDao linkDao;
private GeometryMarkerDao geomMarkerDao;
protected void setUp() throws Exception {
super.setUp();
manager = new BookmarkManager(getGnizrDao());
bookmarkDao = getGnizrDao().getBookmarkDao();
tagDao = getGnizrDao().getTagDao();
userDao = getGnizrDao().getUserDao();
linkDao = getGnizrDao().getLinkDao();
folderDao = getGnizrDao().getFolderDao();
geomMarkerDao = getGnizrDao().getGeometryMarkerDao();
}
protected void tearDown() throws Exception {
super.tearDown();
}
@Override
protected IDataSet getDataSet() throws Exception {
return new FlatXmlDataSet(TestBookmarkManager.class
.getResourceAsStream("/TestBookmarkManager-input.xml"));
}
public void testAddBookmark() throws Exception {
User gUser = new User("hchen1");
Bookmark gBookmark = new Bookmark();
gBookmark.setUser(gUser);
gBookmark.setLink(new Link("http://www.umbc.edu"));
gBookmark.setTitle("UMBC");
gBookmark.setNotes("UMBC homepage");
int id = manager.addBookmark(gBookmark);
assertTrue(id > 0);
BookmarkDao bookmarkDao = getGnizrDao().getBookmarkDao();
GnizrDaoUtil.fillObject(bookmarkDao,userDao,linkDao,gBookmark);
// ensure we can delete and add the same bookmark
assertTrue(manager.deleteBookmark(gBookmark));
assertTrue((manager.addBookmark(gBookmark)>0));
}
public void testDeleteBookmark() throws Exception{
User user = new User(2);
Link link = new Link(204);
Bookmark bookmark = new Bookmark(user,link);
bookmark.setTitle("webwork learning");
bookmark.setTags("webwork programming learning");
assertTrue((manager.addBookmark(bookmark)>0));
bookmark = bookmarkDao.findBookmark(user, link).get(0);
assertNotNull(bookmark);
UserTag ut = new UserTag("hchen1","learning");
GnizrDaoUtil.fillId(tagDao,userDao,ut);
GnizrDaoUtil.fillObject(tagDao, userDao, ut);
assertEquals((1),ut.getCount());
assertEquals((1),ut.getTag().getCount());
LinkTag lt = new LinkTag("http://www.learntechnology.net/webwork-crud-lm.do","learning");
GnizrDaoUtil.fillId(tagDao, linkDao,lt);
GnizrDaoUtil.fillObject(tagDao, linkDao,lt);
assertEquals((1),lt.getCount());
assertEquals((1),lt.getTag().getCount());
assertTrue(manager.deleteBookmark(bookmark));
List<Bookmark> r = bookmarkDao.findBookmark(user, link);
assertTrue(r.isEmpty());
GnizrDaoUtil.fillId(tagDao,userDao,ut);
GnizrDaoUtil.fillObject(tagDao, userDao, ut);
assertEquals((0),ut.getCount());
assertEquals((0),ut.getTag().getCount());
GnizrDaoUtil.fillId(tagDao, linkDao,lt);
GnizrDaoUtil.fillObject(tagDao, linkDao,lt);
assertEquals((0),lt.getCount());
assertEquals((0),lt.getTag().getCount());
}
public void testUpdateBookmark() throws Exception{
Bookmark bm = bookmarkDao.getBookmark(300);
assertEquals(202,bm.getLink().getId());
// change the link that this bookmark ref
Link link = new Link(204);
bm.setLink(link);
// change tag counts
bm.setTags("foobar");
// change the URL link that this bookmark reference
Link ln = new Link("http://newlink.com");
bm.setLink(ln);
assertTrue(manager.updateBookmark(bm));
bm = bookmarkDao.getBookmark(300);
GnizrDaoUtil.fillObject(bookmarkDao, userDao, linkDao, bm);
assertEquals("foobar",bm.getTags());
Tag cnn = tagDao.findTag("cnn").get(0);
assertEquals(0,cnn.getCount());
Tag news = tagDao.findTag("news").get(0);
assertEquals(0,news.getCount());
Tag foobar = tagDao.findTag("foobar").get(0);
assertEquals(1,foobar.getCount());
UserTag foobar_u = tagDao.findUserTag(new User(1), foobar).get(0);
assertEquals(1,foobar_u.getCount());
Link bmLink = bm.getLink();
assertEquals(ln.getUrl(),bmLink.getUrl());
assertEquals(Link.computeUrlHash(ln.getUrl()),bmLink.getUrlHash());
// change bookmark's notes
bm.setNotes("hello world");
// erase the id of the link id. make sure
// BookmarkManager knows how to work out id from
// the URL of the link.
bm.getLink().setId(-1);
assertTrue(manager.updateBookmark(bm));
bm = bookmarkDao.getBookmark(300);
GnizrDaoUtil.fillObject(bookmarkDao, userDao, linkDao, bm);
assertEquals("hello world",bm.getNotes());
assertEquals(ln.getUrl(),bm.getLink().getUrl());
assertEquals(Link.computeUrlHash(ln.getUrl()),bm.getLink().getUrlHash());
assertTrue((bm.getLink().getId() > 0));
}
/**
* Tests the count of indivdiual user tags are properly updated
* after each update bookmark transaction.
* @throws Exception
*/
public void testUpdateBookmark2() throws Exception{
Bookmark bm = manager.getBookmark(300);
bm.setTags("news foobar abdc");
assertTrue(manager.updateBookmark(bm));
UserTag ut = tagDao.findUserTag(bm.getUser(),new Tag(5)).get(0);
assertEquals(1,ut.getCount());
Tag foobar = tagDao.findTag("foobar").get(0);
assertEquals(1,foobar.getCount());
Tag abdc = tagDao.findTag("abdc").get(0);
assertEquals(1,abdc.getCount());
Tag cnn = tagDao.findTag("cnn").get(0);
assertEquals(0,cnn.getCount());
UserTag userCnn = tagDao.findUserTag(bm.getUser(),cnn).get(0);
assertEquals(0,userCnn.getCount());
UserTag userFoobar = tagDao.findUserTag(bm.getUser(),foobar).get(0);
assertEquals(1,userFoobar.getCount());
bm.setTags("");
assertTrue(manager.updateBookmark(bm));
ut = tagDao.findUserTag(bm.getUser(),new Tag(5)).get(0);
assertEquals(0,ut.getCount());
}
public void testGetBookmark() throws Exception{
Bookmark bm = manager.getBookmark(300);
assertNotNull(bm.getTitle());
assertNotNull(bm.getUser().getUsername());
assertNotNull(bm.getLink().getUrl());
assertEquals("gnizr", bm.getUser().getFullname());
}
public void testGetBookmarkId() throws Exception{
String url = "http://zirr.us/";
int id = manager.getBookmarkId(new User("gnizr"),url);
assertEquals(300,id);
id = manager.getBookmarkId(new User(1), url);
assertEquals(300,id);
}
public void testUpdateBookmark3() throws Exception{
Bookmark bm1 = new Bookmark(new User(2),new Link(204));
bm1.setTitle("bookmark_1_title");
bm1.setTags("tag1 tag2");
Bookmark bm2 = new Bookmark(new User(3),new Link(204));
bm2.setTitle("bookmark_2_title");
bm2.setTags("tag1");
int id1 = manager.addBookmark(bm1);
int id2 = manager.addBookmark(bm2);
assertTrue((id1 > 0));
assertTrue((id2 > 0));
bm1 = manager.getBookmark(id1);
bm2 = manager.getBookmark(id2);
bm1.setTags("tag1");
assertTrue(manager.updateBookmark(bm1));
Tag tag1 = tagDao.findTag("tag1").get(0);
assertEquals(2,tag1.getCount());
UserTag user1tag1 = tagDao.findUserTag(new User(2), tag1).get(0);
assertEquals(1,user1tag1.getCount());
bm2.setTags("");;
assertTrue(manager.updateBookmark(bm2));
Tag tag2 = tagDao.findTag("tag2").get(0);
assertEquals(0,tag2.getCount());
}
public void testUpdateBookmark4() throws Exception{
Bookmark bm1 = new Bookmark(new User(2),new Link(204));
bm1.setTitle("bookmark_1_title");
bm1.setTags("loc:columbia,md locality:baltimore,maryland");
Bookmark bm2 = new Bookmark(new User(3),new Link(204));
bm2.setTitle("bookmark_2_title");
bm2.setTags("loc:columbia,md");
int id1 = manager.addBookmark(bm1);
int id2 = manager.addBookmark(bm2);
assertTrue((id1 > 0));
assertTrue((id2 > 0));
bm1 = manager.getBookmark(id1);
bm2 = manager.getBookmark(id2);
bm1.setTags("locality:baltimore,maryland");
assertTrue(manager.updateBookmark(bm1));
Tag tag1 = tagDao.findTag("loc:columbia,md").get(0);
assertEquals(1,tag1.getCount());
UserTag user1tag1 = tagDao.findUserTag(new User(2), tag1).get(0);
assertEquals(0,user1tag1.getCount());
bm2.setTags("");;
assertTrue(manager.updateBookmark(bm2));
tag1 = tagDao.findTag("loc:columbia,md").get(0);
assertEquals(0,tag1.getCount());
}
public void testUpdateBookmark5() throws Exception{
Bookmark bm300 = manager.getBookmark(300);
bm300.setTags("abc.df 12/13 \\019 ..ppp [0-x] | ?11?? *** p+ (.*)");
assertTrue(manager.updateBookmark(bm300));
bm300 = manager.getBookmark(300);
assertEquals("abc.df 12/13 019 ..ppp [0-x] | 11 *** p+ (.*)",bm300.getTags());
assertEquals(10,bm300.getTagList().size());
bm300.setTags("abc df abc 12 13 \\ 019 ppp ppp [ 0-x ] | ?11 ?? * ** p + ( .* )");
assertTrue(manager.updateBookmark(bm300));
bm300 = manager.getBookmark(300);
assertEquals("abc df 12 13 019 ppp [ 0-x ] | 11 * ** p + ( )",bm300.getTags());
assertEquals(17,bm300.getTagList().size());
Tag tag1 = tagDao.findTag("abc").get(0);
assertEquals(1,tag1.getCount());
Tag tag2 = tagDao.findTag("df").get(0);
assertEquals(1,tag2.getCount());
assertEquals(0,tagDao.findTag("\\").size());
Tag tag4 = tagDao.findTag("(").get(0);
assertEquals(1,tag4.getCount());
Tag tag5 = tagDao.findTag("019").get(0);
assertEquals(1,tag5.getCount());
}
public void testRenameTag() throws Exception {
// get an existing bookmark
Bookmark bmark300 = manager.getBookmark(300);
assertEquals("cnn",bmark300.getTags());
// verify the baseline data
Tag cnnTag = tagDao.findTag("cnn").get(0);
Tag newsTag = tagDao.findTag("news").get(0);
assertEquals(1,cnnTag.getCount());
assertEquals(0,newsTag.getCount());
UserTag cnnUserTag = tagDao.findUserTag(new User(1),cnnTag).get(0);
assertEquals(1,cnnUserTag.getCount());
assertEquals(1,tagDao.findUserTag(new User(1),newsTag).size());
// rename "cnn" to "news"
boolean okay = manager.renameTag(new User(1),"cnn",new String[]{"news"});
assertTrue(okay);
// should differ from the baseline data
cnnTag = tagDao.findTag("cnn").get(0);
assertEquals(0,cnnTag.getCount());
newsTag = tagDao.findTag("news").get(0);
assertEquals(1,newsTag.getCount());
UserTag ut = GnizrDaoUtil.getUserTag(tagDao,new User(1), new Tag(4));
assertNull(ut);
ut = GnizrDaoUtil.getUserTag(tagDao, new User(1), new Tag(5));
assertNotNull(ut);
}
public void testRenameTag2() throws Exception{
// get an existing bookmark
Bookmark bmark300 = manager.getBookmark(300);
assertEquals("cnn",bmark300.getTags());
// verify the baseline data
Tag cnnTag = tagDao.findTag("cnn").get(0);
Tag newsTag = tagDao.findTag("news2").get(0);
assertEquals(1,cnnTag.getCount());
assertEquals(0,newsTag.getCount());
UserTag cnnUserTag = tagDao.findUserTag(new User(1),cnnTag).get(0);
assertEquals(1,cnnUserTag.getCount());
assertEquals(0,tagDao.findUserTag(new User(1),newsTag).size());
// rename "cnn" to "news"
boolean okay = manager.renameTag(new User(1),"cnn",new String[]{"breakingnews","cnn","headlines"});
assertTrue(okay);
cnnTag = tagDao.findTag("cnn").get(0);
assertEquals(1,cnnTag.getCount());
Tag breakingnewsTag = tagDao.findTag("breakingnews").get(0);
assertEquals(1,breakingnewsTag.getCount());
Tag headlinesTag = tagDao.findTag("headlines").get(0);
assertEquals(1,headlinesTag.getCount());
cnnUserTag = tagDao.findUserTag(new User(1),cnnTag).get(0);
assertEquals(1,cnnUserTag.getCount());
UserTag breakingnewsUserTag = tagDao.findUserTag(new User(1),breakingnewsTag).get(0);
assertEquals(1,breakingnewsUserTag.getCount());
UserTag headlinesUserTag = tagDao.findUserTag(new User(1),headlinesTag).get(0);
assertEquals(1,headlinesUserTag.getCount());
}
public void testRenameTag3() throws Exception{
Bookmark bm = new Bookmark(new User(1),new Link(204));
bm.setTags("cnn");
int bmId = manager.addBookmark(bm);
assertTrue((bmId >0));
boolean okay = manager.renameTag(new User(1),"cnn",new String[]{"cnn_news"});
assertTrue(okay);
Tag cnn_newsTag = tagDao.findTag("cnn_news").get(0);
assertEquals(2,cnn_newsTag.getCount());
}
public void testRenameTag4() throws Exception{
Bookmark bm = new Bookmark(new User(1),new Link(204));
bm.setTags("java.logging");
bm.setTitle("foio");
int id = manager.addBookmark(bm);
assertTrue((id > 0));
boolean okay = manager.renameTag(new User(1),"java.logging",new String[]{"java","logging"});
assertTrue(okay);
Tag javaLoggingTag = tagDao.findTag("java.logging").get(0);
assertEquals(0,javaLoggingTag.getCount());
Tag javaTag = tagDao.findTag("java").get(0);
assertEquals(1,javaTag.getCount());
Tag loggingTag = tagDao.findTag("logging").get(0);
assertEquals(1,loggingTag.getCount());
}
public void testRenameTag5() throws Exception{
Bookmark bm300 = manager.getBookmark(300);
bm300.setTags("tag1 tag2 tag3");
assertTrue(manager.updateBookmark(bm300));
bm300 = manager.getBookmark(300);
assertTrue(bm300.getTagList().contains("tag1"));
assertTrue(bm300.getTagList().contains("tag2"));
assertTrue(bm300.getTagList().contains("tag3"));
List<FolderTag> fTags = folderDao.findTagsInFolder(new Folder(1), 0, FolderDao.SORT_BY_ALPHA, FolderDao.ASCENDING);
assertEquals(0,fTags.size());
List<Bookmark> bmarks = new ArrayList<Bookmark>();
bmarks.add(bm300);
boolean[] opOkay = folderDao.addBookmarks(new Folder(1), bmarks,GregorianCalendar.getInstance().getTime());
assertEquals(true,opOkay[0]);
fTags = folderDao.findTagsInFolder(new Folder(1), 1, FolderDao.SORT_BY_ALPHA, FolderDao.ASCENDING);
assertEquals(3,fTags.size());
boolean okay = manager.renameTag(new User(1), "tag1", new String[]{"tag0"});
assertTrue(okay);
okay = manager.renameTag(new User(1), "tag2", new String[]{"tag0"});
assertTrue(okay);
okay = manager.renameTag(new User(1), "tag3", new String[]{"tag3","web"});
assertTrue(okay);
fTags = folderDao.findTagsInFolder(new Folder(1), 1, FolderDao.SORT_BY_ALPHA, FolderDao.ASCENDING);
assertEquals(3,fTags.size());
FolderTag t1 = fTags.get(0);
FolderTag t2 = fTags.get(1);
FolderTag t3 = fTags.get(2);
assertEquals("tag0",t1.getTag().getLabel());
assertEquals("tag3",t2.getTag().getLabel());
assertEquals("web",t3.getTag().getLabel());
assertEquals(1,t1.getCount());
assertEquals(1,t2.getCount());
assertEquals(1,t3.getCount());
}
private class MyTestBookmarkListener implements BookmarkListener{
/**
*
*/
private static final long serialVersionUID = -3917697198455763529L;
private List<Bookmark> notifiedBookmarks = new ArrayList<Bookmark>();
private List<Bookmark> notifiedOldBookmarks = new ArrayList<Bookmark>();
public List<Bookmark> getNotifiedOldBookmarks(){
return notifiedOldBookmarks;
}
public List<Bookmark> getNotifiedBookmarks(){
return notifiedBookmarks;
}
public void notifyAdded(BookmarkManager manager, Bookmark bookmark) throws Exception {
notifiedBookmarks.add(bookmark);
}
public void notifyDeleted(BookmarkManager manager, Bookmark bookmark) throws Exception {
notifiedBookmarks.add(bookmark);
}
public void notifyUpdated(BookmarkManager manager, Bookmark oldBookmark, Bookmark newBookmark) throws Exception {
notifiedBookmarks.add(newBookmark);
notifiedOldBookmarks.add(oldBookmark);
}
}
public void testRenameTags6() throws Exception{
MyTestBookmarkListener listener = new MyTestBookmarkListener();
manager.addBookmarkListener(listener);
Bookmark bm300 = manager.getBookmark(300);
List<String> tags = bm300.getTagList();
assertTrue(tags.contains("cnn"));
assertEquals(1,tags.size());
boolean isOkay = manager.renameTag(bm300.getUser(), "cnn", new String[]{"gn:geonames=USA","foobar_1"});
assertTrue(isOkay);
manager.shutdown();
List<Bookmark> notifiedNew = listener.getNotifiedBookmarks();
assertEquals(1,notifiedNew.size());
tags = notifiedNew.get(0).getTagList();
assertTrue(tags.contains("gn:geonames=USA"));
assertTrue(tags.contains("foobar_1"));
List<Bookmark> notifiedOld = listener.getNotifiedOldBookmarks();
assertEquals(1,notifiedOld.size());
assertEquals("cnn",notifiedOld.get(0).getTags());
}
public void testDeleteTag() throws Exception{
MyTestBookmarkListener listener = new MyTestBookmarkListener();
manager.addBookmarkListener(listener);
boolean okay = manager.deleteTag(new User(1),"cnn");
assertTrue(okay);
Tag cnnTag = tagDao.findTag("cnn").get(0);
assertEquals(0,cnnTag.getCount());
Bookmark bm = manager.getBookmark(300);
assertEquals("",bm.getTags());
manager.shutdown();
List<Bookmark> newBookmarks = listener.getNotifiedBookmarks();
List<Bookmark> oldBookmarks = listener.getNotifiedOldBookmarks();
assertEquals(newBookmarks.size(),oldBookmarks.size());
bm = newBookmarks.get(0);
assertEquals("",bm.getTags());
bm = oldBookmarks.get(0);
assertEquals("cnn",bm.getTags());
}
public void testDeleteTag2() throws Exception{
UserTag ut = GnizrDaoUtil.getUserTag(tagDao,new User(1),new Tag(5));
assertEquals(0,ut.getCount());
boolean okay = manager.deleteTag(new User(1),"news");
assertTrue(okay);
ut = GnizrDaoUtil.getUserTag(tagDao, new User(1), new Tag(5));
assertNull(ut);
}
public void testUpdateBookmark6() throws Exception{
Bookmark bm300 = manager.getBookmark(300);
bm300.setTags("CNN");
assertTrue(manager.updateBookmark(bm300));
bm300 = manager.getBookmark(300);
assertEquals("CNN",bm300.getTags());
Tag CNN = tagDao.findTag("CNN").get(0);
assertEquals(1,CNN.getCount());
Tag cnn = tagDao.findTag("cnn").get(0);
assertEquals(0,cnn.getCount());
}
public void testAddPointMarkers() throws Exception{
PointMarker pm1 = new PointMarker();
pm1.setMarkerIconId(5);
pm1.setNotes("marker1");
pm1.setPoint(10,11);
int id = geomMarkerDao.createPointMarker(pm1);
assertTrue(id > 0);
pm1.setId(id);
PointMarker pm2 = new PointMarker();
pm2.setMarkerIconId(2);
pm2.setNotes("marker2");
pm2.setPoint(20.03,21.11);
List<PointMarker> ptMarkers = new ArrayList<PointMarker>();
ptMarkers.add(pm1);
ptMarkers.add(pm2);
Bookmark bm300 = manager.getBookmark(300);
List<PointMarker> addedPtMarkers = manager.addPointMarkers(bm300, ptMarkers);
assertEquals(2,addedPtMarkers.size());
assertEquals(id,addedPtMarkers.get(0).getId());
assertTrue(addedPtMarkers.get(1).getId() > 0);
ptMarkers = geomMarkerDao.listPointMarkers(bm300);
assertEquals(2,ptMarkers.size());
for(PointMarker pm : ptMarkers){
if(pm.getId() == pm1.getId()){
assertEquals(5,pm.getMarkerIconId());
assertEquals("marker1",pm.getNotes());
assertEquals(10.0,pm.getPoint().getX());
assertEquals(11.0,pm.getPoint().getY());
}else if(pm.getId() == pm2.getId()){
assertEquals(2,pm2.getMarkerIconId());
assertEquals("marker2",pm2.getNotes());
assertEquals(20.03,pm2.getPoint().getX());
assertEquals(21.11,pm2.getPoint().getY());
}else{
assertFalse(true);
}
}
pm1 = ptMarkers.get(0);
pm2 = ptMarkers.get(1);
assertTrue(geomMarkerDao.deletePointMarker(pm1.getId()));
assertTrue(geomMarkerDao.deletePointMarker(pm2.getId()));
}
public void testRemovePointMarkers() throws Exception{
PointMarker pm1 = new PointMarker();
pm1.setMarkerIconId(5);
pm1.setNotes("marker1");
pm1.setPoint(10,11);
int id = geomMarkerDao.createPointMarker(pm1);
assertTrue(id > 0);
pm1.setId(id);
PointMarker pm2 = new PointMarker();
pm2.setMarkerIconId(2);
pm2.setNotes("marker2");
pm2.setPoint(20.03,21.11);
List<PointMarker> ptMarkers = new ArrayList<PointMarker>();
ptMarkers.add(pm1);
ptMarkers.add(pm2);
Bookmark bm300 = manager.getBookmark(300);
List<PointMarker> addedPtMarkers = manager.addPointMarkers(bm300, ptMarkers);
assertEquals(2,addedPtMarkers.size());
ptMarkers = geomMarkerDao.listPointMarkers(bm300);
assertEquals(2,ptMarkers.size());
ptMarkers.clear();
ptMarkers.add(pm1);
List<PointMarker> rmved = manager.removePointMarkers(bm300,ptMarkers);
assertEquals(1,rmved.size());
ptMarkers = geomMarkerDao.listPointMarkers(bm300);
assertEquals(1,ptMarkers.size());
pm2 = ptMarkers.get(0);
assertEquals(2,pm2.getMarkerIconId());
assertEquals("marker2",pm2.getNotes());
assertEquals(20.03,pm2.getPoint().getX());
assertEquals(21.11,pm2.getPoint().getY());
assertTrue(geomMarkerDao.deletePointMarker(pm2.getId()));
assertNull(geomMarkerDao.getPointMarker(pm1.getId()));
}
public void testGetPointMarkers() throws Exception{
PointMarker pm1 = new PointMarker();
pm1.setMarkerIconId(5);
pm1.setNotes("marker1");
pm1.setPoint(10,11);
int id = geomMarkerDao.createPointMarker(pm1);
assertTrue(id > 0);
pm1.setId(id);
PointMarker pm2 = new PointMarker();
pm2.setMarkerIconId(2);
pm2.setNotes("marker2");
pm2.setPoint(20.03,21.11);
List<PointMarker> ptMarkers = new ArrayList<PointMarker>();
ptMarkers.add(pm1);
ptMarkers.add(pm2);
Bookmark bm300 = manager.getBookmark(300);
List<PointMarker> addedPtMarkers = manager.addPointMarkers(bm300, ptMarkers);
assertEquals(2,addedPtMarkers.size());
ptMarkers = manager.getPointMarkers(bm300);
assertEquals(2,ptMarkers.size());
for(PointMarker pm : ptMarkers){
if(pm.getId() == pm1.getId()){
assertEquals(5,pm.getMarkerIconId());
assertEquals("marker1",pm.getNotes());
assertEquals(10.0,pm.getPoint().getX());
assertEquals(11.0,pm.getPoint().getY());
}else if(pm.getId() == pm2.getId()){
assertEquals(2,pm2.getMarkerIconId());
assertEquals("marker2",pm2.getNotes());
assertEquals(20.03,pm2.getPoint().getX());
assertEquals(21.11,pm2.getPoint().getY());
}else{
assertFalse(true);
}
}
assertTrue(geomMarkerDao.deletePointMarker(ptMarkers.get(0).getId()));
assertTrue(geomMarkerDao.deletePointMarker(ptMarkers.get(1).getId()));
}
public void testPageBookmarkHasGeomMarker() throws Exception{
DaoResult<Bookmark> result = manager.pageBookmarkHasGeomMarker(new User(1), 0,10);
assertEquals(0,result.getSize());
assertEquals(0,result.getResult().size());
PointMarker pm1 = new PointMarker();
pm1.setMarkerIconId(5);
pm1.setNotes("marker1");
pm1.setPoint(10,11);
int id = geomMarkerDao.createPointMarker(pm1);
assertTrue(id > 0);
pm1.setId(id);
PointMarker pm2 = new PointMarker();
pm2.setMarkerIconId(2);
pm2.setNotes("marker2");
pm2.setPoint(20.03,21.11);
List<PointMarker> ptMarkers = new ArrayList<PointMarker>();
ptMarkers.add(pm1);
ptMarkers.add(pm2);
Bookmark bm300 = manager.getBookmark(300);
List<PointMarker> addedPtMarkers = manager.addPointMarkers(bm300, ptMarkers);
assertEquals(2,addedPtMarkers.size());
ptMarkers = manager.getPointMarkers(bm300);
result = manager.pageBookmarkHasGeomMarker(new User(1), 0, 10);
assertEquals(1,result.getSize());
assertTrue(geomMarkerDao.deletePointMarker(ptMarkers.get(0).getId()));
assertTrue(geomMarkerDao.deletePointMarker(ptMarkers.get(1).getId()));
}
}