blob: da5271ca47616c522e81b6958736c7db445ef2d1 [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.fluo.integration.client;
import org.apache.fluo.api.client.FluoClient;
import org.apache.fluo.api.client.FluoFactory;
import org.apache.fluo.api.config.FluoConfiguration;
import org.apache.fluo.api.exceptions.FluoException;
import org.apache.fluo.core.client.FluoClientImpl;
import org.apache.fluo.integration.ITBaseImpl;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.junit.Assert;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.Timeout;
public class FluoClientIT extends ITBaseImpl {
@Rule
public Timeout globalTimeout = Timeout.seconds(getTestTimeout());
@Test
public void testBasic() {
try (FluoClient client = FluoFactory.newClient(config)) {
client.newSnapshot();
}
FluoConfiguration fluoConfig = new FluoConfiguration();
fluoConfig.setApplicationName(config.getApplicationName());
fluoConfig.setInstanceZookeepers(config.getInstanceZookeepers());
try (FluoClient client = FluoFactory.newClient(fluoConfig)) {
client.newSnapshot();
}
try (FluoClientImpl client = new FluoClientImpl(fluoConfig)) {
client.newSnapshot();
FluoConfiguration sharedConfig = client.getSharedConfiguration();
Assert.assertEquals(config.getAccumuloTable(), sharedConfig.getAccumuloTable());
Assert.assertEquals(config.getAccumuloInstance(), sharedConfig.getAccumuloInstance());
Assert.assertEquals(config.getAccumuloUser(), sharedConfig.getAccumuloUser());
Assert.assertEquals(config.getZookeeperTimeout(), sharedConfig.getZookeeperTimeout());
Assert.assertEquals(config.getTransactionRollbackTime(),
sharedConfig.getTransactionRollbackTime());
}
}
@Test
public void testFailures() {
// we are expecting errors in this test
final Level clientLevel = Logger.getLogger(FluoClientImpl.class).getLevel();
Logger.getLogger(FluoClientImpl.class).setLevel(Level.FATAL);
final Level factoryLevel = Logger.getLogger(FluoFactory.class).getLevel();
Logger.getLogger(FluoFactory.class).setLevel(Level.FATAL);
FluoConfiguration fluoConfig = new FluoConfiguration();
try {
FluoFactory.newClient(fluoConfig);
Assert.fail();
} catch (FluoException e) {
// expected
}
try (FluoClientImpl impl = new FluoClientImpl(fluoConfig)) {
Assert.fail("FluoClientImpl was " + impl);
} catch (IllegalArgumentException e) {
// expected
}
Logger.getLogger(FluoClientImpl.class).setLevel(clientLevel);
Logger.getLogger(FluoFactory.class).setLevel(factoryLevel);
}
}