/hibernate-ogm-mongodb/src/test/java/org/hibernate/ogm/test/mongodb/loading/LoadSelectedColumnsInEntityTest.java
https://bitbucket.org/cprenzberg/hibernate-ogm · Java · 75 lines · 38 code · 10 blank · 27 comment · 0 complexity · 91c6e1e4dfdf49f8f9560d9ccb18fd46 MD5 · raw file
- /*
- * Hibernate, Relational Persistence for Idiomatic Java
- *
- * JBoss, Home of Professional Open Source
- * Copyright 2012 Red Hat Inc. and/or its affiliates and other contributors
- * as indicated by the @authors tag. All rights reserved.
- * See the copyright.txt in the distribution for a
- * full listing of individual contributors.
- *
- * This copyrighted material is made available to anyone wishing to use,
- * modify, copy, or redistribute it subject to the terms and conditions
- * of the GNU Lesser General Public License, v. 2.1.
- * This program is distributed in the hope that it will be useful, but WITHOUT A
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
- * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
- * You should have received a copy of the GNU Lesser General Public License,
- * v.2.1 along with this distribution; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
- * MA 02110-1301, USA.
- */
- package org.hibernate.ogm.test.mongodb.loading;
- import static org.fest.assertions.Assertions.assertThat;
- import java.util.Set;
- import org.hibernate.cfg.Configuration;
- import org.hibernate.ogm.datastore.mongodb.AssociationStorage;
- import org.hibernate.ogm.datastore.mongodb.Environment;
- import org.hibernate.ogm.datastore.mongodb.impl.MongoDBDatastoreProvider;
- import org.hibernate.ogm.datastore.spi.DatastoreProvider;
- import org.hibernate.ogm.dialect.mongodb.MongoDBDialect;
- import com.mongodb.BasicDBObject;
- import com.mongodb.DB;
- import com.mongodb.DBCollection;
- import com.mongodb.DBObject;
- /**
- * @author Guillaume Scheibel <guillaume.scheibel@gmail.com>
- */
- public class LoadSelectedColumnsInEntityTest extends LoadSelectedColumnsCollectionTest {
- @Override
- protected void configure(Configuration cfg) {
- super.configure( cfg );
- cfg.setProperty(
- Environment.MONGODB_ASSOCIATIONS_STORE,
- AssociationStorage.IN_ENTITY.toString().toLowerCase()
- );
- }
- @Override
- protected void addExtraColumn() {
- MongoDBDatastoreProvider provider = (MongoDBDatastoreProvider) super.getService( DatastoreProvider.class );
- DB database = provider.getDatabase();
- DBCollection collection = database.getCollection( "Project" );
- BasicDBObject query = new BasicDBObject( 1 );
- query.put( "_id", "projectID" );
- BasicDBObject updater = new BasicDBObject( 1 );
- updater.put( "$push", new BasicDBObject( "extraColumn", 1 ) );
- collection.update( query, updater );
- }
- protected void checkLoading(DBObject associationObject) {
- /*
- * The only column (except _id) that needs to be retrieved is "modules"
- * So we should have 2 columns
- */
- final Set<?> retrievedColumns = associationObject.keySet();
- assertThat( retrievedColumns ).hasSize( 2 ).containsOnly( MongoDBDialect.ID_FIELDNAME, "modules" );
- }
- }