Package com.impetus.recommendation.hbase.model

Source Code of com.impetus.recommendation.hbase.model.CitySimilarityTest

/*******************************************************************************
* * Copyright 2013 Impetus Infotech.
*  *
*  * Licensed under the Apache License, Version 2.0 (the "License");
*  * you may not use this file except in compliance with the License.
*  * You may obtain a copy of the License at
*  *
*  *      http://www.apache.org/licenses/LICENSE-2.0
*  *
*  * Unless required by applicable law or agreed to in writing, software
*  * distributed under the License is distributed on an "AS IS" BASIS,
*  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
*  * See the License for the specific language governing permissions and
*  * limitations under the License.
******************************************************************************/
package com.impetus.recommendation.hbase.model;

import java.util.Iterator;
import java.util.Map;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

import org.apache.hadoop.hbase.filter.Filter;
import org.apache.hadoop.hbase.filter.KeyOnlyFilter;
import org.apache.hadoop.hbase.filter.PrefixFilter;
import org.apache.hadoop.hbase.util.Bytes;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;

import com.impetus.client.hbase.HBaseClient;
import com.impetus.client.hbase.junits.HBaseCli;
import com.impetus.kundera.client.Client;

/**
*
* @author Kuldeep.Mishra
*
*/
public class CitySimilarityTest
{

    private EntityManagerFactory emf;

    private EntityManager em;

    private HBaseCli cli = new HBaseCli();

    @Before
    public void setUp() throws Exception
    {
        cli.startCluster();
        emf = Persistence.createEntityManagerFactory("hbaseTest");
        em = emf.createEntityManager();
        BookInfo info1 = new BookInfo();
        info1.setBookId("book1");
        info1.setAuthor("Vivek");

        BookInfo info2 = new BookInfo();
        info2.setBookId("book2");
        info2.setAuthor("Amresh");

        CitySimilarity city1 = new CitySimilarity();
        city1.setId("100_1");
        city1.setBookInfo(info1);

        CitySimilarity city2 = new CitySimilarity();
        city2.setId("100_2");
        city2.setBookInfo(info2);

        em.persist(city1);
        em.persist(city2);

        em.flush();
        em.clear();
    }

    @After
    public void tearDown() throws Exception
    {
        em.remove(em.find(CitySimilarity.class, "100_1"));
        em.remove(em.find(CitySimilarity.class, "100_2"));
        em.close();
       
        emf.close();
        cli.stopCluster(null);
    }

    @Test
    public void testIterator()
    {
        String query2 = "select u from CitySimilarity u";
        com.impetus.kundera.query.Query queryObject = (com.impetus.kundera.query.Query) em
                .createQuery(query2);

        queryObject.setFetchSize(10);

        Iterator<CitySimilarity> resultIterator = queryObject.iterate();
        CitySimilarity cityS = null;
        int counter = 0;
        while (resultIterator.hasNext())
        {
            counter++;
            cityS = resultIterator.next();
            Assert.assertNotNull(cityS);
            Assert.assertNotNull(cityS.getId());
            Assert.assertNotNull(cityS.getBookInfo());
            Assert.assertNotNull(cityS.getBookInfo().getBookId());
        }
        Assert.assertEquals(2, counter);
    }

    @Test
    public void testIteratorWithOneFilter()
    {
        Map<String, Client> clients = (Map<String, Client>) em.getDelegate();

        HBaseClient client = (HBaseClient) clients.get("hbaseTest");

        Filter filter = new PrefixFilter(Bytes.toBytes("100" + "_"));

        client.setFilter(new KeyOnlyFilter());
        client.addFilter("city_similarity", filter);

        String query2 = "select u from CitySimilarity u";
        com.impetus.kundera.query.Query queryObject = (com.impetus.kundera.query.Query) em
                .createQuery(query2);

        queryObject.setFetchSize(10);

        Iterator<CitySimilarity> resultIterator = queryObject.iterate();
        CitySimilarity cityS = null;
        int counter = 0;
        while (resultIterator.hasNext())
        {
            counter++;
            cityS = resultIterator.next();
            Assert.assertNotNull(cityS);
            Assert.assertNotNull(cityS.getId());
            Assert.assertNull(cityS.getBookInfo());
        }
        Assert.assertEquals(2, counter);
    }

    @Test
    public void testIteratorWithTwoFilter()
    {
        Map<String, Client> clients = (Map<String, Client>) em.getDelegate();

        HBaseClient client = (HBaseClient) clients.get("hbaseTest");

        Filter filter = new PrefixFilter(Bytes.toBytes("100" + "_"));

        client.addFilter("city_similarity", filter);
        client.addFilter("bookinfo", new KeyOnlyFilter());

        String query2 = "select u from CitySimilarity u";
        com.impetus.kundera.query.Query queryObject = (com.impetus.kundera.query.Query) em
                .createQuery(query2);

        queryObject.setFetchSize(10);

        Iterator<CitySimilarity> resultIterator = queryObject.iterate();
        CitySimilarity cityS = null;
        int counter = 0;
        while (resultIterator.hasNext())
        {
            counter++;
            cityS = resultIterator.next();
            Assert.assertNotNull(cityS);
            Assert.assertNotNull(cityS.getBookInfo());
            Assert.assertNotNull(cityS.getBookInfo().getBookId());
            Assert.assertNull(cityS.getBookInfo().getTitle());
            Assert.assertNull(cityS.getBookInfo().getAuthor());
            Assert.assertNull(cityS.getBookInfo().getImageurll());
            Assert.assertNull(cityS.getBookInfo().getImageurlm());
            Assert.assertNull(cityS.getBookInfo().getImageurls());
            Assert.assertNull(cityS.getBookInfo().getMd5());
            Assert.assertNull(cityS.getBookInfo().getPublisher());
            Assert.assertNull(cityS.getBookInfo().getYearofpub());
        }
        Assert.assertEquals(2, counter);
    }
}
TOP

Related Classes of com.impetus.recommendation.hbase.model.CitySimilarityTest

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.