package com.norteksoft.wf.unit;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
import junit.framework.Assert;
import org.junit.Test;
import org.unitils.database.annotations.Transactional;
import org.unitils.database.util.TransactionMode;
import org.unitils.spring.annotation.SpringApplicationContext;
import org.unitils.spring.annotation.SpringBeanByName;
import com.norteksoft.bs.options.dao.OptionDao;
import com.norteksoft.bs.options.dao.OptionGroupDao;
import com.norteksoft.bs.options.entity.Option;
import com.norteksoft.bs.options.entity.OptionGroup;
import com.norteksoft.bs.signature.dao.SignatureDao;
import com.norteksoft.bs.signature.entity.Signature;
import com.norteksoft.product.api.ApiFactory;
@Transactional(TransactionMode.ROLLBACK)
@SpringApplicationContext({"applicationContext-test.xml","applicationContext.xml","applicationContext-memcache.xml"})
public class SettingServiceTest extends BaseWorkflowTestCase {
@SpringBeanByName
OptionDao optionDao;
@SpringBeanByName
OptionGroupDao optionGroupDao;
@SpringBeanByName
SignatureDao signatureDao;
@Test
public void getOptionGroupDefaultValue(){
Option option = new Option();
OptionGroup optionGroup = new OptionGroup();
optionGroup.setCode("wangjing_optiongroup_code");
List<Option> options = new ArrayList<Option>();
options.add(option);
optionGroup.setOptions(options);
option.setCompanyId(1L);
option.setSelected(true);
option.setValue("ppppppp");
option.setOptionGroup(optionGroup);
optionGroupDao.save(optionGroup);
optionDao.save(option);
String result = ApiFactory.getSettingService().getOptionGroupDefaultValue("wangjing_optiongroup_code");
Assert.assertNotNull(result);
Assert.assertEquals("ppppppp", result);
}
@Test
public void getOptionGroupDefaultValueTwo(){
Option option = new Option();
OptionGroup optionGroup = new OptionGroup();
optionGroup.setCode("wangjing_optiongroup_code");
List<Option> options = new ArrayList<Option>();
options.add(option);
optionGroup.setOptions(options);
option.setCompanyId(1L);
option.setSelected(true);
option.setValue("ppppppp");
option.setOptionGroup(optionGroup);
optionGroupDao.save(optionGroup);
optionDao.save(option);
OptionGroup og = optionGroupDao.findUniqueBy("code", "wangjing_optiongroup_code");
String result = ApiFactory.getSettingService().getOptionGroupDefaultValue(og.getId());
Assert.assertNotNull(result);
Assert.assertEquals("ppppppp", result);
}
@Test
public void getOptionGroups(){
Option option = new Option();
OptionGroup optionGroup = new OptionGroup();
optionGroup.setCode("wangjing_optiongroup_code");
List<Option> options = new ArrayList<Option>();
options.add(option);
optionGroup.setOptions(options);
option.setCompanyId(1L);
option.setSelected(true);
option.setValue("ppppppp");
option.setOptionGroup(optionGroup);
OptionGroup optionGroup2 = new OptionGroup();
optionGroup2.setCode("wangjing_optiongroup_code2");
List<Option> options2 = new ArrayList<Option>();
options2.add(option);
optionGroup.setOptions(options2);
optionGroupDao.save(optionGroup);
optionGroupDao.save(optionGroup2);
optionDao.save(option);
List<com.norteksoft.product.api.entity.OptionGroup> result = ApiFactory.getSettingService().getOptionGroups();
Assert.assertNotNull(result);
}
@Test
public void getOptionGroupByCode(){
Option option = new Option();
OptionGroup optionGroup = new OptionGroup();
optionGroup.setCode("wangjing_optiongroup_code");
List<Option> options = new ArrayList<Option>();
options.add(option);
optionGroup.setOptions(options);
option.setCompanyId(1L);
option.setSelected(true);
option.setValue("ppppppp");
option.setOptionGroup(optionGroup);
optionGroupDao.save(optionGroup);
optionDao.save(option);
com.norteksoft.product.api.entity.OptionGroup result = ApiFactory.getSettingService().getOptionGroupByCode("wangjing_optiongroup_code");
Assert.assertNotNull(result);
Assert.assertEquals("wangjing_optiongroup_code", result.getCode());
}
@Test
public void getOptionGroupByName(){
Option option = new Option();
OptionGroup optionGroup = new OptionGroup();
optionGroup.setCode("wangjing_optiongroup_code");
optionGroup.setName("wangjing_optiongroup_name");
List<Option> options = new ArrayList<Option>();
options.add(option);
optionGroup.setOptions(options);
option.setCompanyId(1L);
option.setSelected(true);
option.setValue("ppppppp");
option.setOptionGroup(optionGroup);
optionGroupDao.save(optionGroup);
optionDao.save(option);
com.norteksoft.product.api.entity.OptionGroup result = ApiFactory.getSettingService().getOptionGroupByName("wangjing_optiongroup_name");
Assert.assertNotNull(result);
Assert.assertEquals("wangjing_optiongroup_name", result.getName());
}
@Test
public void getOptionsByGroup(){
Option option = new Option();
OptionGroup optionGroup = new OptionGroup();
optionGroup.setCode("wangjing_optiongroup_code");
optionGroup.setName("wangjing_optiongroup_name");
List<Option> options = new ArrayList<Option>();
options.add(option);
optionGroup.setOptions(options);
option.setCompanyId(1L);
option.setSelected(true);
option.setValue("ppppppp");
option.setOptionGroup(optionGroup);
optionGroupDao.save(optionGroup);
optionDao.save(option);
OptionGroup og = optionGroupDao.findUniqueBy("code", "wangjing_optiongroup_code");
List<com.norteksoft.product.api.entity.Option> result = ApiFactory.getSettingService().getOptionsByGroup(og.getId());
Assert.assertNotNull(result);
}
@Test
public void getOptionsByGroupCode(){
Option option = new Option();
OptionGroup optionGroup = new OptionGroup();
optionGroup.setCode("wangjing_optiongroup_code");
optionGroup.setName("wangjing_optiongroup_name");
List<Option> options = new ArrayList<Option>();
options.add(option);
optionGroup.setOptions(options);
option.setCompanyId(1L);
option.setSelected(true);
option.setValue("ppppppp");
option.setOptionGroup(optionGroup);
optionGroupDao.save(optionGroup);
optionDao.save(option);
List<com.norteksoft.product.api.entity.Option> result = ApiFactory.getSettingService().getOptionsByGroupCode("wangjing_optiongroup_code");
Assert.assertNotNull(result);
}
@Test
public void getOptionsByGroupName(){
Option option = new Option();
OptionGroup optionGroup = new OptionGroup();
optionGroup.setCode("wangjing_optiongroup_code");
optionGroup.setName("wangjing_optiongroup_name");
List<Option> options = new ArrayList<Option>();
options.add(option);
optionGroup.setOptions(options);
option.setCompanyId(1L);
option.setSelected(true);
option.setValue("ppppppp");
option.setOptionGroup(optionGroup);
optionGroupDao.save(optionGroup);
optionDao.save(option);
List<com.norteksoft.product.api.entity.Option> result = ApiFactory.getSettingService().getOptionsByGroupName("wangjing_optiongroup_name");
Assert.assertNotNull(result);
}
@Test
public void getHolidaySettingDays() throws ParseException{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date startDate = sdf.parse("2013-06-17");
Date endDate = sdf.parse("2013-06-25");
Map<String, List<Date>> result = ApiFactory.getSettingService().getHolidaySettingDays(startDate,endDate);
Assert.assertNotNull(result);
Assert.assertEquals(7, result.get("workDate").size());
Assert.assertTrue(result.get("workDate").contains(sdf.parse("2013-06-17")));
Assert.assertTrue(result.get("workDate").contains(sdf.parse("2013-06-18")));
Assert.assertTrue(result.get("workDate").contains(sdf.parse("2013-06-19")));
Assert.assertTrue(result.get("workDate").contains(sdf.parse("2013-06-20")));
Assert.assertTrue(result.get("workDate").contains(sdf.parse("2013-06-21")));
Assert.assertTrue(result.get("workDate").contains(sdf.parse("2013-06-24")));
Assert.assertTrue(result.get("workDate").contains(sdf.parse("2013-06-25")));
Assert.assertEquals(2, result.get("spareDate").size());
Assert.assertTrue(result.get("spareDate").contains(sdf.parse("2013-06-22")));
Assert.assertTrue(result.get("spareDate").contains(sdf.parse("2013-06-23")));
}
@Test
public void getInternationOptionValue() {
String result = ApiFactory.getSettingService().getInternationOptionValue("ss");
Assert.assertNotNull(result);
}
@Test
public void getSignIdByUserName() {
Signature signature = new Signature();
signature.setCompanyId(1L);
signature.setUserName("ldx");
signature.setUserId(33l);
signatureDao.save(signature);
Long result = ApiFactory.getSettingService().getSignIdByUserName("ldx");
Assert.assertNotNull(result);
Signature s = signatureDao.findUniqueBy("userId", 33l);
Assert.assertEquals(s.getId(), result);
}
}