Revision 42191
Added by Sandro La Bruzzo almost 8 years ago
MongoQueryParserTest.java | ||
---|---|---|
1 | 1 |
package eu.dnetlib.data.oai.store.parser; |
2 | 2 |
|
3 |
import static org.junit.Assert.assertEquals; |
|
4 |
|
|
5 | 3 |
import java.time.LocalDateTime; |
4 |
import java.time.ZoneId; |
|
6 | 5 |
import java.time.format.DateTimeFormatter; |
6 |
import java.util.Date; |
|
7 | 7 |
|
8 |
import com.google.common.collect.Lists; |
|
9 |
import com.mongodb.BasicDBObject; |
|
10 |
import com.mongodb.DBObject; |
|
11 |
import com.mongodb.util.JSON; |
|
12 |
import eu.dnetlib.oai.parser.MongoQueryParser; |
|
8 | 13 |
import org.apache.commons.logging.Log; |
9 | 14 |
import org.apache.commons.logging.LogFactory; |
10 | 15 |
import org.bson.conversions.Bson; |
11 | 16 |
import org.bson.types.ObjectId; |
12 | 17 |
import org.junit.Test; |
13 | 18 |
|
14 |
import com.google.common.collect.Lists; |
|
15 |
import com.mongodb.BasicDBObject; |
|
16 |
import com.mongodb.DBObject; |
|
17 |
import com.mongodb.util.JSON; |
|
19 |
import static org.junit.Assert.assertEquals; |
|
18 | 20 |
|
19 |
import eu.dnetlib.oai.parser.MongoQueryParser; |
|
20 |
|
|
21 | 21 |
public class MongoQueryParserTest { |
22 | 22 |
|
23 | 23 |
private static final Log log = LogFactory.getLog(MongoQueryParserTest.class); // NOPMD by marko on 11/24/08 5:02 PM |
... | ... | |
93 | 93 |
|
94 | 94 |
@Test |
95 | 95 |
public void testParseUntilDatestamp() { |
96 |
final LocalDateTime dateTime = this.parseDate("2014-04-03T00:00:00.000Z"); |
|
97 |
// { "$and" : [ { "oaftype" : { "$ne" : "person"}} , { "datestamp" : { "$lt" : { "$date" : "2014-04-03T00:00:00.000Z"}}}]} |
|
96 |
final Date dateTime = Date.from(this.parseDate("2014-04-03T00:00:00.000Z").atZone(ZoneId.systemDefault()).toInstant()); |
|
98 | 97 |
final BasicDBObject expected = |
99 | 98 |
new BasicDBObject("$and", Lists.newArrayList(new BasicDBObject("oaftype", new BasicDBObject("$ne", "person")), new BasicDBObject( |
100 | 99 |
"datestamp", new BasicDBObject("$lt", dateTime)))); |
101 |
// System.out.println(expected); |
|
102 | 100 |
final Bson o = this.mongoParser.parse("(oaftype <> \"person\") AND datestamp <= 2014-04-02"); |
101 |
System.out.println("o.toString() = " + expected.toString()); |
|
102 |
System.out.println("o.toString() = " + o.toString()); |
|
103 |
|
|
103 | 104 |
assertEquals(expected, o); |
104 |
// System.out.println(o); |
|
105 | 105 |
} |
106 | 106 |
|
107 | 107 |
@Test |
... | ... | |
114 | 114 |
private LocalDateTime parseDate(final String date) { |
115 | 115 |
final DateTimeFormatter dateNoTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); |
116 | 116 |
final DateTimeFormatter iso8601NoMsTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ssZ"); |
117 |
final DateTimeFormatter iso8601Formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss'.'SSS'Z'");;
|
|
117 |
final DateTimeFormatter iso8601Formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss'.'SSS'Z'"); |
|
118 | 118 |
try { |
119 | 119 |
System.err.println("Using default " + iso8601Formatter.getClass()); |
120 | 120 |
return LocalDateTime.parse(date, iso8601Formatter); |
Also available in: Unified diff
fixed Test