Package com.dp.nebula.wormhole.plugins.reader.mongoreader

Source Code of com.dp.nebula.wormhole.plugins.reader.mongoreader.MongoReaderTest

package com.dp.nebula.wormhole.plugins.reader.mongoreader;

import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.mock;

import java.util.HashMap;
import java.util.Map;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import com.dp.nebula.wormhole.common.BufferedLineExchanger;
import com.dp.nebula.wormhole.common.DefaultParam;
import com.dp.nebula.wormhole.common.interfaces.ILine;
import com.dp.nebula.wormhole.common.interfaces.IParam;
import com.dp.nebula.wormhole.common.interfaces.IPluginMonitor;
import com.dp.nebula.wormhole.plugins.common.MongoUtils;
import com.dp.nebula.wormhole.plugins.reader.hivereader.HiveReaderTest;
import com.mongodb.BasicDBObject;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.DBCursor;
import com.mongodb.Mongo;

import de.flapdoodle.embed.mongo.MongodExecutable;
import de.flapdoodle.embed.mongo.MongodProcess;
import de.flapdoodle.embed.mongo.MongodStarter;
import de.flapdoodle.embed.mongo.config.MongodConfig;
import de.flapdoodle.embed.mongo.distribution.Version;
import de.flapdoodle.embed.process.runtime.Network;

public class MongoReaderTest {
  private static final String DATABASE_NAME = "embedded";
  private static final int MONGODB_PORT = 12348;

  private MongodExecutable mongodExe;
  private MongodProcess mongod;
  private Mongo mongo;

  @SuppressWarnings("deprecation")
  @Before
  public void beforeEach() throws Exception {
    MongodStarter  runtime = MongodStarter .getDefaultInstance();
      mongodExe = runtime.prepare(new MongodConfig(Version.V2_0_1, MONGODB_PORT, Network.localhostIsIPv6()));
      mongod = mongodExe.start();
      mongo = new Mongo("localhost", MONGODB_PORT);
  }

  @After
  public void afterEach() throws Exception {
    mongo.close();
    if (mongod != null) {
      mongod.stop();
    }
      if (mongodExe != null){
        mongodExe.stop();
      }
  }

  @Test
  public void shouldCreateNewObjectInEmbeddedMongoDb() {
      // given
      DB db = mongo.getDB(DATABASE_NAME);
      DBCollection col = db.createCollection("testCollection", new BasicDBObject());
      //col.save(new BasicDBObject("testDoc", new Date()));
      BasicDBObject document = new BasicDBObject();
        document.put("id", 1001);
        document.put("msg", "hello world mongoDB in Java");
        col.insert(document);
    
        DBCursor cursor = col.find(null, MongoUtils.convertStringToDBObject("{ msg:1}"));
        while (cursor.hasNext()){
          System.out.println(cursor.next().toString());
        }
       
       
      //assertEquals(col.getCount(), 1);
     
    MongoReader mongoReader = new MongoReader();
    Map<String, String> params = new HashMap<String, String>();
    params.put(ParamKey.inputUri, "mongodb://localhost:" + MONGODB_PORT + "/embedded.testCollection");
    params.put(ParamKey.inputFields, "{ msg : 1 }");
    IParam iParam = new DefaultParam(params);
    mongoReader.setParam(iParam);
    BufferedLineExchanger bufLineExchanger = HiveReaderTest.getBufferedLineExchangerInstance();
   
    IPluginMonitor pluginMonitor = mock(IPluginMonitor.class);
    mongoReader.setMonitor(pluginMonitor);
   
    mongoReader.init();
    mongoReader.connection();
    mongoReader.read(bufLineExchanger);
    ILine line = bufLineExchanger.receive();
   
    System.out.println(line.getField(0));
    assertEquals("hello world mongoDB in Java", line.getField(0));
   
    mongoReader.finish();
  }

}
TOP

Related Classes of com.dp.nebula.wormhole.plugins.reader.mongoreader.MongoReaderTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.