package com.lordofthejars.nosqlunit.demo.mongodb;
import static com.lordofthejars.nosqlunit.mongodb.ManagedMongoDb.MongoServerRuleBuilder.newManagedMongoDbRule;
import static com.lordofthejars.nosqlunit.mongodb.MongoDbRule.MongoDbRuleBuilder.newMongoDbRule;
import static org.hamcrest.collection.IsCollectionWithSize.hasSize;
import static org.hamcrest.collection.IsIn.isIn;
import static org.junit.Assert.assertThat;
import java.util.List;
import javax.inject.Inject;
import com.mongodb.MongoClient;
import org.junit.ClassRule;
import org.junit.Rule;
import org.junit.Test;
import com.lordofthejars.nosqlunit.annotation.UsingDataSet;
import com.lordofthejars.nosqlunit.core.LoadStrategyEnum;
import com.lordofthejars.nosqlunit.demo.model.Book;
import com.lordofthejars.nosqlunit.mongodb.ManagedMongoDb;
import com.lordofthejars.nosqlunit.mongodb.MongoDbRule;
import com.mongodb.DBCollection;
import com.mongodb.Mongo;
public class WhenYouFindIndexedBooks {
@ClassRule
public static ManagedMongoDb managedMongoDb = newManagedMongoDbRule().mongodPath("/opt/mongo").appendSingleCommandLineArguments("-vvv")
.build();
@Rule
public MongoDbRule remoteMongoDbRule = newMongoDbRule().defaultManagedMongoDb("test");
@Inject
private MongoClient mongo;
@Test
@UsingDataSet(locations = "initialDataIndex.json", loadStrategy = LoadStrategyEnum.CLEAN_INSERT)
public void manager_should_return_all_inserted_books() {
BookManager bookManager = new BookManager(bookCollection());
List<Book> books = bookManager.findAll();
Book expectedBook = new Book("The Hobbit", 293);
assertThat(books, hasSize(1));
assertThat(expectedBook, isIn(books));
}
private DBCollection bookCollection() {
return mongo.getDB("test").getCollection(Book.class.getSimpleName());
}
}