com.smartitengineering.dao.impl.hbase.JsonConfigLoaderTest.java Source code

Java tutorial

Introduction

Here is the source code for com.smartitengineering.dao.impl.hbase.JsonConfigLoaderTest.java

Source

/*
 * This is a common dao with basic CRUD operations and is not limited to any
 * persistent layer implementation
 *
 * Copyright (C) 2010  Imran M Yousuf (imyousuf@smartitengineering.com)
 *
 * This library is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License as published by the Free Software Foundation; either
 * version 3 of the License, or (at your option) any later version.
 * This library is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 * Lesser General Public License for more details.
 * You should have received a copy of the GNU Lesser General Public
 * License along with this library; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
 */
package com.smartitengineering.dao.impl.hbase;

import com.smartitengineering.dao.impl.hbase.spi.FilterConfig;
import com.smartitengineering.dao.impl.hbase.spi.FilterConfigs;
import com.smartitengineering.dao.impl.hbase.spi.impl.FilterConfigImpl;
import com.smartitengineering.dao.impl.hbase.spi.impl.JsonConfigLoader;
import com.smartitengineering.dao.impl.hbase.spi.impl.SchemaInfoProviderBaseConfig;
import java.io.IOException;
import java.io.InputStream;
import java.io.StringWriter;
import java.util.LinkedHashMap;
import java.util.Map;
import org.apache.commons.io.IOUtils;
import org.codehaus.jackson.map.ObjectMapper;
import org.junit.Assert;
import org.junit.BeforeClass;
import org.junit.Test;

/**
 *
 * @author imyousuf
 */
public class JsonConfigLoaderTest {

    private static final FilterConfigs CONFIGS = new FilterConfigs();

    @BeforeClass
    public static void setupConfigs() {
        Map<String, FilterConfig> map = new LinkedHashMap<String, FilterConfig>();
        FilterConfigImpl configImpl = new FilterConfigImpl();
        configImpl.setColumnFamilyAsString("test");
        configImpl.setColumnQualifierAsString("id");
        configImpl.setFilterOnIfMissing(true);
        configImpl.setFilterOnLatestVersionOnly(true);
        configImpl.setQualifierARangePrefix(true);
        configImpl.setFilterOnRowId(true);
        map.put("id", configImpl);
        configImpl = new FilterConfigImpl();
        configImpl.setColumnFamilyAsString("test");
        configImpl.setColumnQualifierAsString("name");
        map.put("name", configImpl);
        CONFIGS.setConfigs(map);
    }

    @Test
    public void deserializeFilterConfigsFromSerializedString() throws IOException {
        ObjectMapper mapper = new ObjectMapper();
        StringWriter writer = new StringWriter();
        mapper.writeValue(writer, CONFIGS);
        InputStream stream = IOUtils.toInputStream(writer.toString());
        FilterConfigs readConfigs = JsonConfigLoader.parseJsonAsFilterConfigMap(stream);
        Assert.assertEquals(CONFIGS, readConfigs);
    }

    @Test
    public void deserializeFilterConfigsFromClasspath() throws IOException {
        InputStream stream = getClass().getClassLoader()
                .getResourceAsStream("com/smartitengineering/dao/impl/hbase/Configs.json");
        Assert.assertNotNull(stream);
        FilterConfigs readConfigs = JsonConfigLoader.parseJsonAsFilterConfigMap(stream);
        Assert.assertEquals(CONFIGS, readConfigs);
    }

    @Test
    public void deserializeBaseConfigFromClasspath() throws IOException {
        InputStream stream = getClass().getClassLoader()
                .getResourceAsStream("com/smartitengineering/dao/impl/hbase/BaseConfig.json");
        Assert.assertNotNull(stream);
        SchemaInfoProviderBaseConfig readConfig = JsonConfigLoader.parseJsonAsBaseConfig(stream);
        Assert.assertEquals("testNS", readConfig.getSchemaNamespace());
        Assert.assertEquals("test", readConfig.getMainTableName());
        Assert.assertEquals(true, readConfig.isTransactionalDomain());
        Assert.assertEquals("fam", readConfig.getVersionColumnFamily());
        Assert.assertEquals("cell", readConfig.getVersionColumnQualifier());
    }
}