package com.oscerd.github.mongodb;
import java.io.IOException;
import java.util.Arrays;
import java.util.Date;
import java.util.Properties;
import java.util.Set;
import org.junit.Test;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.DBObject;
import com.mongodb.MongoClient;
import com.oscerd.github.mongodb.config.MongoConfig;
import com.oscerd.github.mongodb.config.MongoPropertyReader;
public class MongoDBTest {
@Test
public void connection1() throws IOException {
MongoClient mongoClient;
MongoPropertyReader reader = new MongoPropertyReader(
"config.properties");
Properties properties = reader.getProperties();
org.junit.Assert.assertNotNull(properties);
MongoConfig config = new MongoConfig(
properties.getProperty("mongodb.host"),
Integer.parseInt(properties.getProperty("mongodb.port")));
mongoClient = new MongoClient(config.getMongoHost(),
config.getMongoPort());
DB db = mongoClient.getDB("mydb");
org.junit.Assert.assertNotNull(db);
db.dropDatabase();
mongoClient.close();
}
@Test
public void collections() throws IOException {
MongoClient mongoClient;
MongoPropertyReader reader = new MongoPropertyReader(
"config.properties");
Properties properties = reader.getProperties();
org.junit.Assert.assertNotNull(properties);
MongoConfig config = new MongoConfig(
properties.getProperty("mongodb.host"),
Integer.parseInt(properties.getProperty("mongodb.port")));
mongoClient = new MongoClient(config.getMongoHost(),
config.getMongoPort());
DB db = mongoClient.getDB("mydb");
org.junit.Assert.assertNotNull(db);
Set<String> colls = db.getCollectionNames();
org.junit.Assert.assertEquals(0, colls.size());
db.dropDatabase();
mongoClient.close();
}
@Test
public void collectionInsert() throws IOException {
MongoClient mongoClient;
MongoPropertyReader reader = new MongoPropertyReader(
"config.properties");
Properties properties = reader.getProperties();
org.junit.Assert.assertNotNull(properties);
MongoConfig config = new MongoConfig(
properties.getProperty("mongodb.host"),
Integer.parseInt(properties.getProperty("mongodb.port")));
mongoClient = new MongoClient(config.getMongoHost(),
config.getMongoPort());
DB db = mongoClient.getDB("mydb");
org.junit.Assert.assertNotNull(db);
BasicDBObject document = new BasicDBObject("author", "andrea").append(
"text", "Pippo").append("date", new Date());
DBCollection coll = db.getCollection("pippo");
coll.insert(document);
Set<String> colls = db.getCollectionNames();
org.junit.Assert.assertEquals(2, colls.size());
DBCursor cursor = coll.find();
org.junit.Assert.assertEquals(1, cursor.size());
coll.drop();
db.dropDatabase();
mongoClient.close();
}
@Test
public void collectionFindOne() throws IOException {
MongoClient mongoClient;
MongoPropertyReader reader = new MongoPropertyReader(
"config.properties");
Properties properties = reader.getProperties();
org.junit.Assert.assertNotNull(properties);
MongoConfig config = new MongoConfig(
properties.getProperty("mongodb.host"),
Integer.parseInt(properties.getProperty("mongodb.port")));
mongoClient = new MongoClient(config.getMongoHost(),
config.getMongoPort());
DB db = mongoClient.getDB("mydb");
org.junit.Assert.assertNotNull(db);
BasicDBObject document = new BasicDBObject("author", "andrea").append(
"text", "Pippo").append("date", new Date());
BasicDBObject document1 = new BasicDBObject("author", "peppe").append(
"text", "Pluto").append("date", new Date());
BasicDBObject document2 = new BasicDBObject("author", "joseph").append(
"text", "Paperino").append("date", new Date());
DBCollection coll = db.getCollection("pippo");
coll.insert(document);
coll.insert(document1);
coll.insert(document2);
Set<String> colls = db.getCollectionNames();
org.junit.Assert.assertEquals(2, colls.size());
DBObject obj = coll.findOne();
org.junit.Assert.assertEquals(obj.get("author"), "andrea");
org.junit.Assert.assertEquals(obj.get("text"), "Pippo");
coll.drop();
db.dropDatabase();
mongoClient.close();
}
@Test
public void collectionFind() throws IOException {
MongoClient mongoClient;
MongoPropertyReader reader = new MongoPropertyReader(
"config.properties");
Properties properties = reader.getProperties();
org.junit.Assert.assertNotNull(properties);
MongoConfig config = new MongoConfig(
properties.getProperty("mongodb.host"),
Integer.parseInt(properties.getProperty("mongodb.port")));
mongoClient = new MongoClient(config.getMongoHost(),
config.getMongoPort());
DB db = mongoClient.getDB("mydb");
org.junit.Assert.assertNotNull(db);
BasicDBObject document = new BasicDBObject("author", "andrea").append(
"text", "Pippo").append("date", new Date());
BasicDBObject document1 = new BasicDBObject("author", "peppe").append(
"text", "Pluto").append("date", new Date());
BasicDBObject document2 = new BasicDBObject("author", "joseph").append(
"text", "Paperino").append("date", new Date());
DBCollection coll = db.getCollection("pippo");
coll.insert(document);
coll.insert(document1);
coll.insert(document2);
Set<String> colls = db.getCollectionNames();
org.junit.Assert.assertEquals(2, colls.size());
DBCursor cursor = coll.find();
org.junit.Assert.assertEquals(3, cursor.size());
coll.drop();
db.dropDatabase();
mongoClient.close();
}
@Test
public void collectionFindQuery() throws IOException {
MongoClient mongoClient;
MongoPropertyReader reader = new MongoPropertyReader(
"config.properties");
Properties properties = reader.getProperties();
org.junit.Assert.assertNotNull(properties);
MongoConfig config = new MongoConfig(
properties.getProperty("mongodb.host"),
Integer.parseInt(properties.getProperty("mongodb.port")));
mongoClient = new MongoClient(config.getMongoHost(),
config.getMongoPort());
DB db = mongoClient.getDB("mydb");
org.junit.Assert.assertNotNull(db);
BasicDBObject document = new BasicDBObject("author", "andrea").append(
"text", "Pippo").append("date", new Date());
BasicDBObject document1 = new BasicDBObject("author", "peppe").append(
"text", "Pluto").append("date", new Date());
BasicDBObject document2 = new BasicDBObject("author", "joseph").append(
"text", "Paperino").append("date", new Date());
DBCollection coll = db.getCollection("pippo");
coll.insert(document);
coll.insert(document1);
coll.insert(document2);
Set<String> colls = db.getCollectionNames();
org.junit.Assert.assertEquals(2, colls.size());
BasicDBObject query = new BasicDBObject("author", "peppe").append(
"text", "Pluto");
DBCursor cursor = coll.find(query);
org.junit.Assert.assertEquals(1, cursor.size());
DBObject doc = cursor.next();
org.junit.Assert.assertEquals("peppe", doc.get("author"));
org.junit.Assert.assertEquals("Pluto", doc.get("text"));
coll.drop();
db.dropDatabase();
mongoClient.close();
}
@Test
public void collectionUpdate() throws IOException {
MongoClient mongoClient;
MongoPropertyReader reader = new MongoPropertyReader(
"config.properties");
Properties properties = reader.getProperties();
org.junit.Assert.assertNotNull(properties);
MongoConfig config = new MongoConfig(
properties.getProperty("mongodb.host"),
Integer.parseInt(properties.getProperty("mongodb.port")));
mongoClient = new MongoClient(config.getMongoHost(),
config.getMongoPort());
DB db = mongoClient.getDB("mydb");
org.junit.Assert.assertNotNull(db);
BasicDBObject document = new BasicDBObject("author", "andrea").append(
"text", "Pippo").append("date", new Date());
BasicDBObject document1 = new BasicDBObject("author", "peppe").append(
"text", "Pluto").append("date", new Date());
BasicDBObject document2 = new BasicDBObject("author", "joseph").append(
"text", "Paperino").append("date", new Date());
DBCollection coll = db.getCollection("pippo");
coll.insert(document);
coll.insert(document1);
coll.insert(document2);
Set<String> colls = db.getCollectionNames();
org.junit.Assert.assertEquals(2, colls.size());
BasicDBObject query = new BasicDBObject("author", "peppe").append(
"text", "Pluto");
BasicDBObject set = new BasicDBObject("$set",new BasicDBObject("author","joseph").append("text", "Minnie"));
coll.update(query,set);
DBCursor cursor = coll.find(query);
org.junit.Assert.assertEquals(0, cursor.size());
query = new BasicDBObject("author", "joseph").append(
"text", "Minnie");
cursor = coll.find(query);
org.junit.Assert.assertEquals(1, cursor.size());
DBObject doc = cursor.next();
org.junit.Assert.assertEquals("joseph", doc.get("author"));
org.junit.Assert.assertEquals("Minnie", doc.get("text"));
coll.drop();
db.dropDatabase();
mongoClient.close();
}
@Test
public void collectionUpsert() throws IOException {
MongoClient mongoClient;
MongoPropertyReader reader = new MongoPropertyReader(
"config.properties");
Properties properties = reader.getProperties();
org.junit.Assert.assertNotNull(properties);
MongoConfig config = new MongoConfig(
properties.getProperty("mongodb.host"),
Integer.parseInt(properties.getProperty("mongodb.port")));
mongoClient = new MongoClient(config.getMongoHost(),
config.getMongoPort());
DB db = mongoClient.getDB("mydb");
org.junit.Assert.assertNotNull(db);
DBCollection coll = db.getCollection("pippo");
BasicDBObject query = new BasicDBObject("author", "jimmy").append(
"text", "Willy");
DBCursor cursor = coll.find(query);
//org.junit.Assert.assertEquals(0, cursor.size());
String[] comments = new String[]{"Looks Great!","Boring..","Nice"};
BasicDBObject set = new BasicDBObject("$set",new BasicDBObject("comments", comments));
coll.update(query,set,true, false);
cursor = coll.find(query);
org.junit.Assert.assertEquals(1, cursor.size());
DBObject doc = cursor.next();
org.junit.Assert.assertEquals("jimmy", doc.get("author"));
org.junit.Assert.assertEquals("Willy", doc.get("text"));
org.junit.Assert.assertEquals(Arrays.asList(comments), doc.get("comments"));
coll.drop();
db.dropDatabase();
mongoClient.close();
}
}