Package com.foundationdb.server.store

Source Code of com.foundationdb.server.store.FDBHolderImplTest

/**
* Copyright (C) 2009-2013 FoundationDB, LLC
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program.  If not, see <http://www.gnu.org/licenses/>.
*/

package com.foundationdb.server.store;

import com.foundationdb.junit.NamedParameterizedRunner;
import com.foundationdb.junit.NamedParameterizedRunner.TestParameters;
import com.foundationdb.junit.Parameterization;
import com.foundationdb.tuple.Tuple2;
import org.junit.Test;
import org.junit.runner.RunWith;

import java.util.Arrays;
import java.util.Collection;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.fail;

@RunWith(NamedParameterizedRunner.class)
public final class FDBHolderImplTest
{
    private static Parameterization c(String dirString, Tuple2 expected) {
        String name = String.valueOf(dirString);
        if(name.isEmpty()) {
            name = "empty";
        }
        return Parameterization.create(name, dirString, expected);
    }

    @TestParameters
    public static Collection<Parameterization> types() throws Exception {
        return Arrays.asList(
            c(null, null),
            c("", Tuple2.from()),
            c("sql", Tuple2.from("sql")),
            c("sql/", Tuple2.from("sql")),
            c("  pre", Tuple2.from("pre")),
            c("post  ", Tuple2.from("post")),
            c("  pre/post  ", Tuple2.from("pre", "post")),
            c("foo/bar/zap", Tuple2.from("foo", "bar", "zap")),
            c("alpha\\beta\\gamma", Tuple2.from("alpha", "beta", "gamma")),
            c("a\\b/c\\\\d//e", Tuple2.from("a", "b", "c", "d", "e"))
        );
    }


    private final String dirString;
    private final Tuple2 expected;

    public FDBHolderImplTest(String dirString, Tuple2 expected) {
        this.dirString = dirString;
        this.expected = expected;
    }

    @Test
    public void doCompare() {
        try {
            Tuple2 actual = Tuple2.fromList(FDBHolderImpl.parseDirString(dirString));
            if(expected.size() != actual.size()) {
                fail(String.format("Tuple size mismatch: [%s] vs [%s]", expected.getItems(), actual.getItems()));
            }
            for(int i = 0; i < expected.size(); ++i) {
                Object e = expected.get(i);
                Object a = actual.get(i);
                assertEquals(String.format("tuple(%d)", i), e, a);
            }
        } catch(IllegalArgumentException e) {
            if(dirString != null) {
                throw e;
            }
            // else: expected
        }
    }
}
TOP

Related Classes of com.foundationdb.server.store.FDBHolderImplTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.