/**
* Copyright (C) 2010 Michael Mosmann <michael@mosmann.de>
*
* 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.
*/
package de.flapdoodle.mongoom;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
import java.util.logging.LogManager;
import com.google.common.collect.Sets;
import com.google.inject.internal.Lists;
import de.flapdoodle.mongoom.datastore.Datastore;
import de.flapdoodle.mongoom.mapping.context.IMappingContext;
import de.flapdoodle.mongoom.mapping.context.IMappingContextFactory;
import de.flapdoodle.mongoom.mapping.context.MappingContext;
import de.flapdoodle.mongoom.mapping.context.MappingContextFactory;
import de.flapdoodle.mongoom.mapping.context.Transformations;
public abstract class AbstractDatastoreTest extends AbstractMongoOMTest {
private final Set<Class<?>> classes;
private IDatastore datastore;
public AbstractDatastoreTest(Class<?> clazz, Class<?>... classes) {
Set<Class<?>> all = Sets.newHashSet();
all.add(clazz);
if (classes!=null) all.addAll(Lists.newArrayList(classes));
this.classes = all;
}
@Override
protected void setUp() throws Exception {
super.setUp();
try {
LogManager.getLogManager().readConfiguration(getClass().getResourceAsStream("/logging.properties"));
}catch (Exception e){
e.printStackTrace();
}
IMappingContextFactory<?> factory = newMappingContextFactory();
Transformations transformations = new Transformations(factory,classes);
IDatastore datastore=new Datastore(getMongo(), getDatabaseName(), transformations);
datastore.ensureCaps();
datastore.ensureIndexes();
this.datastore=datastore;
}
// protected static void setLoggerLevel(Logger logger, Level level) {
// System.out.println("Logger "+logger);
// Handler[] handlers = logger.getHandlers();
// for (Handler h : handlers) {
// System.out.println("Handler "+h+" for "+logger);
// h.setLevel(level);
// h.setFilter(null);
// }
// Logger parent = logger.getParent();
// if (parent!=null) {
// setLoggerLevel(parent, level);
// }
// }
protected IMappingContextFactory<?> newMappingContextFactory() {
return new MappingContextFactory();
}
public IDatastore getDatastore() {
return datastore;
}
@Override
protected void tearDown() throws Exception {
super.tearDown();
}
}