package org.ff4j.test.store;
import org.ff4j.audit.EventQueryDefinition;
/*
* #%L ff4j-core %% Copyright (C) 2013 Ff4J %% Licensed 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. #L%
*/
import org.ff4j.core.FeatureStore;
import org.ff4j.exception.FeatureNotFoundException;
import org.ff4j.exception.GroupNotFoundException;
import org.ff4j.store.JdbcFeatureStore;
import org.ff4j.store.JdbcQueryBuilder;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.springframework.jdbc.datasource.embedded.EmbeddedDatabase;
import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseBuilder;
import org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType;
public class JdbcFeatureStoreCoreTest extends CoreFeatureStoreTestSupport {
/** DataBase. */
private EmbeddedDatabase db;
/** Builder. */
private EmbeddedDatabaseBuilder builder = null;
/** {@inheritDoc} */
@Override
protected FeatureStore initStore() {
builder = new EmbeddedDatabaseBuilder();
db = builder.
setType(EmbeddedDatabaseType.HSQL).//
addScript("classpath:schema-ddl.sql").//
addScript("classpath:ff-store.sql").build();
JdbcFeatureStore jdbcStore = new JdbcFeatureStore();
jdbcStore.setDataSource(db);
return jdbcStore;
}
/** {@inheritDoc} */
@Override
@Before
public void setUp() throws Exception {
super.setUp();
db = builder.setType(EmbeddedDatabaseType.HSQL).
addScript("classpath:schema-ddl.sql").
addScript("classpath:ff-store.sql").build();
}
/** {@inheritDoc} */
@After
public void tearDown() throws Exception {
db.shutdown();
}
@Test(expected = IllegalArgumentException.class)
public void testRemoveFromGroupInvalidGroup() {
testedStore.removeFromGroup(F4, G0);
}
@Test(expected = FeatureNotFoundException.class)
public void readDoesNotExist() {
testedStore.read("dont-exist");
}
@Test
public void testQueryBuilder() {
JdbcQueryBuilder builder = new JdbcQueryBuilder();
builder.getFeatureDistributionAudit();
EventQueryDefinition eqd = new EventQueryDefinition();
builder.getPurgeFeatureUsageQuery(eqd);
builder.getSelectFeatureUsageQuery(eqd);
builder.getPurgeAuditTrailQuery(eqd);
builder.removeFeatureFromGroup();
builder.deleteRoles();
builder.getFeatureProperty();
builder.getEventByUuidQuery();
builder.getHostHitCount();
builder.getUserHitCount();
builder.getSourceHitCount();
EventQueryDefinition e1 = new EventQueryDefinition();
builder.buildWhereClause(e1, true, false);
builder.buildWhereClause(e1, false, false);
e1.getHostFilters().add("localhost");
e1.getNamesFilter().add("aaa");
e1.getSourceFilters().add("java");
builder.buildWhereClause(e1, true, false);
}
@Test(expected = GroupNotFoundException.class)
public void readGroupDoesNotExist() {
testedStore.readGroup("dont-exist");
}
}