/*
* $Id$
* This file is a part of the Arakhne Foundation Classes, http://www.arakhne.org/afc
*
* Copyright (c) 2000-2012 Stephane GALLAND.
* Copyright (c) 2005-10, Multiagent Team, Laboratoire Systemes et Transports,
* Universite de Technologie de Belfort-Montbeliard.
* Copyright (c) 2013-2016 The original authors, and other authors.
*
* Licensed under the Apache License, Version 2.0 (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.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.arakhne.afc.vmutil;
import static org.arakhne.afc.testtools.XbaseInlineTestUtil.assertInlineParameterUsage;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.Locale;
import org.junit.Test;
/**
* @author $Author: sgalland$
* @version $Name$ $Revision$ $Date$
* @mavengroupid org.arakhne.afc
* @mavenartifactid arakhneVmutils
*/
@SuppressWarnings("all")
public class ResourcesTest {
private static final String TEST_NAME_1 = "/org/arakhne/afc/vmutil/test.txt"; //$NON-NLS-1$
private static final String TEST_NAME_2 = "org/arakhne/afc/vmutil/test.txt"; //$NON-NLS-1$
private static final String TEST_NAME_3 = "test.txt"; //$NON-NLS-1$
private static final String TEST_NAME_4 = "/test.txt"; //$NON-NLS-1$
private static final String PACKAGE_NAME = "org.arakhne.afc.vmutil"; //$NON-NLS-1$
@Test
public void getResourceString() {
assertNull(Resources.getResource(null));
URL u1 = Resources.getResource(TEST_NAME_1);
assertNotNull(u1);
URL u2 = Resources.getResource(TEST_NAME_2);
assertNotNull(u2);
assertEquals(u1,u2);
}
@Test
public void getResourceClassString() {
assertNull(Resources.getResource(ResourcesTest.class, null));
URL u1 = Resources.getResource(ResourcesTest.class, TEST_NAME_1);
assertNotNull(u1);
URL u2 = Resources.getResource(ResourcesTest.class, TEST_NAME_2);
assertNotNull(u2);
URL u3 = Resources.getResource(ResourcesTest.class, TEST_NAME_3);
assertNotNull(u3);
assertEquals(u1,u2);
assertEquals(u1,u3);
assertNull(Resources.getResource((Class<?>)null, null));
u1 = Resources.getResource((Class<?>)null, TEST_NAME_1);
assertNull(u1);
u2 = Resources.getResource((Class<?>)null, TEST_NAME_2);
assertNull(u2);
}
@Test
public void getResourcePackageString() {
ClassLoader l = ResourcesTest.class.getClassLoader();
Package p = Package.getPackage(PACKAGE_NAME);
assertNull(Resources.getResource(ResourcesTest.class, null));
URL u1 = Resources.getResource(l, p, TEST_NAME_1);
assertNull(u1);
URL u2 = Resources.getResource(l, p, TEST_NAME_2);
assertNull(u2);
URL u3 = Resources.getResource(l, p, TEST_NAME_3);
assertNotNull(u3);
URL u4 = Resources.getResource(l, p, TEST_NAME_4);
assertNotNull(u4);
assertEquals(u3, u4);
assertNull(Resources.getResource(l, (Package)null, null));
u1 = Resources.getResource(l, (Package)null, TEST_NAME_3);
assertNull(u1);
u2 = Resources.getResource(l, (Package)null, TEST_NAME_4);
assertNull(u2);
}
@Test
public void getResourceClassLoaderString() {
assertNull(Resources.getResource(ResourcesTest.class.getClassLoader(), null));
URL u1 = Resources.getResource(ResourcesTest.class.getClassLoader(), TEST_NAME_1);
assertNotNull(u1);
URL u2 = Resources.getResource(ResourcesTest.class.getClassLoader(), TEST_NAME_2);
assertNotNull(u2);
assertEquals(u1,u2);
assertNull(Resources.getResource((ClassLoader)null, null));
u1 = Resources.getResource((ClassLoader)null, TEST_NAME_1);
assertNotNull(u1);
u2 = Resources.getResource((ClassLoader)null, TEST_NAME_2);
assertNotNull(u2);
assertEquals(u1,u2);
}
@Test
public void getResourceAsStreamString() throws IOException {
assertNull(Resources.getResourceAsStream(null));
try (InputStream is = Resources.getResourceAsStream(TEST_NAME_1)) {
assertNotNull(is);
}
try (InputStream is = Resources.getResourceAsStream(TEST_NAME_2)) {
assertNotNull(is);
}
}
@Test
public void getResourceAsStreamClassString() throws IOException {
assertNull(Resources.getResourceAsStream(ResourcesTest.class, null));
try (InputStream is = Resources.getResourceAsStream(ResourcesTest.class, TEST_NAME_1)) {
assertNotNull(is);
}
try (InputStream is = Resources.getResourceAsStream(ResourcesTest.class, TEST_NAME_2)) {
assertNotNull(is);
}
try (InputStream is = Resources.getResourceAsStream(ResourcesTest.class, TEST_NAME_3)) {
assertNotNull(is);
}
try (InputStream is = Resources.getResourceAsStream(ResourcesTest.class, TEST_NAME_4)) {
assertNotNull(is);
}
assertNull(Resources.getResourceAsStream((Class<?>)null, null));
try (InputStream is = Resources.getResourceAsStream((Class<?>)null, TEST_NAME_1)) {
assertNull(is);
}
try (InputStream is = Resources.getResourceAsStream((Class<?>)null, TEST_NAME_2)) {
assertNull(is);
}
try (InputStream is = Resources.getResourceAsStream((Class<?>)null, TEST_NAME_3)) {
assertNull(is);
}
}
@Test
public void getResourceAsStreamPackageString() throws IOException {
ClassLoader l = ResourcesTest.class.getClassLoader();
Package p = Package.getPackage(PACKAGE_NAME);
assertNull(Resources.getResourceAsStream(ResourcesTest.class, null));
try (InputStream is = Resources.getResourceAsStream(l, p, TEST_NAME_1)) {
assertNull(is);
}
try (InputStream is = Resources.getResourceAsStream(l, p, TEST_NAME_2)) {
assertNull(is);
}
try (InputStream is = Resources.getResourceAsStream(l, p, TEST_NAME_3)) {
assertNotNull(is);
}
try (InputStream is = Resources.getResourceAsStream(l, p, TEST_NAME_4)) {
assertNotNull(is);
}
assertNull(Resources.getResourceAsStream(l, (Package)null, null));
try (InputStream is = Resources.getResourceAsStream(l, (Package)null, TEST_NAME_1)) {
assertNull(is);
}
try (InputStream is = Resources.getResourceAsStream(l, (Package)null, TEST_NAME_2)) {
assertNull(is);
}
try (InputStream is = Resources.getResourceAsStream(l, (Package)null, TEST_NAME_3)) {
assertNull(is);
}
}
@Test
public void getResourceAsStreamClassLoaderString() throws IOException {
assertNull(Resources.getResourceAsStream(ResourcesTest.class.getClassLoader(), null));
try (InputStream is = Resources.getResourceAsStream(ResourcesTest.class.getClassLoader(), TEST_NAME_1)) {
assertNotNull(is);
}
try (InputStream is = Resources.getResourceAsStream(ResourcesTest.class.getClassLoader(), TEST_NAME_2)) {
assertNotNull(is);
}
assertNull(Resources.getResourceAsStream((ClassLoader)null, null));
try (InputStream is = Resources.getResourceAsStream((ClassLoader)null, TEST_NAME_1)) {
assertNotNull(is);
}
try (InputStream is = Resources.getResourceAsStream((ClassLoader)null, TEST_NAME_2)) {
assertNotNull(is);
}
}
@Test
public void getPropertyFileClassLocale() {
assertInlineParameterUsage(Resources.class, "getPropertyFile", Class.class, Locale.class); //$NON-NLS-1$
}
}