Package test.misc

Source Code of test.misc.TestSetDataHandler2

/*
* Copyright (c) 2010-2012 LinkedIn, Inc
*
* 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 test.misc;

import java.io.File;
import java.util.Arrays;
import java.util.List;

import krati.core.StoreConfig;
import krati.store.DataSetHandler;
import krati.store.DefaultDataSetHandler;
import test.AbstractTest;
import test.util.FileUtils;

/**
* TestSetDataHandler2
*
* @author jwu
*
*/
public class TestSetDataHandler2 extends AbstractTest {
    DataSetHandler _dataHandler = new DataSetHandler2();
    static String str1 = "0123456789A0123456789B0123456789C";
    static String str2 = "0123456789D0123456789E0123456789F";
    static String str3 = "0123456789G0123456789H0123456789I";
   
    public TestSetDataHandler2() {
        super(TestSetDataHandler2.class.getSimpleName());
    }
   
    public void test() {
        int valCnt;
       
        byte[] value1 = str1.getBytes();
        byte[] value2 = str2.getBytes();
        byte[] value3 = str3.getBytes();
        List<byte[]> valueList;
       
        // Add value1
        byte[] data1 = _dataHandler.assemble(value1);
        valCnt = _dataHandler.count(data1);
        assertEquals("Failed on assemble(byte[] value) valueCount: ", 1, valCnt);
        assertTrue("Failed on assemble(byte[] value)", _dataHandler.find(value1, data1));
       
        assertEquals("Failed on countCollisions(byte[] value, byte[] data) collisions: ",
                1, _dataHandler.countCollisions(value1, data1));
        assertEquals("Failed on countCollisions(byte[] value, byte[] data) collisions: ",
                -1, _dataHandler.countCollisions(value2, data1));
       
        valueList = _dataHandler.extractValues(data1);
        assertEquals(1, valueList.size());
        assertTrue(Arrays.equals(value1, valueList.get(0)));
       
        // Add value2
        byte[] data2 = _dataHandler.assemble(value2, data1);
        valCnt = _dataHandler.count(data2);
        assertEquals("Failed on assemble(byte[] value, byte[] data) valueCount: ", 2, valCnt);
        assertTrue("Failed on assemble(byte[] value, byte[] data)", _dataHandler.find(value1, data2));
        assertTrue("Failed on assemble(byte[] value, byte[] data)", _dataHandler.find(value2, data2));
       
        assertEquals("Failed on countCollisions(byte[] value, byte[] data) collisions: ",
                2, _dataHandler.countCollisions(value1, data2));
        assertEquals("Failed on countCollisions(byte[] value, byte[] data) collisions: ",
                2, _dataHandler.countCollisions(value2, data2));
        assertEquals("Failed on countCollisions(byte[] value, byte[] data) collisions: ",
                -2, _dataHandler.countCollisions(value3, data2));
       
        valueList = _dataHandler.extractValues(data2);
        assertEquals(2, valueList.size());
       
        // Add value3
        byte[] data3 = _dataHandler.assemble(value3, data2);
        valCnt = _dataHandler.count(data3);
        assertEquals("Failed on assemble(byte[] value, byte[] data) valueCount: ", 3, valCnt);
        assertTrue("Failed on assemble(byte[] value, byte[] data)", _dataHandler.find(value1, data3));
        assertTrue("Failed on assemble(byte[] value, byte[] data)", _dataHandler.find(value2, data3));
        assertTrue("Failed on assemble(byte[] value, byte[] data)", _dataHandler.find(value3, data3));
       
        assertEquals("Failed on countCollisions(byte[] value, byte[] data) collisions: ",
                3, _dataHandler.countCollisions(value1, data3));
        assertEquals("Failed on countCollisions(byte[] value, byte[] data) collisions: ",
                3, _dataHandler.countCollisions(value2, data3));
        assertEquals("Failed on countCollisions(byte[] value, byte[] data) collisions: ",
                3, _dataHandler.countCollisions(value3, data3));
       
        valueList = _dataHandler.extractValues(data3);
        assertEquals(3, valueList.size());
       
        // Delete value2
        int len = _dataHandler.remove(value2, data3);
        byte[] data4 = new byte[len];
        System.arraycopy(data3, 0, data4, 0, len);
       
        valCnt = _dataHandler.count(data4);
        assertEquals("Failed on remove(byte[] value, byte[] data) valueCount: ", 2, valCnt);
        assertTrue("Failed on remove(byte[] value, byte[] data)", _dataHandler.find(value1, data4));
        assertTrue("Failed on remove(byte[] value, byte[] data)", _dataHandler.find(value3, data4));
       
        assertEquals("Failed on countCollisions(byte[] value, byte[] data) collisions: ",
                -2, _dataHandler.countCollisions(value2, data4));
       
        valueList = _dataHandler.extractValues(data4);
        assertEquals(2, valueList.size());
       
        // Delete value1
        len = _dataHandler.remove(value1, data4);
        byte[] data5 = new byte[len];
        System.arraycopy(data4, 0, data5, 0, len);
       
        valCnt = _dataHandler.count(data5);
        assertEquals("Failed on remove(byte[] value, byte[] data) valueCount: ", 1, valCnt);
        assertTrue("Failed on remove(byte[] value, byte[] data)", _dataHandler.find(value3, data5));
       
        assertEquals("Failed on countCollisions(byte[] value, byte[] data) collisions: ",
                -1, _dataHandler.countCollisions(value1, data5));
       
        valueList = _dataHandler.extractValues(data5);
        assertEquals(1, valueList.size());
        assertTrue(Arrays.equals(value3, valueList.get(0)));
       
        // Delete value3
        len = _dataHandler.remove(value3, data5);
        assertEquals("Failed on remove(byte[] value, byte[] data)", 0, len);
    }
   
    public void testStoreConfig() throws Exception {
        File dir = FileUtils.getTestDir(getClass().getSimpleName());
       
        StoreConfig config = new StoreConfig(dir, 10000);
        assertTrue(config.getDataHandler() == null);
       
        config.setDataHandler(new DefaultDataSetHandler());
        config.save();
       
        StoreConfig config2 = new StoreConfig(dir, 10000);
        assertTrue(config2.getDataHandler() == null);
       
        config.setDataHandler(new DataSetHandler2());
        config.save();
       
        StoreConfig config3 = new StoreConfig(dir, 10000);
        assertTrue(config3.getDataHandler() != null);
        assertTrue(config3.getDataHandler().getClass() == DataSetHandler2.class);
       
        FileUtils.deleteDirectory(dir);
    }
}
TOP

Related Classes of test.misc.TestSetDataHandler2

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.