@Test public void testRequireAction() throws JsonException { LocalQuery q = new LocalQuery(); q.requireAction(Action.UPDATE); List<DatabaseDocument<MongoType>> ds = mdc.getDocumentReader().getDocuments(new MongoQuery(q.toJson()), 3); if (ds.size() != 0) { fail("Got documents for UPDATE, shouldn't have."); } q = new LocalQuery(); q.requireAction(Action.ADD); ds = mdc.getDocumentReader().getDocuments(new MongoQuery(q.toJson()), 3); if (ds.size() != 1) { fail("Should have gotten a document back for ADD..."); } if (ds.get(0).getAction() != Action.ADD || !ds.get(0).getContentField("name").equals(test.getContentField("name"))) { fail("Didn't get the correct document for ADD..."); } q = new LocalQuery(); q.requireAction(Action.DELETE); ds = mdc.getDocumentReader().getDocuments(new MongoQuery(q.toJson()), 3); if (ds.size() != 1) { fail("Should have gotten a document back for DELETE..."); } }
private void createAndConnect() throws Exception { mdc = Guice.createInjector(new TestModule("junit-TaggingModelTest")) .getInstance(MongoConnector.class); mdc.waitForWrites(true); mdc.connect(); }
@Test public void testRequireID() { Document d = mdc.getDocumentReader().getDocument(new MongoQuery()); MongoQuery mdq = new MongoQuery(); mdq.requireID(d.getID()); if (null == mdc.getDocumentReader().getDocument(mdq)) { fail("Did not find a document with expected ID"); } if (!mdc.getDocumentReader().getDocument(mdq).isEqual(d)) { fail("Found wrong document! " + d.getID()); } }
@Test public void testMongoDatabaseQuery() throws JsonException { LocalQuery lq = new LocalQuery(); lq.requireTouchedByStage("test"); lq.requireNotTouchedByStage("test2"); lq.requireContentFieldExists("exists"); MongoQuery q = new MongoQuery(lq.toJson()); Document d = mdc.getDocumentReader().getDocument(q); if (d != null) { fail("Expected no document to be returned"); } lq = new LocalQuery(); if (mdc.getDocumentReader().getDocument(new MongoQuery(lq.toJson())) == null) { fail("Expected to find a document"); } }
@Test public void testRequireContentFieldNotExists() throws JsonException { LocalQuery q = new LocalQuery(); q.requireContentFieldNotExists("number"); List<DatabaseDocument<MongoType>> ds = mdc.getDocumentReader().getDocuments(new MongoQuery(q.toJson()), 3); if (ds.size() != 2) { fail("Received incorrect number of documents.."); } q = new LocalQuery(); q.requireContentFieldNotExists("name"); ds = mdc.getDocumentReader().getDocuments(new MongoQuery(q.toJson()), 3); if (ds.size() != 1) { fail("Received incorrect number of documents.."); } }
public long insertCurrentDocuments(int count) throws Exception { long start = System.currentTimeMillis(); for (int i = 0; i < count; i++) { MongoDocument d = new MongoDocument(); d.putContentField(getRandomString(5), getRandomString(20)); mdc.getDocumentWriter().insert(d); } return System.currentTimeMillis() - start; }
@Test public void testRequireNotTouchedByStage() throws JsonException { LocalQuery q = new LocalQuery(); q.requireNotTouchedByStage("xyz"); List<DatabaseDocument<MongoType>> ds = mdc.getDocumentReader().getDocuments(new MongoQuery(q.toJson()), 3); if (ds.size() != 3) { fail("Received incorrect number of documents.."); } Document d = mdc.getDocumentWriter().getAndTag(new MongoQuery(), "xyz"); if (d == null) { fail("Should have gotten a document back..."); } mdc.getDocumentWriter().markTouched(d.getID(), "xyz"); ds = mdc.getDocumentReader().getDocuments(new MongoQuery(q.toJson()), 3); if (ds.size() != 2) { fail("Received incorrect number of documents.."); } }
@Before public void setUp() throws Exception { mdc = new MongoConnector( DatabaseConfigurationFactory.getDatabaseConfiguration("junit-QueryTest")); mdc.waitForWrites(true); test = new MongoDocument(); test.setAction(Action.ADD); test.putContentField("name", "test"); test.putMetadataField("date", new Date()); test2 = new MongoDocument(); test2.setAction(Action.DELETE); test2.putContentField("name", "test"); test2.putContentField("number", 2); test2.putMetadataField("date", new Date()); random = new MongoDocument(); try { mdc.connect(); } catch (IOException e) { fail("IOException when establishing connection"); } DatabaseDocument<MongoType> d; while ((d = mdc.getDocumentReader().getDocument(new MongoQuery())) != null) { mdc.getDocumentWriter().delete(d); } mdc.getDocumentWriter().insert(test); mdc.getDocumentWriter().insert(test2); mdc.getDocumentWriter().insert(random); }
public long getCurrent(int count, String tag) { long start = System.currentTimeMillis(); System.out.println("Getting " + count + " documents for '" + tag + "'"); MongoQuery mq = new MongoQuery(); MongoDocumentIO reader = mdc.getDocumentReader(); for (int i = 0; i < count; i++) { if (i % (count / 10) == 0) { System.out.print('.'); } reader.getAndTag(mq, tag); } System.out.println(); return System.currentTimeMillis() - start; }
@Test public void testFromJSON() throws JsonException { LocalQuery q = new LocalQuery(); MongoQuery mdq = new MongoQuery(); mdq.fromJson(q.toJson()); if (mdq.toDBObject().keySet().size() != 0) { fail("Expected query to be empty"); } q.requireContentFieldExists("name"); mdq.fromJson(q.toJson()); if (mdq.toDBObject().keySet().size() != 1) { fail("Expected query to have one value"); } List<DatabaseDocument<MongoType>> list = mdc.getDocumentReader().getDocuments(mdq, 142); if (list.size() != 2) { fail("Expected to find two documents"); } for (Document d : list) { if (!d.hasContentField("name")) { fail("Fetched document is missing content field name"); } } }
@After public void reset() throws Exception { mdc.getDB().dropDatabase(); createAndConnect(); }