Package com.gnizr.core.util

Source Code of com.gnizr.core.util.TestGnizrDaoUtil

/*
* 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.util;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;

import org.dbunit.dataset.IDataSet;
import org.dbunit.dataset.xml.FlatXmlDataSet;

import com.gnizr.core.GnizrCoreTestBase;
import com.gnizr.core.vocab.TimeRange;
import com.gnizr.db.dao.Bookmark;
import com.gnizr.db.dao.Link;
import com.gnizr.db.dao.LinkTag;
import com.gnizr.db.dao.Tag;
import com.gnizr.db.dao.TagAssertion;
import com.gnizr.db.dao.TagProperty;
import com.gnizr.db.dao.User;
import com.gnizr.db.dao.UserTag;
import com.gnizr.db.dao.bookmark.BookmarkDao;
import com.gnizr.db.dao.link.LinkDao;
import com.gnizr.db.dao.tag.TagAssertionDao;
import com.gnizr.db.dao.tag.TagDao;
import com.gnizr.db.dao.tag.TagPropertyDao;
import com.gnizr.db.dao.user.UserDao;
import com.gnizr.db.vocab.MIMEType;

public class TestGnizrDaoUtil extends GnizrCoreTestBase {

  private TagAssertionDao tagAssertionDao;
  private TagDao tagDao;
  private TagPropertyDao tagPrptDao;
  private UserDao userDao;
  private BookmarkDao bookmarkDao;
  private LinkDao linkDao;
 
  @Override
  protected IDataSet getDataSet() throws Exception {
    return new FlatXmlDataSet(TestGnizrDaoUtil.class.getResourceAsStream("/TestGnizrDaoUtil-input.xml"));
  }

  protected void setUp() throws Exception {
    super.setUp();
    userDao = getGnizrDao().getUserDao();
    tagDao = getGnizrDao().getTagDao();
    tagPrptDao = getGnizrDao().getTagPropertyDao();
    tagAssertionDao = getGnizrDao().getTagAssertionDao();
    linkDao = getGnizrDao().getLinkDao();
    bookmarkDao = getGnizrDao().getBookmarkDao();
  }

  public void testFillIdBookmark() throws Exception{
    User user = new User(1);
    Link link = new Link("http://zirr.us/");
    Bookmark bmark = new Bookmark(user,link);
    GnizrDaoUtil.fillId(bookmarkDao, userDao, linkDao, bmark);
    assertEquals((300),bmark.getId());
    assertEquals((1),bmark.getUser().getId());
    assertEquals((202),bmark.getLink().getId());
  }
 
  public void testFillIdLink() throws Exception{
    Link link = new Link("http://zirr.us/");
    GnizrDaoUtil.fillId(linkDao, link);
    assertEquals((202),link.getId());
  }
 
  public void testFillIdLinkTag() throws Exception{
    Tag tag = new Tag("web");
    Link link = new Link(202);
    LinkTag linkTag = new LinkTag(link,tag);
    GnizrDaoUtil.fillId(tagDao,linkDao,linkTag);
    assertEquals((1),linkTag.getId());
    assertEquals((3),linkTag.getTag().getId());
    assertEquals((202),linkTag.getLink().getId());   
  }
 
 
  public void testFillIdTag() throws Exception{
    Tag tag = new Tag("wii",(0));   
    GnizrDaoUtil.fillId(tagDao,tag);
    assertEquals((2),tag.getId());
    assertEquals("wii",tag.getLabel());
    assertEquals((0),tag.getCount());
   
    boolean caughtException = false;
    try{
      GnizrDaoUtil.fillId(tagDao, new Tag("fooabre",(30)));
    }catch(Exception e){
      caughtException = true;
    }
    assertTrue(caughtException);
  }
 
  public void testFillIdTagAssertion() throws Exception{
    User user = new User("hchen1");
    UserTag subject = new UserTag("hchen1","webwork");
    TagProperty property = new TagProperty(3);
    UserTag object = new UserTag(2);
    TagAssertion asrt = new TagAssertion(subject,property,object,user);
    GnizrDaoUtil.fillId(tagAssertionDao, tagPrptDao, tagDao, userDao,asrt);
    assertEquals((1),asrt.getUser().getId());
    assertEquals((1),asrt.getSubject().getId());
    assertEquals((2),asrt.getObject().getId());
    assertEquals((3),asrt.getProperty().getId());
  }
 
  public void testFillIdTagProperty() throws Exception{
    TagProperty tp = new TagProperty();
    tp.setNamespacePrefix("skos");
    tp.setName("broader");
    GnizrDaoUtil.fillId(tagPrptDao, tp);
    assertEquals((2),tp.getId());
  }
 
  public void testFillIdUser() throws Exception{
    User user = new User("hchen1");
    GnizrDaoUtil.fillId(userDao, user);
    assertEquals((1),user.getId());
    assertEquals("hchen1",user.getUsername());
    assertNull(user.getEmail());
  }
 
  public void testFillIdUserTag() throws Exception{
    UserTag userTag = new UserTag();
    userTag.setTag(new Tag("webwork",(0)));
    userTag.setUser(new User("hchen1"));
    GnizrDaoUtil.fillId(tagDao,userDao,userTag);
    assertEquals((1),userTag.getId());
    assertEquals((1),userTag.getUser().getId());
    assertEquals((1),userTag.getTag().getId());
   
    boolean caughtException = false;
    try{
      userTag.setId(-1);
      userTag.setUser(new User("jfdkslf"));
      GnizrDaoUtil.fillId(tagDao,userDao,userTag);
    }catch(Exception e){
      caughtException = true;
    }
    assertTrue(caughtException);
  }
 
  public void testFillObjectBookmark() throws Exception{
    Bookmark bm = new Bookmark(300);
    GnizrDaoUtil.fillObject(bookmarkDao, userDao, linkDao, bm);
    assertEquals("zirrus",bm.getTitle());
    assertEquals("cnn news",bm.getTags());
    assertEquals("hchen1",bm.getUser().getUsername());
    assertEquals("http://zirr.us/",bm.getLink().getUrl());
  }
 
  public void testFillObjectLink() throws Exception{
    Link link = new Link(202);
    GnizrDaoUtil.fillObject(linkDao,link);
    assertEquals(1003,link.getMimeTypeId());
    assertEquals("http://zirr.us/",link.getUrl());
    assertEquals(1,link.getCount());
  }
 
  public void testFillObjectLinkTag() throws Exception{
    LinkTag linkTag = new LinkTag(1);
    GnizrDaoUtil.fillObject(tagDao, linkDao, linkTag);
    assertEquals("web",linkTag.getTag().getLabel());
    assertEquals((3),linkTag.getTag().getCount());
  }
 
  public void testFillObjectTag() throws Exception{
    Tag tag = new Tag("wii");
    GnizrDaoUtil.fillObject(tagDao, tag);
    assertEquals((2),tag.getId());
    assertEquals("wii",tag.getLabel());
   
    tag = new Tag((1));
    GnizrDaoUtil.fillObject(tagDao, tag);
    assertEquals("webwork",tag.getLabel());   
  }
 
  public void testFillObjectTagAssertion() throws Exception{
    User u = new User((1));
    UserTag s = new UserTag((1));
    UserTag o = new UserTag((2));
    TagProperty p = new TagProperty((3));
    TagAssertion ta = new TagAssertion(s,p,o,u);
    GnizrDaoUtil.fillObject(tagAssertionDao, tagPrptDao, tagDao, userDao,ta);
    assertEquals("hchen1",ta.getUser().getUsername());
    assertEquals("webwork",ta.getSubject().getTag().getLabel());
    assertEquals("wii",ta.getObject().getTag().getLabel());
    assertEquals("narrower",ta.getProperty().getName());
  }
 
  public void testFillObjectTagProperty() throws Exception{
    TagProperty related = new TagProperty();
    related.setNamespacePrefix("skos");
    related.setName("related");
    GnizrDaoUtil.fillObject(tagPrptDao,related);
    assertEquals((1),related.getId());
    assertEquals(TagProperty.CARDINALITY_ONE_OR_MORE,related.getCardinality());
    assertEquals(TagProperty.TYPE_DEFAULT,related.getPropertyType());
  }
 
  public void testFillObjectUser() throws Exception{
    User user = new User((1));
    GnizrDaoUtil.fillObject(userDao, user);
    assertEquals("hchen1",user.getUsername());
    assertEquals("Harry Chen",user.getFullname());
   
    user = new User("hchen1");
    GnizrDaoUtil.fillObject(userDao,user);
    assertEquals((1),user.getId());
    assertEquals("Harry Chen",user.getFullname());
  }
 
  public void testFillObjectUserTag() throws Exception{
    UserTag userTag = new UserTag("hchen1","wii");
    GnizrDaoUtil.fillObject(tagDao, userDao, userTag);
    assertEquals((2),userTag.getId());
    assertEquals((1),userTag.getCount());
   
    User user = userTag.getUser();
    assertEquals((1),user.getId());
    assertEquals("hchen1",user.getUsername());
    assertEquals("Harry Chen",user.getFullname());
   
    Tag tag = userTag.getTag();
    assertEquals((2),tag.getId());
    assertEquals("wii",tag.getLabel());
    assertEquals((1),tag.getCount());
  }
 
  public void testCreateTagIfNotExist() throws Exception{
    String tag = "usa";
    List<Tag> tags = tagDao.findTag(tag);
    assertTrue(tags.isEmpty());

    int id = GnizrDaoUtil.createTagIfNotExist(tagDao,tag);
    Tag t = tagDao.getTag(id);
    assertEquals(tag,t.getLabel());
   
    int id2 = GnizrDaoUtil.createTagIfNotExist(tagDao, tag);
    t = tagDao.getTag(id2);
    assertNotNull(t);
    assertEquals(id,id2);
   
    tag = "foobar:usa";
    int id3 = GnizrDaoUtil.createTagIfNotExist(tagDao, tag);
    t = tagDao.getTag(id3);
    assertNotNull(t);
    assertEquals("foobar:usa",t.getLabel());
  }
 
  public void testCreateUserTagIfNotExist() throws Exception{
    String tag1 = "hchen1:usa";
    String tag3 = "java";
   
    User defaultUser = new User("hchen1");
   
    UserTag userTag = null;
   
    int id1 = GnizrDaoUtil.createUserTagIfNotExist(tagDao, userDao,tag1, defaultUser);
    assertTrue((id1 > 0));
    userTag = tagDao.getUserTag(id1);
    GnizrDaoUtil.fillObject(tagDao, userDao, userTag);
    assertNotNull(userTag);
    assertEquals(id1,userTag.getId());
    assertEquals("hchen1:usa",userTag.getTag().getLabel());
    assertEquals("hchen1",userTag.getUser().getUsername());
   
    int id3 = GnizrDaoUtil.createUserTagIfNotExist(tagDao, userDao, tag3, defaultUser);
    assertTrue((id3 > 0));
    userTag = tagDao.getUserTag(id3);
    GnizrDaoUtil.fillObject(tagDao, userDao, userTag);
    assertNotNull(userTag);
    assertEquals(id3,userTag.getId());
    assertEquals("java",userTag.getTag().getLabel());
    assertEquals("hchen1",userTag.getUser().getUsername());
   
    int id4 = GnizrDaoUtil.createUserTagIfNotExist(tagDao, userDao, tag3, defaultUser);
    assertEquals(id3,id4);
  }
 
  public void testToDayStarts() throws Exception{
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
    Date date = df.parse("2007-01-11T12:13:93");
    Date dateStarts = GnizrDaoUtil.toDayBegins(date);
    Calendar c = Calendar.getInstance();
    c.setTime(dateStarts);
    assertEquals(2007,c.get(Calendar.YEAR));
    assertEquals(0,c.get(Calendar.MONTH));
    assertEquals(11,c.get(Calendar.DAY_OF_MONTH));
    assertEquals(0,c.get(Calendar.HOUR_OF_DAY));
    assertEquals(0,c.get(Calendar.MINUTE));
    assertEquals(0,c.get(Calendar.SECOND));
  }
 
  public void testToDayEnds() throws Exception{
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
    Date date = df.parse("2007-01-11T12:13:93");
    Date dateEnds = GnizrDaoUtil.toDayEnds(date);
    Calendar c = Calendar.getInstance();
    c.setTime(dateEnds);
    assertEquals(2007,c.get(Calendar.YEAR));
    assertEquals(0,c.get(Calendar.MONTH));
    assertEquals(11,c.get(Calendar.DAY_OF_MONTH));
    assertEquals(23,c.get(Calendar.HOUR_OF_DAY));
    assertEquals(59,c.get(Calendar.MINUTE));
    assertEquals(59,c.get(Calendar.SECOND));
  }
 
  public void testAddNHours() throws Exception{
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
    Date date = df.parse("2007-01-11T00:00:00");
    date = GnizrDaoUtil.addNHours(date,24);
    Calendar c = Calendar.getInstance();
    c.setTime(date);
    assertEquals(2007,c.get(Calendar.YEAR));
    assertEquals(0,c.get(Calendar.MONTH));
    assertEquals(12,c.get(Calendar.DAY_OF_MONTH));
    assertEquals(0,c.get(Calendar.HOUR_OF_DAY));
    assertEquals(0,c.get(Calendar.MINUTE));
    assertEquals(0,c.get(Calendar.SECOND));
  }
 
  public void testSubNHours() throws Exception{
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
    Date date = df.parse("2007-01-11T00:00:00");
    date = GnizrDaoUtil.subNHours(date,24);
    Calendar c = Calendar.getInstance();
    c.setTime(date);
    assertEquals(2007,c.get(Calendar.YEAR));
    assertEquals(0,c.get(Calendar.MONTH));
    assertEquals(10,c.get(Calendar.DAY_OF_MONTH));
    assertEquals(0,c.get(Calendar.HOUR_OF_DAY));
    assertEquals(0,c.get(Calendar.MINUTE));
    assertEquals(0,c.get(Calendar.SECOND));
  }
 
  public void testGetTimeRangeDateToday() throws Exception{
    Date[] timeRange = GnizrDaoUtil.getTimeRangeDate(TimeRange.TODAY);
    Date now = GnizrDaoUtil.getNow();
 
    Calendar nc = Calendar.getInstance();
    nc.setTime(now);
   
    Calendar sc = Calendar.getInstance();
    sc.setTime(timeRange[0]);
   
    Calendar ec = Calendar.getInstance();
    ec.setTime(timeRange[1]);
   
    assertEquals(nc.get(Calendar.YEAR),sc.get(Calendar.YEAR));
    assertEquals(nc.get(Calendar.MONTH),sc.get(Calendar.MONTH));
    assertEquals(nc.get(Calendar.DAY_OF_MONTH),sc.get(Calendar.DAY_OF_MONTH));
   
    assertEquals(nc.get(Calendar.YEAR),ec.get(Calendar.YEAR));
    assertEquals(nc.get(Calendar.MONTH),ec.get(Calendar.MONTH));
    assertEquals(nc.get(Calendar.DAY_OF_MONTH),ec.get(Calendar.DAY_OF_MONTH));
   
    assertEquals(0,sc.get(Calendar.HOUR_OF_DAY));
    assertEquals(0,sc.get(Calendar.MINUTE));
    assertEquals(0,sc.get(Calendar.SECOND));
   
    assertEquals(23,ec.get(Calendar.HOUR_OF_DAY));
    assertEquals(59,ec.get(Calendar.MINUTE));
    assertEquals(59,ec.get(Calendar.SECOND));
   
  }
 
  public void testGetTimeRangeDateYesterday() throws Exception{
    Date[] timeRange = GnizrDaoUtil.getTimeRangeDate(TimeRange.YESTERDAY);
    Date now = GnizrDaoUtil.getNow();
 
    Calendar nc = Calendar.getInstance();
    nc.setTime(now);
    nc.add(Calendar.HOUR_OF_DAY,-24);
   
    Calendar sc = Calendar.getInstance();
    sc.setTime(timeRange[0]);
   
    Calendar ec = Calendar.getInstance();
    ec.setTime(timeRange[1]);
   
    assertTrue(sc.before(nc));
    assertTrue(ec.after(nc));
    assertTrue(sc.before(ec));   
    assertEquals(sc.get(Calendar.HOUR_OF_DAY),0);
    assertEquals(ec.get(Calendar.HOUR_OF_DAY),23);
    assertEquals(sc.get(Calendar.DAY_OF_MONTH),ec.get(Calendar.DAY_OF_MONTH));
  }
 
  public void testGetTimeRangeDateLast7Days() throws Exception{
    Date[] timeRange = GnizrDaoUtil.getTimeRangeDate(TimeRange.LAST_7_DAYS);
    Date now = GnizrDaoUtil.getNow();

    Calendar nc = Calendar.getInstance();
    nc.setTime(now);
   
    Calendar sc = Calendar.getInstance();
    sc.setTime(timeRange[0]);
   
    Calendar ec = Calendar.getInstance();
    ec.setTime(timeRange[1]);
   
    assertTrue(sc.before(nc));
    assertTrue(ec.after(nc));
    assertTrue(sc.before(ec));
  }
 
  public void testGetTimeRangeDateLastMonth() throws Exception{
    Date[] timeRange = GnizrDaoUtil.getTimeRangeDate(TimeRange.LAST_MONTH);
    Date now = GnizrDaoUtil.getNow();

    Calendar nc = Calendar.getInstance();
    nc.setTime(now);
   
    Calendar sc = Calendar.getInstance();
    sc.setTime(timeRange[0]);
   
    Calendar ec = Calendar.getInstance();
    ec.setTime(timeRange[1]);
   
    assertTrue(sc.before(nc));
    assertTrue(ec.before(nc));
    assertTrue(sc.before(ec));
  }
 
  public void testGetTimeRangeDateThisMonth() throws Exception{
    Date[] timeRange = GnizrDaoUtil.getTimeRangeDate(TimeRange.THIS_MONTH);
    Date now = GnizrDaoUtil.getNow();

    Calendar nc = Calendar.getInstance();
    nc.setTime(now);
   
    Calendar sc = Calendar.getInstance();
    sc.setTime(timeRange[0]);
   
    Calendar ec = Calendar.getInstance();
    ec.setTime(timeRange[1]);
   
    assertTrue(sc.before(nc));
    assertTrue(ec.after(nc));
    assertTrue(sc.before(ec));
  }
 
  public void testDetectMIMEType() throws Exception{
    int mimeTypeId = GnizrDaoUtil.detectMIMEType("http://www.cnn.com");
    assertEquals(MIMEType.TEXT_HTML,mimeTypeId);
   
    mimeTypeId = GnizrDaoUtil.detectMIMEType("http://www.google.com/intl/en_ALL/images/logo.gif");
    assertEquals(MIMEType.IMG_GIF,mimeTypeId);
   
    mimeTypeId = GnizrDaoUtil.detectMIMEType("http://google.com");
    assertEquals(MIMEType.TEXT_HTML,mimeTypeId);
  }
 
  public void testIsUrlSafeString() throws Exception{
    boolean f = GnizrDaoUtil.isUrlSafeString("abc?");
    assertFalse(f);
    f = GnizrDaoUtil.isUrlSafeString("abc/adc");
    assertFalse(f);
    f = GnizrDaoUtil.isUrlSafeString("\\ab c\\");
    assertFalse(f);
    f = GnizrDaoUtil.isUrlSafeString(";2 3");
    assertFalse(f);
    f = GnizrDaoUtil.isUrlSafeString("'fa'");
    assertFalse(f);
    f = GnizrDaoUtil.isUrlSafeString("\" fds");
    assertFalse(f);
    f = GnizrDaoUtil.isUrlSafeString("ja & ff");
    assertFalse(f);
    f = GnizrDaoUtil.isUrlSafeString("ja + ff");
    assertFalse(f);
   
    f = GnizrDaoUtil.isUrlSafeString("ja * ff");
    assertFalse(f);
   
    f = GnizrDaoUtil.isUrlSafeString("ja ^ ff");
    assertFalse(f);
   
    f = GnizrDaoUtil.isUrlSafeString("ja % ff");
    assertFalse(f);
  }
 
  public void testEncodeURI() throws Exception{
    String s = GnizrDaoUtil.encodeURI("http://www.gnizr.com:3000/ksb/public/workspaces/ngaworkspace/datasets/country/instances?lensId=CountryWithPopulation&maxpop=100000000&format=atom");
    assertNotNull(s);
   
  }
 
  public void testDiffList() throws Exception{
    List<String> aList = new ArrayList<String>();
    List<String> bList = new ArrayList<String>();
   
    aList.add("abc");
    aList.add("123");
    aList.add("93939");
   
    bList.add("abc");
   
    List<String> result = GnizrDaoUtil.diffList(aList, bList);
    assertEquals(2,result.size());
    assertTrue(result.contains("123"));
    assertTrue(result.contains("93939"));
  }
 
  public void testStripNonPrintableChar() throws Exception{
    String s = "contribute \u0007 \fto \nother\tsustainable\rdevelopment goals";
    int length = s.length();
    String s1 = GnizrDaoUtil.stripNonPrintableChar(s);
    System.out.println(s1);
    assertEquals(length,s1.length());
    assertFalse(s1.contains("\r"));
    assertFalse(s1.contains("\n"));
    assertFalse(s1.contains("\t"));
    assertFalse(s1.contains("\f"));
    assertFalse(s1.contains("\u0007"));
  }
 
  public void testGetRandomURI() throws Exception{
    String s1 = GnizrDaoUtil.getRandomURI();
    assertNotNull(s1);
    String s2 = GnizrDaoUtil.getRandomURI();
    assertNotNull(s2);
    assertFalse(s1.equals(s2));
  }
}
TOP

Related Classes of com.gnizr.core.util.TestGnizrDaoUtil

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.