package com.rosaloves.bitlyj; import static com.rosaloves.bitlyj.Bitly.as; import static com.rosaloves.bitlyj.Bitly.clicks; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.util.Set; import org.junit.Before; import org.junit.Test; import org.w3c.dom.Document; import com.rosaloves.bitlyj.Bitly.Provider; /** * ClicksTest * * $Id$ * * @author clewis Jul 17, 2010 * */ public class ClicksTest { Provider bitly = as("bitlyapidemo", "R_0da49e0a9118ff35f52f629d2d71bf07"); Document doc; @Before public void before() { doc = Utils.classpathXmlIS("clicks_http_tcrn.xml"); } @Test public void name() { assertEquals("clicks", clicks("http://tcrn.ch/a4MSUH").getName()); } @Test public void buildWithSingleHashArgument() { ParameterMap p = Utils.paramsAsMap(clicks("t")); assertTrue(p.size() == 1); assertEquals("t", p.get("hash").get(0)); } @Test public void buildWithMultipleHashArguments() { ParameterMap p = Utils.paramsAsMap(clicks("t", "t2")); assertTrue(p.size() == 1); assertEquals(2, p.get("hash").size()); } @Test public void buildWithSingleUrlArgument() { ParameterMap p = Utils.paramsAsMap(clicks("http://tcrn.ch/a4MSUH")); assertTrue(p.size() == 1); assertEquals("http://tcrn.ch/a4MSUH", p.get("shortUrl").get(0)); } @Test public void buildWithMultipleUrlArguments() { ParameterMap p = Utils.paramsAsMap(clicks("http://foo1", "http://foo2")); assertTrue(p.size() == 1); assertEquals(2, p.get("shortUrl").size()); } @Test public void clickResultSums() { UrlClicks clicks = new UrlClicks(new Url(), 1, 2); assertEquals(1, clicks.getUserClicks()); assertEquals(2, clicks.getGlobalClicks()); } @Test public void clickResultParsing() { UrlClicks clicks = clicks("http://tcrn.ch/a4MSUH").apply(bitly, doc); assertEquals(0, clicks.getUserClicks()); assertEquals(1105, clicks.getGlobalClicks()); } @Test public void urlResultParsing() { Url url = clicks("http://tcrn.ch/a4MSUH").apply(bitly, doc).getUrl(); assertEquals("http://tcrn.ch/a4MSUH", url.getShortUrl()); assertEquals("bWw49z", url.getGlobalHash()); assertEquals("a4MSUH", url.getUserHash()); } @Test public void multipleUrlResultParsing() { doc = Utils.classpathXmlIS("clicks_2_urls.xml"); Set<UrlClicks> clicks = clicks("http://tcrn.ch/a4MSUH", "http://bit.ly/1YKMfY").apply(bitly, doc); assertEquals(2, clicks.size()); } @Test public void multipleHashResultParsing() { doc = Utils.classpathXmlIS("clicks_2_urls.xml"); Set<UrlClicks> clicks = clicks("bWw49z", "1YKMfY").apply(bitly, doc); assertEquals(2, clicks.size()); } }