blob: 82c922026ea6122ffe50839e5b8cdf0f361ce703 [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.apache.pulsar.zookeeper;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Test;
import static org.testng.Assert.assertEquals;
public class ZkUtilsParentPathTest {
@DataProvider(name = "pathsAndParents")
public static Object[][] pathsAndParents() {
return new Object[][] {
{ null, null },
{ "", null },
{ "/", null },
{ "//", null },
{ "///", null },
{ "a", null },
{ "a/", null },
{ "a//", null },
{ "a///", null },
{ "/a", "/" },
{ "//a", "/" },
{ "///a", "/" },
{ "/a/", "/" },
{ "/a//", "/" },
{ "/a///", "/" },
{ "//a/", "/" },
{ "//a//", "/" },
{ "//a///", "/" },
{ "///a/", "/" },
{ "///a//", "/" },
{ "///a///", "/" },
{ "/a/b", "/a" },
{ "//a/b", "/a" },
{ "///a/b", "/a" },
{ "/a//b", "/a" },
{ "/a///b", "/a" },
{ "/a/b/", "/a" },
{ "/a/b//", "/a" },
{ "/a/b///", "/a" },
{ "/a//b/", "/a" },
{ "/a///b/", "/a" },
{ "a/b", "a" },
{ "a//b", "a" },
{ "a///b", "a" },
{ "a/b/", "a" },
{ "a/b//", "a" },
{ "a/b///", "a" },
{ "a//b/", "a" },
{ "a///b/", "a" },
{ "/a/b/c", "/a/b" },
{ "//a/b/c", "/a/b" },
{ "///a/b/c", "/a/b" },
{ "/a//b/c", "/a/b" },
{ "/a///b/c", "/a/b" },
{ "/a/b//c", "/a/b" },
{ "/a/b///c", "/a/b" },
{ "/a//b//c/", "/a/b" },
{ "/a//b///c/", "/a/b" },
{ "/a///b//c/", "/a/b" },
{ "/a///b///c/", "/a/b" },
{ "/a/b/c/", "/a/b" },
{ "/a/b//c/", "/a/b" },
{ "/a/b///c/", "/a/b" },
{ "a/b/c", "a/b" },
{ "a//b/c", "a/b" },
{ "a///b/c", "a/b" },
{ "abc", null },
{ "abc/", null },
{ "/abc", "/" },
{ "/abc/", "/" },
{ "/abc/def", "/abc" },
{ "/abc/def/", "/abc" },
{ "abc/def", "abc" },
{ "abc/def/", "abc" },
{ "/abc/def/ghi", "/abc/def" },
{ "/abc/def/ghi/", "/abc/def" },
{ "abc/def/ghi", "abc/def" },
{ "abc/def/ghi/", "abc/def" }
};
}
@Test(dataProvider = "pathsAndParents")
public void testGetParentForPath(final String path, final String expectedParent) {
assertEquals(ZkUtils.getParentForPath(path), expectedParent, "Parent for " + path);
}
}