Package org.beangle.model.transfer.exporter

Source Code of org.beangle.model.transfer.exporter.DefaultPropertyExtractorTest

/* Copyright c 2005-2012.
* Licensed under GNU  LESSER General Public License, Version 3.
* http://www.gnu.org/licenses
*/
package org.beangle.model.transfer.exporter;

import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNull;

import java.util.List;
import java.util.Map;

import org.apache.commons.lang.time.StopWatch;
import org.beangle.commons.collection.CollectUtils;
import org.beangle.model.example.ContractInfo;
import org.beangle.model.example.ManagerEmployer;
import org.testng.annotations.Test;

@Test
public class DefaultPropertyExtractorTest {

  public void testGet() throws Exception {
    DefaultPropertyExtractor extractor = new DefaultPropertyExtractor();
    Map<String, String> datas = CollectUtils.newHashMap();
    datas.put("name", "211");
    assertEquals("211", extractor.getPropertyValue(datas, "name"));
  }

  public void testGet2() throws Exception {
    DefaultPropertyExtractor extractor = new DefaultPropertyExtractor();
    Map<String, Object> data = CollectUtils.newHashMap();
    Float age = new Float(22);
    data.put("jack", age);
    Map<?, ?>[] datas1 = new Map[] { null };
    Map<?, ?>[] datas = new Map[] { data };
    assertNull(extractor.getPropertyValue(datas1, "[0][\"jack\"]"));
    assertEquals(age, extractor.getPropertyValue(datas, "[0][\"jack\"]"));
  }

  @Test(timeOut = 10000)
  public void testPerformance() throws Exception {
    DefaultPropertyExtractor extractor = new DefaultPropertyExtractor();
    StopWatch watch = new StopWatch();
    watch.start();
    for (int i = 0; i < 1000; i++) {
      extract(extractor);
    }
    // System.out.println(watch.getTime());
  }

  @Test(timeOut = 1000)
  public void testPerformance2() throws Exception {
    DefaultPropertyExtractor extractor = new DefaultPropertyExtractor();
    StopWatch watch = new StopWatch();
    watch.start();
    for (int i = 0; i < 1000; i++) {
      extract(extractor);
    }
    // System.out.println(watch.getTime());
  }

  private void extract(PropertyExtractor extractor) throws Exception {
    List<Object> datas = CollectUtils.newArrayList();
    Float age = new Float(22);
    datas.add(age);

    Map<String, Object> person = CollectUtils.newHashMap();
    ManagerEmployer employer1 = new ManagerEmployer();
    person.put("firstName", "jack");
    person.put("employer", employer1);
    datas.add(person);

    ManagerEmployer employer2 = new ManagerEmployer();
    ContractInfo info = new ContractInfo();
    info.setAdd1("add1");
    employer2.setContractInfo(info);
    person.put("employer2", employer2);

    assertEquals(age, extractor.getPropertyValue(datas, "[0]"));
    assertEquals("jack", extractor.getPropertyValue(datas, "[1][\"firstName\"]"));
    assertNull(extractor.getPropertyValue(datas, "[1][\"employer\"].contractInfo.add1"));
    assertEquals("add1", extractor.getPropertyValue(datas, "[1][\"employer2\"].contractInfo.add1"));
  }
}
TOP

Related Classes of org.beangle.model.transfer.exporter.DefaultPropertyExtractorTest

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.