/*
 * Copyright (c) 2013-2016 Cinchapi 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 com.cinchapi.concourse.bugrepro;

import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;

import org.junit.Assert;
import org.junit.Test;

import com.cinchapi.concourse.test.ConcourseIntegrationTest;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;

/**
 * Unit test to repro issue GH-112
 * 
 * @author Jeff Nelson
 */
public class GH112 extends ConcourseIntegrationTest {

    @Test
    public void repro() {
        Map<String, Object> data = Maps.newHashMap();
        data.put("title", "Director of Engineering");
        data.put("name", "Jane Doe");
        data.put("salary", 20.0);
        data.put("role", "Director");
        long record = client.insert(data);
        List<String> keys = Lists.newArrayList("name", "salary", "title");
        Map<Long, Map<String, Set<Object>>> results = client.select(keys,
                "role = Director and salary > 10");
        Iterator<String> it = results.get(record).keySet().iterator();
        while (it.hasNext()) {
            String key = it.next();
            Assert.assertEquals(key, keys.remove(0));
        }
    }

}

add unit test repro