下面列出了org.springframework.core.convert.ConverterNotFoundException#org.springframework.data.mongodb.UncategorizedMongoDbException 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@Test
public void testAggregateDailyStatistics(){
try {
DailyStatistic stat = repository.aggregateDailyStatistics("20140930");
} catch (ConverterNotFoundException cvnfe){
// For now, mapReduce in Fongo is experimental. MapReduce execution is working
// but SpringData cannot convert Fongo Rhino result into Java object
// ("No converter found capable of converting from type org.mozilla.javascript.UniqueTag to type java.lang.Integer")
} catch (UncategorizedMongoDbException ume){
// For now, mapReduce in Fongo is experimental. MapReduce execution is not working
// ("org.mozilla.javascript.EcmaError: TypeError: Cannot read property "0" from undefined")
} catch (RuntimeException re){
// For now, mapReduce in Fongo is experimental. MapReduce execution is working
// but SpringData cannot convert Fongo Rhino result into Java object
// ("json can't serialize type : class org.mozilla.javascript.UniqueTag")
}
}
@Override
public Feature save(String idApplication, Feature feature) throws MongoGeospatialException {
// TODO Auto-generated method stub
if(!mongoTemplate.collectionExists(collectionName+idApplication)){
DBCollection dbCollection = mongoTemplate.getCollection(collectionName+idApplication);
DBObject obj = new BasicDBObject();
obj.put("geometry", "2dsphere");
dbCollection.ensureIndex(obj);
}
try{
mongoTemplate.save(feature, collectionName+idApplication);
}
catch(UncategorizedMongoDbException uncategorizedMongoDbException){
throw new MongoGeospatialException();
}
return feature;
}
@Test(expected=MongoGeospatialException.class)
public void shouldThrowErrorWhenGeospatialIndexNotCreated() throws Exception{
String idApplication = "1";
//Fixture
Feature feature=Mockito.mock(Feature.class);
DBCollection dbCollection=Mockito.mock(DBCollection.class);
BasicDBObject obj=Mockito.mock(BasicDBObject.class);
Mockito.when(mongoTemplate.collectionExists(collectionName+idApplication)).thenReturn(false);
Mockito.when(mongoTemplate.getCollection(collectionName+idApplication)).thenReturn(dbCollection);
PowerMockito.whenNew(BasicDBObject.class).withNoArguments().thenReturn(obj);
Mockito.doThrow(UncategorizedMongoDbException.class).when(mongoTemplate).save(feature,collectionName+idApplication);
//Experimentation
featureRepository.save(idApplication, feature);
//Expectation
Mockito.verify(mongoTemplate).collectionExists(collectionName+idApplication);
Mockito.verify(mongoTemplate).save(feature,collectionName+idApplication);
}
@Test(expected=MongoGeospatialException.class)
public void shouldThrowErrorWhenGeospatialIndexNotCreated() throws Exception{
String idApplication = "1";
//Fixture
Feature feature=Mockito.mock(Feature.class);
DBCollection dbCollection=Mockito.mock(DBCollection.class);
BasicDBObject obj=Mockito.mock(BasicDBObject.class);
Mockito.when(mongoTemplate.collectionExists(collectionName+idApplication)).thenReturn(false);
Mockito.when(mongoTemplate.getCollection(collectionName+idApplication)).thenReturn(dbCollection);
PowerMockito.whenNew(BasicDBObject.class).withNoArguments().thenReturn(obj);
Mockito.doThrow(UncategorizedMongoDbException.class).when(mongoTemplate).save(feature,collectionName+idApplication);
//Experimentation
featureRepository.save(idApplication, feature);
//Expectation
Mockito.verify(mongoTemplate).collectionExists(collectionName+idApplication);
Mockito.verify(mongoTemplate).save(feature,collectionName+idApplication);
}
@Test
public void importRepositoryMongoGeospatialExceptionThenContinue() throws Exception {
String appIdentifier = "1";
String collectionNameMap = collectionMap+appIdentifier;
List<Feature> featureCollection = new ArrayList<Feature>();
featureCollection.add(feature1);
//Fixture
Mockito.when(mongoTemplate.collectionExists(collectionNameMap)).thenReturn(true);
Mockito.when(mongoTemplate.getCollection(collectionNameMap)).thenReturn(dbCollection);
PowerMockito.whenNew(BasicDBObject.class).withNoArguments().thenReturn(obj);
Mockito.when(obj.put("geometry", "2dsphere")).thenReturn(obj);
Mockito.when(feature1.getGeometry()).thenReturn(geometry1);
Mockito.doThrow(UncategorizedMongoDbException.class).when(mongoTemplate).save(feature1,collectionNameMap);
//Experimentation
importRepositoryCustom.saveGeoJson(appIdentifier, featureCollection );
//Expectation
verify(mongoTemplate).dropCollection(collectionNameMap);
verify(mongoTemplate).createCollection(collectionNameMap);
verify(dbCollection).ensureIndex(obj);
verify(mongoTemplate).save(feature1,collectionNameMap);
}
@Override
public Response toResponse(UncategorizedMongoDbException exception) {
Status errorStatus = Status.SERVICE_UNAVAILABLE;
LOG.error("Could not access database", exception);
return Response
.status(errorStatus)
.entity(new ErrorResponse(errorStatus.getStatusCode(), errorStatus.getReasonPhrase(),
"Could not access database:" + exception.getMessage())).build();
}