blob: 04498929fc36939ae68fdd8ce05e8742af0a5bb5 [file] [log] [blame]
//
// ========================================================================
// Copyright (c) 1995-2016 Mort Bay Consulting Pty. Ltd.
// ------------------------------------------------------------------------
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v1.0
// and Apache License v2.0 which accompanies this distribution.
//
// The Eclipse Public License is available at
// http://www.eclipse.org/legal/epl-v10.html
//
// The Apache License v2.0 is available at
// http://www.opensource.org/licenses/apache2.0.php
//
// You may elect to redistribute this code under either of these licenses.
// ========================================================================
//
package org.eclipse.jetty.start;
import static org.hamcrest.Matchers.is;
import static org.hamcrest.Matchers.nullValue;
import static org.junit.Assert.assertThat;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameter;
import org.junit.runners.Parameterized.Parameters;
@RunWith(Parameterized.class)
public class FileArgTest
{
@SuppressWarnings("serial")
private static class UseCases extends ArrayList<String[]>
{
public void add(String rawfileref, String expectedUri, String expectedLocation)
{
this.add(new String[] { rawfileref, expectedUri, expectedLocation });
}
}
@Parameters(name = "{0}")
public static List<String[]> data()
{
UseCases data = new UseCases();
data.add("resource",null,"resource");
data.add("lib/logging",null,"lib/logging");
// -- URI with relative location --
data.add("http://machine.com/my.conf|resources/my.conf","http://machine.com/my.conf","resources/my.conf");
data.add("http://machine.com:8080/my.conf|resources/my.conf","http://machine.com:8080/my.conf","resources/my.conf");
data.add("https://machine.com:8080/my.conf|resources/my.conf","https://machine.com:8080/my.conf","resources/my.conf");
// Windows URI (drive mapped)
data.add("file:///Z:/share/my.conf|resources/my.conf","file:///Z:/share/my.conf","resources/my.conf");
// Windows URI (network share)
data.add("file:////nas/share/my.conf|resources/my.conf","file:////nas/share/my.conf","resources/my.conf");
// -- URI with absolute location --
data.add("http://machine.com/db.dat|/var/run/db.dat","http://machine.com/db.dat","/var/run/db.dat");
data.add("http://machine.com:8080/b/db.dat|/var/run/db.dat","http://machine.com:8080/b/db.dat","/var/run/db.dat");
data.add("https://machine.com:8080/c/db.dat|/var/run/db.dat","https://machine.com:8080/c/db.dat","/var/run/db.dat");
// Windows URI (drive mapped) to drive mapped output
data.add("file:///Z:/share/my.conf|C:/db/db.dat","file:///Z:/share/my.conf","C:/db/db.dat");
data.add("file:///Z:/share/my.conf|C:\\db\\db.dat","file:///Z:/share/my.conf","C:\\db\\db.dat");
// Windows URI (drive mapped) to network share output
data.add("file:///Z:/share/my.conf|\\\\nas\\apps\\db\\db.dat","file:///Z:/share/my.conf","\\\\nas\\apps\\db\\db.dat");
// Windows URI (network share) to drive mapped output
data.add("file:////nas/share/my.conf|C:/db/db.dat","file:////nas/share/my.conf","C:/db/db.dat");
data.add("file:////nas/share/my.conf|C:\\db\\db.dat","file:////nas/share/my.conf","C:\\db\\db.dat");
// Windows URI (network share) to network share output
data.add("file:////nas/share/my.conf|\\\\nas\\apps\\db\\db.dat","file:////nas/share/my.conf","\\\\nas\\apps\\db\\db.dat");
return data;
}
@Parameter(value = 0)
public String rawFileRef;
@Parameter(value = 1)
public String expectedUri;
@Parameter(value = 2)
public String expectedLocation;
@Test
public void testFileArg()
{
FileArg arg = new FileArg(null,rawFileRef);
if (expectedUri == null)
{
assertThat("URI",arg.uri,nullValue());
}
else
{
assertThat("URI",arg.uri,is(expectedUri));
}
assertThat("Location",arg.location,is(expectedLocation));
}
}