Package voldemort.xml

Source Code of voldemort.xml.StoreDefinitionMapperTest

/*
* Copyright 2008-2009 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 voldemort.xml;


import java.io.StringReader;
import java.util.List;

import junit.framework.TestCase;
import voldemort.VoldemortTestConstants;
import voldemort.store.StoreDefinition;

public class StoreDefinitionMapperTest extends TestCase {

    public void testParsing() {
        StoreDefinitionsMapper mapper = new StoreDefinitionsMapper();
        List<StoreDefinition> storeDefs = mapper.readStoreList(new StringReader(VoldemortTestConstants.getSimpleStoreDefinitionsXml()));
        String output = mapper.writeStoreList(storeDefs);
        List<StoreDefinition> found = mapper.readStoreList(new StringReader(output));
        checkEquals(storeDefs, found);
        for(StoreDefinition def: storeDefs) {
            String xml = mapper.writeStore(def);
            StoreDefinition newDef = mapper.readStore(new StringReader(xml));
            assertEquals(def, newDef);
        }
    }

    public void testSingleStore() {
        StoreDefinitionsMapper mapper = new StoreDefinitionsMapper();
        List<StoreDefinition> storeDefs = mapper.readStoreList(new StringReader(VoldemortTestConstants.getSingleStoreDefinitionsXml()));
        String written = mapper.writeStoreList(storeDefs);
        assertEquals(storeDefs, mapper.readStoreList(new StringReader(written)));
    }

    public void testNoVersionStore() {
        StoreDefinitionsMapper mapper = new StoreDefinitionsMapper();
        List<StoreDefinition> storeDefs = mapper.readStoreList(new StringReader(VoldemortTestConstants.getNoVersionStoreDefinitionsXml()));
        String written = mapper.writeStoreList(storeDefs);
        assertEquals(storeDefs, mapper.readStoreList(new StringReader(written)));
    }

    public void testSingleStoreWithZones() {
        StoreDefinitionsMapper mapper = new StoreDefinitionsMapper();
        List<StoreDefinition> storeDefs = mapper.readStoreList(new StringReader(VoldemortTestConstants.getSingleStoreWithZonesXml()));
        String written = mapper.writeStoreList(storeDefs);
        assertEquals(storeDefs, mapper.readStoreList(new StringReader(written)));
    }

    public void testTwoVersionsOnKeyFails() {
        StoreDefinitionsMapper mapper = new StoreDefinitionsMapper();
        try {
            mapper.readStoreList(new StringReader(VoldemortTestConstants.getStoreWithTwoKeyVersions()));
            fail("There are multiple versions on the key serializer, which should not be allowed.");
        } catch(MappingException e) {
            // this is good
        }
    }

    public void testRetentionStore() {
        StoreDefinitionsMapper mapper = new StoreDefinitionsMapper();
        List<StoreDefinition> storeDefs = mapper.readStoreList(new StringReader(VoldemortTestConstants.getStoreDefinitionsWithRetentionXml()));
        String written = mapper.writeStoreList(storeDefs);
        assertEquals(storeDefs, mapper.readStoreList(new StringReader(written)));
    }

    public void testCompressedStore() {
        StoreDefinitionsMapper mapper = new StoreDefinitionsMapper();
        List<StoreDefinition> storeDefs = mapper.readStoreList(new StringReader(VoldemortTestConstants.getCompressedStoreDefinitionsXml()));
        String written = mapper.writeStoreList(storeDefs);
        assertEquals(storeDefs, mapper.readStoreList(new StringReader(written)));
    }

    public void testView() {
        StoreDefinitionsMapper mapper = new StoreDefinitionsMapper();
        List<StoreDefinition> storeDefs = mapper.readStoreList(new StringReader(VoldemortTestConstants.getViewStoreDefinitionXml()));
        String written = mapper.writeStoreList(storeDefs);
        checkEquals(storeDefs, mapper.readStoreList(new StringReader(written)));
    }

    private void checkEquals(List<StoreDefinition> l1, List<StoreDefinition> l2) {
        assertEquals(l1.size(), l2.size());
        for(int i = 0; i < l1.size(); i++)
            assertEquals(l1.get(i), l2.get(i));
    }

}
TOP

Related Classes of voldemort.xml.StoreDefinitionMapperTest

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.