org.eclipsetrader.yahoo.internal.core.UtilTest.java Source code

Java tutorial

Introduction

Here is the source code for org.eclipsetrader.yahoo.internal.core.UtilTest.java

Source

/*
 * Copyright (c) 2004-2011 Marco Maccaferri and others.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     Marco Maccaferri - initial API and implementation
 */

package org.eclipsetrader.yahoo.internal.core;

import java.net.URL;
import java.util.Currency;

import junit.framework.TestCase;

import org.apache.commons.httpclient.HttpMethod;
import org.eclipsetrader.core.feed.FeedIdentifier;
import org.eclipsetrader.core.feed.FeedProperties;
import org.eclipsetrader.core.instruments.Stock;

public class UtilTest extends TestCase {

    public void testGetYahooSymbol() throws Exception {
        FeedProperties properties = new FeedProperties();
        properties.setProperty("org.eclipsetrader.yahoo.symbol", "F.MI");
        FeedIdentifier identifier = new FeedIdentifier("F", properties);
        assertEquals("F.MI", Util.getSymbol(identifier));
    }

    public void testGetDefaultSymbolIfYahooIsMissing() throws Exception {
        FeedProperties properties = new FeedProperties();
        FeedIdentifier identifier = new FeedIdentifier("F.MI", properties);
        assertEquals("F.MI", Util.getSymbol(identifier));
    }

    public void testGet1YearBackfillMethod() throws Exception {
        FeedIdentifier identifier = new FeedIdentifier("MSFT", new FeedProperties());
        String expected = "http://chartapi.finance.yahoo.com/instrument/1.0/msft/chartdata;type=quote;ys=2011;yz=1/csv/";

        HttpMethod method = Util.get1YearHistoryFeedMethod(identifier, 2011);
        assertEquals(expected, method.getURI().toString());
    }

    public void testGet1DaysBackfillMethod() throws Exception {
        FeedIdentifier identifier = new FeedIdentifier("MSFT", new FeedProperties());
        String expected = "http://chartapi.finance.yahoo.com/instrument/1.0/msft/chartdata;type=quote;range=1d/csv/";

        HttpMethod method = Util.get1DayHistoryFeedMethod(identifier);
        assertEquals(expected, method.getURI().toString());
    }

    public void testGet5DaysBackfillMethod() throws Exception {
        FeedIdentifier identifier = new FeedIdentifier("MSFT", new FeedProperties());
        String expected = "http://chartapi.finance.yahoo.com/instrument/1.0/msft/chartdata;type=quote;range=5d/csv/";

        HttpMethod method = Util.get5DayHistoryFeedMethod(identifier);
        assertEquals(expected, method.getURI().toString());
    }

    public void testGetBackfillMethodForIndex() throws Exception {
        FeedIdentifier identifier = new FeedIdentifier("^IXIC", new FeedProperties());
        String expected = "http://chartapi.finance.yahoo.com/instrument/1.0/%5Eixic/chartdata;type=quote;ys=2011;yz=1/csv/";

        HttpMethod method = Util.get1YearHistoryFeedMethod(identifier, 2011);
        assertEquals(expected, method.getURI().toString());
    }

    public void testGetRSSNewsFeed() throws Exception {
        Stock stock = new Stock("Stock", new FeedIdentifier("MSFT", new FeedProperties()),
                Currency.getInstance("USD"));
        String expected = "http://finance.yahoo.com/rss/headline?s=MSFT";

        URL url = Util.getRSSNewsFeedForSecurity(stock);
        assertEquals(expected, url.toString());
    }

    public void testGetRSSNewsFeedForIndex() throws Exception {
        Stock stock = new Stock("Stock", new FeedIdentifier("^IXIC", new FeedProperties()),
                Currency.getInstance("USD"));
        String expected = "http://finance.yahoo.com/rss/headline?s=%5EIXIC";

        URL url = Util.getRSSNewsFeedForSecurity(stock);
        assertEquals(expected, url.toString());
    }
}