import
java.util.Date;
import
static
org.junit.Assert.assertEquals;
import
org.junit.Test;
import
java.net.UnknownHostException;
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.mongodb.MongoException;
public
class
JUnitTestingOfMongoDBCollection {
@Test
public
void
testInsertedAndUpdatedDocument()
throws
Exception {
try
{
/**** Connect to MongoDB ****/
MongoClient mongo =
new
MongoClient(
"localhost"
,
27017
);
/**** Get database ****/
DB db = mongo.getDB(
"geeksforgeeks"
);
DBCollection table = db.getCollection(
"authors"
);
/**** Insert ****/
BasicDBObject document =
new
BasicDBObject();
document.put(
"name"
,
"author1"
);
document.put(
"age"
,
30
);
document.put(
"technology"
,
"java,mongodb"
);
document.put(
"createdDate"
,
new
Date());
table.insert(document);
/**** Find and display ****/
BasicDBObject searchQuery =
new
BasicDBObject();
searchQuery.put(
"name"
,
"author1"
);
DBCursor cursor = table.find(searchQuery);
while
(cursor.hasNext()) {
DBObject object = cursor.next();
assertEquals(
"author1"
, object.get(
"name"
).toString());
assertEquals(
30
, Integer.parseInt(object.get(
"age"
).toString()));
assertEquals(
"java,mongodb"
, object.get(
"technology"
).toString());
}
/**** Update ****/
BasicDBObject query =
new
BasicDBObject();
query.put(
"name"
,
"author1"
);
BasicDBObject newDocument =
new
BasicDBObject();
newDocument.put(
"technology"
,
"java,.net,mongodb"
);
newDocument.put(
"numberofposts"
,
"10"
);
BasicDBObject updateObj =
new
BasicDBObject();
updateObj.put(
"$set"
, newDocument);
table.update(query, updateObj);
BasicDBObject searchQuery2
=
new
BasicDBObject().append(
"name"
,
"author1"
);
DBCursor cursor2 = table.find(searchQuery2);
while
(cursor2.hasNext()) {
DBObject object = cursor2.next();
assertEquals(
"author1"
, object.get(
"name"
).toString());
assertEquals(
30
, Integer.parseInt(object.get(
"age"
).toString()));
assertEquals(
"java,.net,mongodb"
, object.get(
"technology"
).toString());
assertEquals(
"10"
, object.get(
"numberofposts"
).toString());
}
}
catch
(UnknownHostException e) {
e.printStackTrace();
}
catch
(MongoException e) {
e.printStackTrace();
}
}
}