blob: 62326dd0f584bec01d84191c28391a34df95f6a2 [file] [log] [blame]
// Copyright 2015 The Vanadium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package io.v.impl.google.naming;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import java.util.Arrays;
import java.util.Collection;
import static com.google.common.truth.Truth.assertThat;
/**
* Unit tests for {@link NamingUtil#join}.
*/
@RunWith(Parameterized.class)
public class NamingUtilJoinTest {
private final String[] names;
private final String expected;
@Parameterized.Parameters
public static Collection<Object[]> data() {
return Arrays.asList(new Object[][]{
{new String[]{}, ""},
{new String[]{""}, ""},
{new String[]{"", ""}, ""},
{new String[]{"a"}, "a"},
{new String[]{"a", ""}, "a"},
{new String[]{"a/"}, "a"},
{new String[]{"a/", ""}, "a"},
{new String[]{"a", "/"}, "a"},
{new String[]{"", "a"}, "a"},
{new String[]{"", "/a"}, "/a"},
{new String[]{"a", "b"}, "a/b"},
{new String[]{"a/", "b/"}, "a/b"},
{new String[]{"a/", "/b"}, "a/b"},
{new String[]{"/a", "b"}, "/a/b"},
{new String[]{"a", "/", "b"}, "a/b"},
{new String[]{"a", "/", "/b"}, "a/b"},
{new String[]{"a/", "/", "/b"}, "a/b"},
{new String[]{"/a/b", "c"}, "/a/b/c"},
{new String[]{"/a", "b", "c"}, "/a/b/c"},
{new String[]{"/a/", "/b/", "/c/"}, "/a/b/c"},
{new String[]{"a", "b", "c"}, "a/b/c"},
{new String[]{"a", "", "c"}, "a/c"},
{new String[]{"a", "", "", "c"}, "a/c"},
{new String[]{"/a/b", "c/d"}, "/a/b/c/d"},
{new String[]{"/a/b", "/c/d"}, "/a/b/c/d"},
{new String[]{"/a/b", "//c/d"}, "/a/b/c/d"},
{new String[]{"/a//", "c"}, "/a/c"},
{new String[]{"/a", "//"}, "/a"},
{new String[]{"", "//a/b"}, "/a/b"},
{new String[]{"a", "b//"}, "a/b"},
{new String[]{"a", "//", "b"}, "a/b"},
{new String[]{"a", "//", "/b"}, "a/b"},
{new String[]{"a", "//", "//b"}, "a/b"},
{new String[]{"a/", "//", "b"}, "a/b"},
{new String[]{"a//", "//", "b"}, "a/b"},
{new String[]{"a//", "//", "//b"}, "a/b"},
{new String[]{"a", "/", "/", "b"}, "a/b"},
{new String[]{"a/", "/", "/", "/b"}, "a/b"},
{new String[]{"a", "//", "//", "b"}, "a/b"},
{new String[]{"a//", "//", "//", "//b"}, "a/b"},
{new String[]{"a//", "//b//", "//c//"}, "a/b/c"},
{new String[]{"a//", "", "//c//"}, "a/c"},
{new String[]{"a///", "////b"}, "a/b"},
{new String[]{"////a", "b"}, "/a/b"},
{new String[]{"a", "b////"}, "a/b"},
{new String[]{"/ep//", ""}, "/ep"},
{new String[]{"/ep//", "a"}, "/ep/a"},
{new String[]{"/ep//", "//a"}, "/ep/a"},
});
}
public NamingUtilJoinTest(String[] names, String expected) {
this.names = names;
this.expected = expected;
}
@Test
public void testJoin() {
assertThat(NamingUtil.join(this.names)).isEqualTo(this.expected);
}
}