/**
* 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);
}
}