Fix the build since a new change for DATADOC-114 caused some tests to not compile cleanly.
This commit is contained in:
@@ -1,251 +1,255 @@
|
||||
package org.springframework.data.document.mongodb.analytics;
|
||||
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import com.mongodb.*;
|
||||
|
||||
import org.bson.types.ObjectId;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.springframework.data.document.analytics.ControllerCounter;
|
||||
import org.springframework.data.document.analytics.MvcEvent;
|
||||
import org.springframework.data.document.analytics.Parameters;
|
||||
import org.springframework.data.document.mongodb.MongoReader;
|
||||
import org.springframework.data.document.mongodb.MongoTemplate;
|
||||
import org.springframework.data.document.mongodb.convert.MongoConverter;
|
||||
import org.springframework.data.document.mongodb.mapping.MongoPersistentEntity;
|
||||
import org.springframework.data.document.mongodb.query.BasicQuery;
|
||||
import org.springframework.data.mapping.model.MappingContext;
|
||||
|
||||
|
||||
public class MvcAnalyticsTests {
|
||||
|
||||
private MongoTemplate mongoTemplate;
|
||||
private MongoTemplate mongoDummyTemplate;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
Mongo m = new Mongo();
|
||||
mongoTemplate = new MongoTemplate(m, "mvc");
|
||||
mongoDummyTemplate = new MongoTemplate(
|
||||
m,
|
||||
"mvc",
|
||||
new MongoConverter() {
|
||||
public void write(Object t, DBObject dbo) {
|
||||
}
|
||||
|
||||
public <S> S read(Class<S> clazz, DBObject dbo) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public <T> T convertObjectId(ObjectId id, Class<T> targetType) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public ObjectId convertObjectId(Object id) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public MappingContext<? extends MongoPersistentEntity<?>> getMappingContext() {
|
||||
return null;
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
public void clean() {
|
||||
mongoTemplate.dropCollection("mvc");
|
||||
mongoTemplate.createCollection("mvc");
|
||||
mongoTemplate.dropCollection("counters");
|
||||
mongoTemplate.createCollection("counters");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void loadMvcEventData() {
|
||||
|
||||
mongoTemplate.dropCollection("mvc");
|
||||
mongoTemplate.createCollection("mvc");
|
||||
// datasize, favoriteRestId
|
||||
createAndStoreMvcEvent(5, 1);
|
||||
createAndStoreMvcEvent(6, 2);
|
||||
createAndStoreMvcEvent(3, 3);
|
||||
createAndStoreMvcEvent(8, 4);
|
||||
|
||||
List<MvcEvent> mvcEvents = mongoTemplate.getCollection("mvc",
|
||||
MvcEvent.class);
|
||||
Assert.assertEquals(22, mvcEvents.size());
|
||||
|
||||
mongoDummyTemplate.getCollection("mvc", MvcEvent.class);
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void loadCounterData() {
|
||||
for (int i = 0; i < 10; i++) {
|
||||
storeCounterData("SignUpController", "createForm");
|
||||
storeCounterData("SignUpController", "create");
|
||||
storeCounterData("SignUpController", "show");
|
||||
storeCounterData("RestaurantController", "addFavoriteRestaurant");
|
||||
}
|
||||
for (int i = 0; i < 5; i++) {
|
||||
storeCounterData("RestaurantController", "list");
|
||||
storeCounterData("SignUpController", "show");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void queryCounterData() {
|
||||
DBObject query = QueryBuilder.start("name").is("SignUpController").get();
|
||||
for (DBObject dbo : mongoTemplate.getCollection("counters").find(query)) {
|
||||
System.out.println(dbo);
|
||||
}
|
||||
List<ControllerCounter> counters = mongoTemplate.find("counters", new BasicQuery("{ 'name' : 'SignUpController'} "), ControllerCounter.class);
|
||||
for (ControllerCounter controllerCounter : counters) {
|
||||
System.out.println(controllerCounter);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
*
|
||||
* var start = new Date(2010,9,1); var end = new Date(2010,11,1);
|
||||
* db.mvc.group( { cond: {"action": "addFavoriteRestaurant", "date": {$gte:
|
||||
* start, $lt: end}} , key: {"parameters.p1": true} , initial: {count: 0} ,
|
||||
* reduce: function(doc, out){ out.count++; } } );
|
||||
*/
|
||||
|
||||
@Test
|
||||
public void listAllMvcEvents() {
|
||||
List<MvcEvent> mvcEvents = mongoTemplate.getCollection("mvc",
|
||||
MvcEvent.class);
|
||||
for (MvcEvent mvcEvent : mvcEvents) {
|
||||
System.out.println(mvcEvent.getDate());
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void groupQuery() {
|
||||
// This circumvents exception translation
|
||||
DBCollection collection = mongoTemplate.getDb().getCollection(
|
||||
"mvc");
|
||||
|
||||
// QueryBuilder qb = new QueryBuilder();
|
||||
// qb.start("date").greaterThan(object)
|
||||
Calendar startDate = Calendar.getInstance();
|
||||
startDate.clear();
|
||||
startDate.set(Calendar.YEAR, 2010);
|
||||
startDate.set(Calendar.MONTH, 5);
|
||||
Calendar endDate = Calendar.getInstance();
|
||||
endDate.clear();
|
||||
endDate.set(Calendar.YEAR, 2010);
|
||||
endDate.set(Calendar.MONTH, 12);
|
||||
|
||||
/*
|
||||
* QueryBuilder qb = new QueryBuilder(); Query q =
|
||||
* qb.find("date").gte(startDate
|
||||
* .getTime()).lt(endDate.getTime()).and("action"
|
||||
* ).is("addFavoriteRestaurant").build(); DBObject cond2 =
|
||||
* q.getQueryObject();
|
||||
*/
|
||||
DBObject cond = QueryBuilder.start("date")
|
||||
.greaterThanEquals(startDate.getTime())
|
||||
.lessThan(endDate.getTime()).and("action")
|
||||
.is("addFavoriteRestaurant").get();
|
||||
DBObject key = new BasicDBObject("parameters.p1", true);
|
||||
/*
|
||||
* DBObject dateQ = new BasicDBObject(); dateQ.put("$gte",
|
||||
* startDate.getTime()); dateQ.put("$lt", endDate.getTime()); DBObject
|
||||
* cond = new BasicDBObject(); cond.put("action",
|
||||
* "addFavoriteRestaurant"); cond.put("date", dateQ);
|
||||
*/
|
||||
|
||||
DBObject intitial = new BasicDBObject("count", 0);
|
||||
DBObject result = collection.group(key, cond, intitial,
|
||||
"function(doc, out){ out.count++; }");
|
||||
if (result instanceof BasicDBList) {
|
||||
BasicDBList dbList = (BasicDBList) result;
|
||||
for (Object element : dbList) {
|
||||
DBObject dbo = (DBObject) element;
|
||||
System.out.println(dbo);
|
||||
}
|
||||
}
|
||||
System.out.println(result);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void storeControllerCounterInfo() {
|
||||
|
||||
BasicDBObject query = new BasicDBObject("name", "controller1");
|
||||
|
||||
BasicDBObject changes = new BasicDBObject();
|
||||
changes.put("$set", new BasicDBObject("name", "controller1"));
|
||||
changes.put("$inc", new BasicDBObject("count", 1));
|
||||
|
||||
//mongoTemplate.upsertAndModify(dbo("key","value"), inc("count",1));
|
||||
//dbo(set("name","controller"), inc("count", 1));
|
||||
|
||||
///mongoTemplate.update(collection("counters")
|
||||
|
||||
WriteResult r = mongoTemplate.getCollection("counters").update(query, changes, true, false);
|
||||
//{ "err" : "Modifiers and non-modifiers cannot be mixed" , "code" : 10154 , "n" : 0 , "ok" : 1.0}
|
||||
//{ "err" : null , "updatedExisting" : false , "upserted" : { "$oid" : "4cba814a5a4900000000495d"} , "n" : 1 , "ok" : 1.0}
|
||||
//{ "err" : null , "updatedExisting" : true , "n" : 1 , "ok" : 1.0}
|
||||
System.out.println(r);
|
||||
|
||||
// changes = new BasicDBObject("methods", new BasicDBObject("find", 1));
|
||||
// mongoTemplate.getCollection("counters").update(query, changes, true,
|
||||
// false);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updateMethodCounter() {
|
||||
DBObject query = new BasicDBObject("name", "controller1");
|
||||
DBObject changes = new BasicDBObject("$inc", new BasicDBObject("methods.find", 1));
|
||||
mongoTemplate.getDb().getCollection("counters").update(query, changes, true, false);
|
||||
}
|
||||
|
||||
|
||||
public void storeCounterData(String controllerName, String methodName) {
|
||||
BasicDBObject query = new BasicDBObject("name", controllerName);
|
||||
|
||||
BasicDBObject changes = new BasicDBObject();
|
||||
changes.put("$set", new BasicDBObject("name", controllerName));
|
||||
changes.put("$inc", new BasicDBObject("count", 1));
|
||||
|
||||
WriteResult r = mongoTemplate.getCollection("counters").update(query, changes, true, false);
|
||||
System.out.println(r);
|
||||
|
||||
changes = new BasicDBObject("$inc", new BasicDBObject("methods." + methodName, 1));
|
||||
r = mongoTemplate.getDb().getCollection("counters").update(query, changes, true, false);
|
||||
System.out.println(r);
|
||||
}
|
||||
|
||||
private void createAndStoreMvcEvent(int dataSize, int p1) {
|
||||
for (int i = 0; i < dataSize; i++) {
|
||||
MvcEvent event = generateEvent(p1);
|
||||
mongoTemplate.save("mvc", event);
|
||||
}
|
||||
}
|
||||
|
||||
private MvcEvent generateEvent(Integer p1) {
|
||||
MvcEvent event = new MvcEvent();
|
||||
|
||||
event.setController("RestaurantController");
|
||||
event.setAction("addFavoriteRestaurant");
|
||||
event.setDate(new Date());
|
||||
event.setRemoteUser("mpollack");
|
||||
event.setRequestAddress("127.0.0.1");
|
||||
event.setRequestUri("/myrestaurants-analytics/restaurants");
|
||||
Parameters params = new Parameters();
|
||||
params.setP1(p1.toString());
|
||||
params.setP2("2");
|
||||
event.setParameters(params);
|
||||
|
||||
return event;
|
||||
}
|
||||
}
|
||||
package org.springframework.data.document.mongodb.analytics;
|
||||
|
||||
import java.util.Calendar;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import com.mongodb.BasicDBList;
|
||||
import com.mongodb.BasicDBObject;
|
||||
import com.mongodb.DBCollection;
|
||||
import com.mongodb.DBObject;
|
||||
import com.mongodb.Mongo;
|
||||
import com.mongodb.QueryBuilder;
|
||||
import com.mongodb.WriteResult;
|
||||
import org.bson.types.ObjectId;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.springframework.data.document.analytics.ControllerCounter;
|
||||
import org.springframework.data.document.analytics.MvcEvent;
|
||||
import org.springframework.data.document.analytics.Parameters;
|
||||
import org.springframework.data.document.mongodb.MongoTemplate;
|
||||
import org.springframework.data.document.mongodb.convert.AbstractMongoConverter;
|
||||
import org.springframework.data.document.mongodb.mapping.MongoPersistentEntity;
|
||||
import org.springframework.data.document.mongodb.query.BasicQuery;
|
||||
import org.springframework.data.mapping.model.MappingContext;
|
||||
|
||||
|
||||
public class MvcAnalyticsTests {
|
||||
|
||||
private MongoTemplate mongoTemplate;
|
||||
private MongoTemplate mongoDummyTemplate;
|
||||
|
||||
@Before
|
||||
public void setUp() throws Exception {
|
||||
Mongo m = new Mongo();
|
||||
mongoTemplate = new MongoTemplate(m, "mvc");
|
||||
mongoDummyTemplate = new MongoTemplate(
|
||||
m,
|
||||
"mvc",
|
||||
new AbstractMongoConverter() {
|
||||
public void write(Object t, DBObject dbo) {
|
||||
}
|
||||
|
||||
public <S> S read(Class<S> clazz, DBObject dbo) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public <T> T convertObjectId(ObjectId id, Class<T> targetType) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public ObjectId convertObjectId(Object id) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public MappingContext<? extends MongoPersistentEntity<?>> getMappingContext() {
|
||||
return null;
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
public void clean() {
|
||||
mongoTemplate.dropCollection("mvc");
|
||||
mongoTemplate.createCollection("mvc");
|
||||
mongoTemplate.dropCollection("counters");
|
||||
mongoTemplate.createCollection("counters");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void loadMvcEventData() {
|
||||
|
||||
mongoTemplate.dropCollection("mvc");
|
||||
mongoTemplate.createCollection("mvc");
|
||||
// datasize, favoriteRestId
|
||||
createAndStoreMvcEvent(5, 1);
|
||||
createAndStoreMvcEvent(6, 2);
|
||||
createAndStoreMvcEvent(3, 3);
|
||||
createAndStoreMvcEvent(8, 4);
|
||||
|
||||
List<MvcEvent> mvcEvents = mongoTemplate.getCollection("mvc",
|
||||
MvcEvent.class);
|
||||
Assert.assertEquals(22, mvcEvents.size());
|
||||
|
||||
mongoDummyTemplate.getCollection("mvc", MvcEvent.class);
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void loadCounterData() {
|
||||
for (int i = 0; i < 10; i++) {
|
||||
storeCounterData("SignUpController", "createForm");
|
||||
storeCounterData("SignUpController", "create");
|
||||
storeCounterData("SignUpController", "show");
|
||||
storeCounterData("RestaurantController", "addFavoriteRestaurant");
|
||||
}
|
||||
for (int i = 0; i < 5; i++) {
|
||||
storeCounterData("RestaurantController", "list");
|
||||
storeCounterData("SignUpController", "show");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
public void queryCounterData() {
|
||||
DBObject query = QueryBuilder.start("name").is("SignUpController").get();
|
||||
for (DBObject dbo : mongoTemplate.getCollection("counters").find(query)) {
|
||||
System.out.println(dbo);
|
||||
}
|
||||
List<ControllerCounter> counters = mongoTemplate.find("counters", new BasicQuery("{ 'name' : 'SignUpController'} "), ControllerCounter.class);
|
||||
for (ControllerCounter controllerCounter : counters) {
|
||||
System.out.println(controllerCounter);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
*
|
||||
* var start = new Date(2010,9,1); var end = new Date(2010,11,1);
|
||||
* db.mvc.group( { cond: {"action": "addFavoriteRestaurant", "date": {$gte:
|
||||
* start, $lt: end}} , key: {"parameters.p1": true} , initial: {count: 0} ,
|
||||
* reduce: function(doc, out){ out.count++; } } );
|
||||
*/
|
||||
|
||||
@Test
|
||||
public void listAllMvcEvents() {
|
||||
List<MvcEvent> mvcEvents = mongoTemplate.getCollection("mvc",
|
||||
MvcEvent.class);
|
||||
for (MvcEvent mvcEvent : mvcEvents) {
|
||||
System.out.println(mvcEvent.getDate());
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void groupQuery() {
|
||||
// This circumvents exception translation
|
||||
DBCollection collection = mongoTemplate.getDb().getCollection(
|
||||
"mvc");
|
||||
|
||||
// QueryBuilder qb = new QueryBuilder();
|
||||
// qb.start("date").greaterThan(object)
|
||||
Calendar startDate = Calendar.getInstance();
|
||||
startDate.clear();
|
||||
startDate.set(Calendar.YEAR, 2010);
|
||||
startDate.set(Calendar.MONTH, 5);
|
||||
Calendar endDate = Calendar.getInstance();
|
||||
endDate.clear();
|
||||
endDate.set(Calendar.YEAR, 2010);
|
||||
endDate.set(Calendar.MONTH, 12);
|
||||
|
||||
/*
|
||||
* QueryBuilder qb = new QueryBuilder(); Query q =
|
||||
* qb.find("date").gte(startDate
|
||||
* .getTime()).lt(endDate.getTime()).and("action"
|
||||
* ).is("addFavoriteRestaurant").build(); DBObject cond2 =
|
||||
* q.getQueryObject();
|
||||
*/
|
||||
DBObject cond = QueryBuilder.start("date")
|
||||
.greaterThanEquals(startDate.getTime())
|
||||
.lessThan(endDate.getTime()).and("action")
|
||||
.is("addFavoriteRestaurant").get();
|
||||
DBObject key = new BasicDBObject("parameters.p1", true);
|
||||
/*
|
||||
* DBObject dateQ = new BasicDBObject(); dateQ.put("$gte",
|
||||
* startDate.getTime()); dateQ.put("$lt", endDate.getTime()); DBObject
|
||||
* cond = new BasicDBObject(); cond.put("action",
|
||||
* "addFavoriteRestaurant"); cond.put("date", dateQ);
|
||||
*/
|
||||
|
||||
DBObject intitial = new BasicDBObject("count", 0);
|
||||
DBObject result = collection.group(key, cond, intitial,
|
||||
"function(doc, out){ out.count++; }");
|
||||
if (result instanceof BasicDBList) {
|
||||
BasicDBList dbList = (BasicDBList) result;
|
||||
for (Object element : dbList) {
|
||||
DBObject dbo = (DBObject) element;
|
||||
System.out.println(dbo);
|
||||
}
|
||||
}
|
||||
System.out.println(result);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void storeControllerCounterInfo() {
|
||||
|
||||
BasicDBObject query = new BasicDBObject("name", "controller1");
|
||||
|
||||
BasicDBObject changes = new BasicDBObject();
|
||||
changes.put("$set", new BasicDBObject("name", "controller1"));
|
||||
changes.put("$inc", new BasicDBObject("count", 1));
|
||||
|
||||
//mongoTemplate.upsertAndModify(dbo("key","value"), inc("count",1));
|
||||
//dbo(set("name","controller"), inc("count", 1));
|
||||
|
||||
///mongoTemplate.update(collection("counters")
|
||||
|
||||
WriteResult r = mongoTemplate.getCollection("counters").update(query, changes, true, false);
|
||||
//{ "err" : "Modifiers and non-modifiers cannot be mixed" , "code" : 10154 , "n" : 0 , "ok" : 1.0}
|
||||
//{ "err" : null , "updatedExisting" : false , "upserted" : { "$oid" : "4cba814a5a4900000000495d"} , "n" : 1 , "ok" : 1.0}
|
||||
//{ "err" : null , "updatedExisting" : true , "n" : 1 , "ok" : 1.0}
|
||||
System.out.println(r);
|
||||
|
||||
// changes = new BasicDBObject("methods", new BasicDBObject("find", 1));
|
||||
// mongoTemplate.getCollection("counters").update(query, changes, true,
|
||||
// false);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void updateMethodCounter() {
|
||||
DBObject query = new BasicDBObject("name", "controller1");
|
||||
DBObject changes = new BasicDBObject("$inc", new BasicDBObject("methods.find", 1));
|
||||
mongoTemplate.getDb().getCollection("counters").update(query, changes, true, false);
|
||||
}
|
||||
|
||||
|
||||
public void storeCounterData(String controllerName, String methodName) {
|
||||
BasicDBObject query = new BasicDBObject("name", controllerName);
|
||||
|
||||
BasicDBObject changes = new BasicDBObject();
|
||||
changes.put("$set", new BasicDBObject("name", controllerName));
|
||||
changes.put("$inc", new BasicDBObject("count", 1));
|
||||
|
||||
WriteResult r = mongoTemplate.getCollection("counters").update(query, changes, true, false);
|
||||
System.out.println(r);
|
||||
|
||||
changes = new BasicDBObject("$inc", new BasicDBObject("methods." + methodName, 1));
|
||||
r = mongoTemplate.getDb().getCollection("counters").update(query, changes, true, false);
|
||||
System.out.println(r);
|
||||
}
|
||||
|
||||
private void createAndStoreMvcEvent(int dataSize, int p1) {
|
||||
for (int i = 0; i < dataSize; i++) {
|
||||
MvcEvent event = generateEvent(p1);
|
||||
mongoTemplate.save("mvc", event);
|
||||
}
|
||||
}
|
||||
|
||||
private MvcEvent generateEvent(Integer p1) {
|
||||
MvcEvent event = new MvcEvent();
|
||||
|
||||
event.setController("RestaurantController");
|
||||
event.setAction("addFavoriteRestaurant");
|
||||
event.setDate(new Date());
|
||||
event.setRemoteUser("mpollack");
|
||||
event.setRequestAddress("127.0.0.1");
|
||||
event.setRequestUri("/myrestaurants-analytics/restaurants");
|
||||
Parameters params = new Parameters();
|
||||
params.setP1(p1.toString());
|
||||
params.setP2("2");
|
||||
event.setParameters(params);
|
||||
|
||||
return event;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user