Package com.mongodb.hadoop.bookstore

Source Code of com.mongodb.hadoop.bookstore.BookstoreTest

package com.mongodb.hadoop.bookstore;

import com.mongodb.BasicDBObject;
import com.mongodb.DBCollection;
import com.mongodb.DBObject;
import com.mongodb.MongoClient;
import com.mongodb.MongoClientURI;
import com.mongodb.hadoop.BSONFileInputFormat;
import com.mongodb.hadoop.mapred.MongoOutputFormat;
import com.mongodb.hadoop.testutils.BaseHadoopTest;
import com.mongodb.hadoop.testutils.MapReduceJob;
import com.mongodb.hadoop.util.MongoClientURIBuilder;
import org.junit.Assert;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.File;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import java.net.UnknownHostException;
import java.util.List;

import static org.junit.Assert.assertNotNull;

public class BookstoreTest extends BaseHadoopTest {
    private static final Logger LOG = LoggerFactory.getLogger(BookstoreTest.class);
    public static final URI INVENTORY_BSON;


    private static final File JAR_PATH;

    static {
        try {
            File home = new File(PROJECT_HOME, "core");
            URL resource = BookstoreTest.class.getResource("/bookstore-dump/inventory.bson");
            INVENTORY_BSON = resource.toURI();
            JAR_PATH = findProjectJar(home, true);
        } catch (URISyntaxException e) {
            throw new RuntimeException(e);
        }
    }

    @Test
    public void tagsIndex() throws URISyntaxException, UnknownHostException, IllegalAccessException {
        MongoClientURI uri = authCheck(new MongoClientURIBuilder()
                                           .collection("mongo_hadoop", "bookstore_tags")
                                      ).build();
        MongoClient mongoClient = new MongoClient(uri);
        DBCollection collection = mongoClient.getDB(uri.getDatabase())
                                             .getCollection(uri.getCollection());

        final URI outputUri = new URI(uri.getURI());
        MapReduceJob job = new MapReduceJob(BookstoreConfig.class.getName())
                               .jar(JAR_PATH)
                               .inputUris(INVENTORY_BSON)
                               .outputUris(outputUri)
                               .param("mapred.input.dir", INVENTORY_BSON.toString());
        if (!CLUSTER_VERSION.startsWith("1.")) {
            job.inputFormat(BSONFileInputFormat.class);
        } else {
            job.mapredInputFormat(com.mongodb.hadoop.mapred.BSONFileInputFormat.class);
            job.mapredOutputFormat(MongoOutputFormat.class);
        }


        job.execute(false);

        DBObject object = collection.findOne(new BasicDBObject("_id", "history"));

        assertNotNull(object);
        List books = (List) object.get("books");
        Assert.assertEquals("Should find only 8 books", books.size(), 8);
    }
}
TOP

Related Classes of com.mongodb.hadoop.bookstore.BookstoreTest

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.