com.opengamma.web.bundle.BundleParserTest.java Source code

Java tutorial

Introduction

Here is the source code for com.opengamma.web.bundle.BundleParserTest.java

Source

/**
 * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
 *
 * Please see distribution for license.
 */
package com.opengamma.web.bundle;

import static org.testng.AssertJUnit.assertEquals;
import static org.testng.AssertJUnit.assertNotNull;

import java.io.InputStream;
import java.net.URI;
import java.net.URISyntaxException;
import java.util.List;

import org.apache.commons.io.IOUtils;
import org.testng.annotations.Test;

import com.opengamma.OpenGammaRuntimeException;
import com.opengamma.util.test.TestGroup;

/**
 * Test BundleParser.
 */
@Test(groups = TestGroup.UNIT)
public class BundleParserTest {

    public void testParser() throws Exception {
        InputStream xmlStream = getClass().getResourceAsStream("uiResourceConfig.xml");

        UriProvider uriProvider = new UriProvider() {

            @Override
            public URI getUri(String resourceReference) {
                try {
                    return new URI(resourceReference);
                } catch (URISyntaxException ex) {
                    throw new OpenGammaRuntimeException("Invalid URI for resource " + resourceReference);
                }
            }

        };
        BundleParser bundleParser = new BundleParser(uriProvider, "");
        BundleManager bundleManager = bundleParser.parse(xmlStream);
        assertNotNull(bundleManager);

        List<Fragment> cssBundleCommon = bundleManager.getBundle("cssBundleCommon.css").getAllFragments();
        assertNotNull(cssBundleCommon);
        assertEquals(2, cssBundleCommon.size());
        assertEquals(new Fragment(new URI("styles/common/og.common.buttons.css"),
                "/styles/common/og.common.buttons.css"), cssBundleCommon.get(0));
        assertEquals(new Fragment(new URI("styles/common/og.common.core.css"), "/styles/common/og.common.core.css"),
                cssBundleCommon.get(1));

        List<Fragment> cssUtil = bundleManager.getBundle("cssUtil.css").getAllFragments();
        assertNotNull(cssUtil);
        assertEquals(2, cssUtil.size());
        assertEquals(new Fragment(new URI("styles/common/util/og.common.reset.css"),
                "/styles/common/util/og.common.reset.css"), cssUtil.get(0));
        assertEquals(new Fragment(new URI("styles/common/util/og.common.links.css"),
                "/styles/common/util/og.common.links.css"), cssUtil.get(1));

        List<Fragment> jsBundleCommon = bundleManager.getBundle("jsBundleCommon.js").getAllFragments();
        assertNotNull(jsBundleCommon);
        assertEquals(3, jsBundleCommon.size());
        assertEquals(new Fragment(new URI("scripts/og/common/og.common.core.js"),
                "/scripts/og/common/og.common.core.js"), jsBundleCommon.get(0));
        assertEquals(new Fragment(new URI("scripts/og/common/og.common.init.js"),
                "/scripts/og/common/og.common.init.js"), jsBundleCommon.get(1));
        assertEquals(new Fragment(new URI("scripts/og/common/og.common.jquery.rest.js"),
                "/scripts/og/common/og.common.jquery.rest.js"), jsBundleCommon.get(2));

        List<Fragment> cssOgCommon = bundleManager.getBundle("ogCommon.css").getAllFragments();
        assertNotNull(cssOgCommon);
        assertEquals(cssBundleCommon.size() + cssUtil.size(), cssOgCommon.size());
        int i = 0;
        for (Fragment fragment : cssBundleCommon) {
            assertEquals(fragment, cssOgCommon.get(i++));
        }
        for (Fragment fragment : cssUtil) {
            assertEquals(fragment, cssOgCommon.get(i++));
        }

        List<Fragment> jsOgCommon = bundleManager.getBundle("ogCommon.js").getAllFragments();
        assertNotNull(jsOgCommon);
        assertEquals(jsBundleCommon.size(), jsOgCommon.size());
        int j = 0;
        for (Fragment fragment : jsBundleCommon) {
            assertEquals(fragment, jsOgCommon.get(j++));
        }

        IOUtils.closeQuietly(xmlStream);
    }

}