/*
* Copyright(C) 2010-2011 Alibaba Group Holding Limited All rights reserved. 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.alibaba.doris.client;
import java.util.HashMap;
import java.util.Map;
import junit.framework.TestCase;
import com.alibaba.doris.client.mock.MockDataStoreFactoryImpl;
import com.alibaba.doris.client.testdata.DorisClientProduct;
/**
* DataStoreTest
*
* @author Kun He (Raymond He), kun.hek@alibaba-inc.com
* @since 1.0 2011-5-6
*/
public class DataStoreSerializeTest extends TestCase {
protected String configUrl;
protected DataStoreFactory dataStoreFactory;
protected DataStore dataStore;
public DataStoreSerializeTest() {
configUrl = "mock-doris-client.properties";
dataStoreFactory = new MockDataStoreFactoryImpl(configUrl);
dataStore = dataStoreFactory.getDataStore("Product");
}
public void testPut() {
String key = "key001";
DorisClientProduct product = new DorisClientProduct();
product.setId(key);
product.setName("IPhone4");
product.setPrice(199.99);
product.setQuantity(1000);
dataStore.put(key, product);
Object result = dataStore.get(key);
assertNotNull("get value result ", result);
assertTrue("Result is Product ", result instanceof DorisClientProduct);
DorisClientProduct retProduct = (DorisClientProduct) dataStore.get(key);
assertEquals(retProduct.getId(), product.getId());
assertEquals(retProduct.getName(), product.getName());
assertEquals(retProduct.getPrice(), product.getPrice());
assertEquals(retProduct.getQuantity(), product.getQuantity());
}
public void testPutSpecial() {
String key = "key001";
DorisClientProduct product = new DorisClientProduct();
product.setId(key);
product.setName("IPhone4},a\"bc");
product.setPrice(199.99);
product.setQuantity(1000);
dataStore.put(key, product);
Object result = dataStore.get(key);
assertNotNull("get value result ", result);
assertTrue("Result is Product ", result instanceof DorisClientProduct);
DorisClientProduct retProduct = (DorisClientProduct) dataStore.get(key);
assertEquals(retProduct.getId(), product.getId());
assertEquals(retProduct.getName(), product.getName());
assertEquals(retProduct.getPrice(), product.getPrice());
assertEquals(retProduct.getQuantity(), product.getQuantity());
}
public void testPuts() {
String key1 = "key001";
DorisClientProduct product1 = new DorisClientProduct();
product1.setId(key1);
product1.setName("IPhone4");
product1.setPrice(199.99);
product1.setQuantity(1000);
String key2 = "key002";
DorisClientProduct product2 = new DorisClientProduct();
product2.setId(key2);
product2.setName("IPhone4},a\"bc");
product2.setPrice(199.99);
product2.setQuantity(1000);
Map<String, DorisClientProduct> map = new HashMap<String, DorisClientProduct>();
map.put(key1, product1);
map.put(key2, product2);
dataStore.puts(map);
Object result1 = dataStore.get(key1);
assertNotNull("get value result ", result1);
assertTrue("Result is Product ", result1 instanceof DorisClientProduct);
DorisClientProduct retProduct = (DorisClientProduct) dataStore.get(key1);
assertEquals(retProduct.getId(), product1.getId());
assertEquals(retProduct.getName(), product1.getName());
assertEquals(retProduct.getPrice(), product1.getPrice());
assertEquals(retProduct.getQuantity(), product1.getQuantity());
Object result2 = dataStore.get(key2);
assertNotNull("get value result ", result2);
assertTrue("Result is Product ", result2 instanceof DorisClientProduct);
DorisClientProduct retProduct2 = (DorisClientProduct) dataStore.get(key2);
assertEquals(retProduct2.getId(), product2.getId());
assertEquals(retProduct2.getName(), product2.getName());
assertEquals(retProduct2.getPrice(), product2.getPrice());
assertEquals(retProduct2.getQuantity(), product2.getQuantity());
}
}