Commit 4d9bda71 authored by eddie.woo's avatar eddie.woo

revert junit

parent 2b598b7c
package pwc.taxtech.atms.common;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import pwc.taxtech.atms.CommonIT;
import pwc.taxtech.atms.security.JwtAuthenticationProvider;
import pwc.taxtech.atms.security.JwtAuthenticationToken;
public class AuthUserHelperIT extends CommonIT {
@Autowired
private AuthUserHelper authUserHelper;
@Autowired
private JwtAuthenticationProvider jwtAuthenticationProvider;
@Before
public void init() {
Authentication request = new JwtAuthenticationToken("xxxx");
Authentication authenticaiton = jwtAuthenticationProvider.authenticate(request);
SecurityContextHolder.getContext().setAuthentication(authenticaiton);
}
@Test
public void test() {
Assert.assertNotNull(SecurityContextHolder.getContext());
Assert.assertNotNull(SecurityContextHolder.getContext().getAuthentication());
Assert.assertNotNull(SecurityContextHolder.getContext().getAuthentication().getName());
Assert.assertNotNull(authUserHelper);
Assert.assertNotNull(authUserHelper.getCurrentAuditor());
System.out.println(authUserHelper.getCurrentAuditor());
}
}
package pwc.taxtech.atms.common;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import pwc.taxtech.atms.CommonTestUtils;
public class AuthUserHelperTest {
private AuthUserHelper authUserHelper = new AuthUserHelperImpl();
@Before
public void before() {
CommonTestUtils.initTestAuth();
}
@Test
public void test() {
String ipAddress = authUserHelper.getIpaddressFromSecurityContextHolder();
Assert.assertEquals("The ip does not match", "127.0.0.1", ipAddress);
}
}
package pwc.taxtech.atms.common;
import org.apache.commons.collections.MapUtils;
import org.apache.commons.lang3.StringUtils;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import pwc.taxtech.atms.CommonIT;
import pwc.taxtech.atms.common.util.DateUtils;
import pwc.taxtech.atms.dao.CellTemplateConfigDao;
import pwc.taxtech.atms.entity.*;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public class DataMigration extends CommonIT {
@Autowired
private JdbcTemplate jdbcTemplate;
@Autowired
CellTemplateConfigDao cellTemplateConfigDao;
private List<Map<String, Object>> template20180622List;
private List<Map<String, Object>> templateList;
private List<CellTemplate> cellTemplates;
private List<Template> templates;
private List<Map<String, Object>> cellTemplate20180622List;
//1. 这个是原本的id
String templateGroupId = "'60771384-473c-4f6a-9d40-d2a807dca164'";
//2.这个是新的templategroupid
Long templateGroupIdLong = 15081298737631232L;
@Test
public void doMigration(){
// doMigrationTemplateGroup();
// doMigrationTemplate();
// doMigrationCellTemplate();
doMigrationCellTemplateConfig();
}
@Test
public void doMigrationTemplateGroup() {
String sql = "Select * from TemplateGroup_20180622 where id=" + templateGroupId;
List<Map<String, Object>> queryForList = jdbcTemplate.queryForList(sql);
// sql = "DELETE FROM template_group";
// jdbcTemplate.execute(sql);
TemplateGroup templateGroup;
for (Map<String, Object> item : queryForList) {
templateGroup = new TemplateGroup();
this.templateGroupIdLong = distributedIdService.nextId();
templateGroup.setId(this.templateGroupIdLong);
templateGroup.setName((MapUtils.getString(item, "Name")));
templateGroup.setServiceTypeId((MapUtils.getString(item, "ServiceTypeID")));
templateGroup.setIndustryIds((MapUtils.getString(item, "IndustryIDs")));
templateGroup.setPayTaxType((MapUtils.getInteger(item, "PayTaxType") != null ? MapUtils.getInteger(item, "PayTaxType") : 0));
templateGroup.setGroupType((MapUtils.getInteger(item, "GroupType")));
templateGroup.setCopyFrom(0L);
templateGroup.setUpdateTime(DateUtils.strToDateLong(MapUtils.getString(item, "UpdateTime")));
templateGroup.setCreateTime(DateUtils.strToDateLong(MapUtils.getString(item, "CreateTime")));
templateGroup.setIsSystemType((MapUtils.getBoolean(item, "IsSystemType")));
templateGroup.setCreateBy(StringUtils.EMPTY);
templateGroup.setUpdateBy(StringUtils.EMPTY);
templateGroupMapper.insert(templateGroup);
}
}
@Test
public void doMigrationTemplate() {
String sql = "Select * from Template_1 where TemplateGroupID=" + templateGroupId;
List<Map<String, Object>> queryForList = jdbcTemplate.queryForList(sql);
// sql = "DELETE FROM template";
// jdbcTemplate.execute(sql);
Template template;
for (Map<String, Object> item : queryForList) {
template = new Template();
template.setId(distributedIdService.nextId());
template.setName(MapUtils.getString(item, "Name"));
template.setCode(MapUtils.getString(item, "Code") != null ? MapUtils.getString(item, "Code") : StringUtils.EMPTY);
template.setPath(MapUtils.getString(item, "Path"));
template.setReportType(MapUtils.getInteger(item, "ReportType") != null ? MapUtils.getInteger(item, "ReportType") : 0);
template.setOrderIndex(MapUtils.getInteger(item, "OrderIndex"));
template.setCreateTime(DateUtils.strToDateLong(MapUtils.getString(item, "CreateTime")));
template.setUpdateTime(DateUtils.strToDateLong(MapUtils.getString(item, "UpdateTime")));
template.setIsSystemType(MapUtils.getBoolean(item, "IsSystemType"));
template.setIsActiveAssociation(MapUtils.getBoolean(item, "IsActiveAssociation"));
template.setParentId(MapUtils.getString(item, "ParentId") != null ? MapUtils.getString(item, "ParentId") : StringUtils.EMPTY);
template.setCreateBy(StringUtils.EMPTY);
template.setUpdateBy(StringUtils.EMPTY);
// template.setTemplateGroupId(getIdFromExistTable(MapUtils.getString(item, "TemplateGroupID")));
template.setTemplateGroupId(templateGroupIdLong);
templateMapper.insert(template);
}
}
/**
* 根据老表templategroupid获取新表id
*
* @param id 老表templategroupid
* @return 新表templategroupid
*/
private Long getIdFromExistTable(String id) {
try {
String sql = "SELECT `Name`,UpdateTime from TemplateGroup_20180622 where id='" + id + "'";
Map<String, Object> result = jdbcTemplate.queryForMap(sql);
String name = MapUtils.getString(result, "Name");
String updateTime = MapUtils.getString(result, "UpdateTime");
sql = "SELECT id from template_group a WHERE a.update_time='" + updateTime + "' AND `name`='" + name + "'";
result = jdbcTemplate.queryForMap(sql);
return MapUtils.getLong(result, "id");
} catch (Exception e) {
return 0L;
}
}
//todo:cell_template --220081
@Test
public void doMigrationCellTemplate() {
String sql = "SELECT * FROM CellTemplate WHERE ReportTemplateID IN " +
"(SELECT ID FROM Template_1 WHERE TemplateGroupID IN(" + templateGroupId + ") )";
// " AND path LIKE '%VatTemplate/DefaultVersion/%')";
List<Map<String, Object>> queryForList = jdbcTemplate.queryForList(sql);
System.out.println(sql);
// sql = "DELETE FROM cell_template";
// System.out.println(sql);
// jdbcTemplate.execute(sql);
CellTemplate cellTemplate;
cellTemplates = new ArrayList<>();
List<CellTemplate> cellTemplateList = new ArrayList<>();
sql = "SELECT ID,Name,Code,CreateTime from Template_1";
template20180622List = jdbcTemplate.queryForList(sql);
// sql = "SELECT id,`name`,code,create_time from template";
// templateList = jdbcTemplate.queryForList(sql);
templates = templateMapper.selectByExample(new TemplateExample());
int i = 0, j = 0;
for (Map<String, Object> item : queryForList) {
i++;
j++;
cellTemplate = new CellTemplate();
cellTemplate.setId(distributedIdService.nextId());
cellTemplate.setReportTemplateId(getIdFromExistTable2(MapUtils.getString(item, "ReportTemplateID")));
cellTemplate.setRowIndex(MapUtils.getInteger(item, "RowIndex"));
cellTemplate.setRowName(MapUtils.getString(item, "RowName") != null ? MapUtils.getString(item, "RowName") : "");
cellTemplate.setColumnIndex(MapUtils.getInteger(item, "ColumnIndex"));
cellTemplate.setColumnName(MapUtils.getString(item, "ColumnName") != null ? MapUtils.getString(item, "ColumnName") : "");
cellTemplate.setComment(MapUtils.getString(item, "Comment") != null ? MapUtils.getString(item, "Comment") : "");
cellTemplate.setCreateTime(DateUtils.strToDateLong(MapUtils.getString(item, "CreateTime")));
cellTemplate.setUpdateTime(DateUtils.strToDateLong(MapUtils.getString(item, "UpdateTime")));
cellTemplate.setCopyFromId(0L);
cellTemplate.setDataType(MapUtils.getInteger(item, "DataType") != null ? MapUtils.getInteger(item, "DataType") : 0);
cellTemplate.setIsReadOnly(MapUtils.getInteger(item, "IsReadOnly") != null ? MapUtils.getBoolean(item, "IsReadOnly") : false);
cellTemplate.setUpdateBy(StringUtils.EMPTY);
cellTemplate.setCreateBy(StringUtils.EMPTY);
// cellTemplateMapper.insert(cellTemplate);
cellTemplateList.add(cellTemplate);
System.out.println("i=" + i);
System.out.println("j=" + j);
if (i == 1000 && j < queryForList.size()) {
cellTemplateMapper.batchInsert2(cellTemplateList);
cellTemplateList.clear();
i = 0;
} else {
if (j == queryForList.size()) {
cellTemplateMapper.batchInsert2(cellTemplateList);
cellTemplateList.clear();
}
}
}
//handleList(queryForList, 2);
}
/**
* 根据template老表ID获取新表ID
*
* @param id template老表ID
* @return
*/
private Long getIdFromExistTable2(String id) {
try {
// String sql = "SELECT `Name`,Code,CreateTime from Template_20180622 where id='" + id + "'";
// System.out.println(sql);
Map<String, Object> item = template20180622List.stream()
.filter(a -> MapUtils.getString(a, "ID").equals(id))
.findFirst().get();
//Map<String, Object> result = jdbcTemplate.queryForMap(sql);
String name = MapUtils.getString(item, "Name");
String code = MapUtils.getString(item, "Code");
String createTime = MapUtils.getString(item, "CreateTime");
//template20180622List.remove(item);
// item = templateList.stream()
// .filter(a -> MapUtils.getString(a, "name").equals(name)
// && MapUtils.getString(a, "code").equals(code)
// && MapUtils.getString(a, "create_time").equals(createTime))
// .findFirst().get();
Template template = templates.stream()
.filter(a -> a.getName().equals(name) && a.getCode().equals(code)
&& a.getCreateTime().equals(DateUtils.strToDateLong(createTime))
&& a.getTemplateGroupId().equals(templateGroupIdLong))
.findFirst().get();
//sql = "SELECT id from template a WHERE create_time='" + createTime + "' AND `name`='" + name + "' AND code='" + code + "'";
//System.out.println(sql);
//result = jdbcTemplate.queryForMap(sql);
Long newId = template.getId();
//templateList.remove(item);
return newId;
} catch (Exception e) {
return 0L;
} finally {
}
}
/**
* 多线程处理list
*
* @param data 数据list
* @param threadNum 线程数
*/
public synchronized void handleList(List<Map<String, Object>> data, int threadNum) {
int length = data.size();
int tl = length % threadNum == 0 ? length / threadNum : (length
/ threadNum + 1);
for (int i = 0; i < threadNum; i++) {
int end = (i + 1) * tl;
HandleThread thread = new HandleThread("线程[" + (i + 1) + "] ", data, i * tl, end > length ? length : end);
System.out.println("线程[" + (i + 1) + "] started");
thread.start();
}
}
class HandleThread extends Thread {
private String threadName;
private List<Map<String, Object>> data;
private int start;
private int end;
public HandleThread(String threadName, List<Map<String, Object>> data, int start, int end) {
this.threadName = threadName;
this.data = data;
this.start = start;
this.end = end;
}
public void run() {
// TODO 这里处理数据
CellTemplate cellTemplate;
for (Map<String, Object> item : data) {
cellTemplate = new CellTemplate();
cellTemplate.setId(distributedIdService.nextId());
//cellTemplate.setReportTemplateId(getIdFromExistTable2(MapUtils.getString(item, "ReportTemplateID")));
cellTemplate.setRowIndex(MapUtils.getInteger(item, "RowIndex"));
cellTemplate.setRowName(MapUtils.getString(item, "RowName") != null ? MapUtils.getString(item, "RowName") : "");
cellTemplate.setColumnIndex(MapUtils.getInteger(item, "ColumnIndex"));
cellTemplate.setColumnName(MapUtils.getString(item, "ColumnName") != null ? MapUtils.getString(item, "ColumnName") : "");
cellTemplate.setComment(MapUtils.getString(item, "Comment") != null ? MapUtils.getString(item, "Comment") : "");
cellTemplate.setCreateTime(DateUtils.strToDateLong(MapUtils.getString(item, "CreateTime")));
cellTemplate.setUpdateTime(DateUtils.strToDateLong(MapUtils.getString(item, "UpdateTime")));
cellTemplate.setCopyFromId(0L);
cellTemplate.setDataType(MapUtils.getInteger(item, "DataType") != null ? MapUtils.getInteger(item, "DataType") : 0);
cellTemplate.setIsReadOnly(MapUtils.getBoolean(item, "IsReadOnly") != null ? MapUtils.getBoolean(item, "IsReadOnly") : true);
cellTemplate.setUpdateBy(StringUtils.EMPTY);
cellTemplate.setCreateBy(StringUtils.EMPTY);
synchronized (cellTemplates) {
cellTemplates.add(cellTemplate);
}
if (cellTemplates.size() == 100) {
synchronized (cellTemplates) {
cellTemplateMapper.batchInsert2(cellTemplates);
cellTemplates.clear();
}
System.out.println(threadName + "处理了" + data.size() + "条!");
}
//cellTemplateMapper.insert(cellTemplate);
}
synchronized (cellTemplates) {
cellTemplateMapper.batchInsert2(cellTemplates);
cellTemplates.clear();
}
System.out.println(threadName + "处理了" + data.size() + "条!");
//doMigrationCellTemplate();
// List<String> subList = data.subList(start, end)/*.add("^&*")*/;
// System.out.println(threadName+"处理了"+subList.size()+"条!");
}
}
//todo:cell_template_config --76577
@Test
public void doMigrationCellTemplateConfig() {
String sql = "SELECT *\n" +
"FROM CellTemplateConfig\n" +
"WHERE ReportTemplateID IN(SELECT\n" +
" ID\n" +
" FROM Template_1\n" +
" WHERE TemplateGroupID IN(" + templateGroupId + "))" +
// " AND path LIKE '%VatTemplate/DefaultVersion/%')\n" +
" AND celltemplateid IN(SELECT\n" +
" id\n" +
" FROM CellTemplate\n" +
" WHERE ReportTemplateID IN(SELECT\n" +
" ID\n" +
" FROM Template_1\n" +
" WHERE TemplateGroupID IN(" + templateGroupId + ")))";
// " AND path LIKE '%VatTemplate/DefaultVersion/%'))";
System.out.println(sql);
List<Map<String, Object>> queryForList = jdbcTemplate.queryForList(sql);
// sql = "DELETE FROM cell_template_config";
// System.out.println(sql);
// jdbcTemplate.execute(sql);
sql = "SELECT ID,Name,Code,CreateTime from Template_1 ";
template20180622List = jdbcTemplate.queryForList(sql);
templates = templateMapper.selectByExample(new TemplateExample());
cellTemplates = cellTemplateMapper.selectByExample(new CellTemplateExample());
sql = "SELECT ID,ReportTemplateID,RowIndex,ColumnIndex from CellTemplate WHERE ReportTemplateID IN " +
"(SELECT ID FROM Template_1 WHERE TemplateGroupID IN" +
"(" + templateGroupId + "))";
cellTemplate20180622List = jdbcTemplate.queryForList(sql);
List<CellTemplateConfig> cellTemplateConfigList = new ArrayList<>();
CellTemplateConfig cellTemplateConfig;
int i = 0, j = 0;
for (Map<String, Object> item : queryForList) {
i++;
j++;
cellTemplateConfig = new CellTemplateConfig();
cellTemplateConfig.setId(distributedIdService.nextId());
cellTemplateConfig.setCellTemplateId(getIdFromExistTable3(MapUtils.getString(item, "CellTemplateID"), MapUtils.getString(item, "ReportTemplateID")));
cellTemplateConfig.setReportTemplateId(getIdFromExistTable2(MapUtils.getString(item, "ReportTemplateID")));
cellTemplateConfig.setDataSourceType(MapUtils.getInteger(item, "DataSourceType"));
cellTemplateConfig.setFormula(MapUtils.getString(item, "Formula") != null ? MapUtils.getString(item, "Formula") : "");
cellTemplateConfig.setFormulaDescription(MapUtils.getString(item, "FormulaDescription") != null ? MapUtils.getString(item, "FormulaDescription") : "");
cellTemplateConfig.setAccountCodes(MapUtils.getString(item, "AccountCodes") != null ? MapUtils.getString(item, "AccountCodes") : "");
cellTemplateConfig.setInvoiceType(MapUtils.getInteger(item, "InvoiceType") != null ? MapUtils.getInteger(item, "InvoiceType") : 0);
cellTemplateConfig.setTaxRate(MapUtils.getString(item, "TaxRate") != null ? MapUtils.getString(item, "TaxRate") : "");
cellTemplateConfig.setInvoiceAmountType(MapUtils.getInteger(item, "InvoiceAmountType") != null ? MapUtils.getInteger(item, "InvoiceAmountType") : 0);
cellTemplateConfig.setModelIds(MapUtils.getString(item, "ModelIDs") != null ? MapUtils.getString(item, "ModelIDs") : "");
cellTemplateConfig.setCreateBy(MapUtils.getString(item, "Creator") != null ? MapUtils.getString(item, "Creator") : "");
cellTemplateConfig.setCreateTime(DateUtils.strToDateLong(MapUtils.getString(item, "CreateTime")));
cellTemplateConfig.setUpdateBy(MapUtils.getString(item, "Updater") != null ? MapUtils.getString(item, "Updater") : "");
cellTemplateConfig.setUpdateTime(DateUtils.strToDateLong(MapUtils.getString(item, "UpdateTime")));
cellTemplateConfig.setInvoiceCategory(MapUtils.getString(item, "InvoiceCategory") != null ? MapUtils.getString(item, "InvoiceCategory") : "");
cellTemplateConfig.setFormulaDataSource(MapUtils.getString(item, "FormulaDataSource") != null ? MapUtils.getString(item, "FormulaDataSource") : "");
cellTemplateConfig.setValidation(MapUtils.getString(item, "Validation") != null ? MapUtils.getString(item, "Validation") : "");
cellTemplateConfig.setValidationDescription(MapUtils.getString(item, "ValidationDescription") != null ? MapUtils.getString(item, "ValidationDescription") : "");
cellTemplateConfig.setVoucherKeyword(MapUtils.getString(item, "VoucherKeyword") != null ? MapUtils.getString(item, "VoucherKeyword") : "");
System.out.println("i=" + i);
System.out.println("j=" + j);
cellTemplateConfigList.add(cellTemplateConfig);
if (i == 10 && j < queryForList.size()) {
cellTemplateConfigDao.batchInsert(cellTemplateConfigList);
cellTemplateConfigList.clear();
i = 0;
} else {
if (j == queryForList.size()) {
cellTemplateConfigDao.batchInsert(cellTemplateConfigList);
cellTemplateConfigList.clear();
}
}
}
}
/**
* 根据templateid 和 celltemplateid 获取新表cellTemplate ID
*
* @param id celltemplateid
* @param id2 templateid
* @return
*/
private Long getIdFromExistTable3(String id, String id2) {
try {
//根据templateid 获取 新表 templateid
Long templateId = getIdFromExistTable2(id2);
//根据新表templateid 还有 rowIndex,columnIndex 获取 celltemplate 新表ID
Map<String, Object> item = cellTemplate20180622List.stream()
.filter(a -> MapUtils.getString(a, "ID").equals(id))
.findFirst().get();
Integer rowIndex = MapUtils.getInteger(item, "RowIndex");
Integer columnIndex = MapUtils.getInteger(item, "ColumnIndex");
CellTemplate cellTemplate = cellTemplates.stream()
.filter(a -> a.getReportTemplateId().equals(templateId)
&& a.getRowIndex().equals(rowIndex)
&& a.getColumnIndex().equals(columnIndex))
.findFirst().get();
return cellTemplate.getId();
} catch (Exception e) {
e.printStackTrace();
return 0L;
}
}
//todo:organization_service_template_group --284
@Test
public void doMigrationOrganizationServiceTemplateGroup() {
String sql = "Select * from OrganizationServiceTemplateGroup";
System.out.println(sql);
List<Map<String, Object>> queryForList = jdbcTemplate.queryForList(sql);
sql = "DELETE FROM organization_service_template_group";
System.out.println(sql);
jdbcTemplate.execute(sql);
OrganizationServiceTemplateGroup organizationServiceTemplateGroup;
for (Map<String, Object> item : queryForList) {
organizationServiceTemplateGroup = new OrganizationServiceTemplateGroup();
organizationServiceTemplateGroup.setId(distributedIdService.nextId());
organizationServiceTemplateGroup.setTemplateGroupId(getIdFromExistTable(MapUtils.getString(item, "TemplateGroupID")));
organizationServiceTemplateGroup.setOrganizationId(MapUtils.getString(item, "OrganizationID"));
organizationServiceTemplateGroup.setServiceTypeId(MapUtils.getString(item, "ServiceTypeID"));
organizationServiceTemplateGroupMapper.insert(organizationServiceTemplateGroup);
}
}
//todo:tax_payer_report_rule --120
@Test
public void doMigrationTaxPayerReportRule() {
String sql = "Select * from TaxPayerReportRule_20180622";
System.out.println(sql);
List<Map<String, Object>> queryForList = jdbcTemplate.queryForList(sql);
sql = "DELETE FROM tax_payer_report_rule";
System.out.println(sql);
jdbcTemplate.execute(sql);
TaxPayerReportRule taxPayerReportRule;
for (Map<String, Object> item : queryForList) {
taxPayerReportRule = new TaxPayerReportRule();
taxPayerReportRule.setId(distributedIdService.nextId());
taxPayerReportRule.setTemplateGroupId(getIdFromExistTable(MapUtils.getString(item, "TemplateGroupID")));
taxPayerReportRule.setOrganizationId(MapUtils.getString(item, "OrganizationID"));
taxPayerReportRule.setTaxPayerType(MapUtils.getInteger(item, "TaxPayerType"));
taxPayerReportRule.setIsDefault(MapUtils.getBoolean(item, "IsDefault"));
taxPayerReportRule.setCreateTime(DateUtils.strToDateLong(MapUtils.getString(item, "CreateTime")));
taxPayerReportRule.setUpdateTime(DateUtils.strToDateLong(MapUtils.getString(item, "UpdateTime")));
taxPayerReportRule.setCreateBy(StringUtils.EMPTY);
taxPayerReportRule.setUpdateBy(StringUtils.EMPTY);
taxPayerReportRuleMapper.insert(taxPayerReportRule);
}
}
//todo:tax_rule_setting --13
@Test
public void doMigrationTaxRuleSetting() {
String sql = "Select * from TaxRuleSetting_20180622";
System.out.println(sql);
List<Map<String, Object>> queryForList = jdbcTemplate.queryForList(sql);
sql = "DELETE FROM tax_rule_setting";
System.out.println(sql);
jdbcTemplate.execute(sql);
TaxRuleSetting taxRuleSetting;
for (Map<String, Object> item : queryForList) {
taxRuleSetting = new TaxRuleSetting();
taxRuleSetting.setId(distributedIdService.nextId());
taxRuleSetting.setTaxBase(MapUtils.getString(item, "TaxBase"));
taxRuleSetting.setCreateTime(DateUtils.strToDateLong(MapUtils.getString(item, "CreateTime")));
taxRuleSetting.setUpdateTime(DateUtils.strToDateLong(MapUtils.getString(item, "UpdateTime")));
taxRuleSetting.setGroupName(MapUtils.getString(item, "GroupName"));
taxRuleSetting.setName(MapUtils.getString(item, "Name"));
taxRuleSetting.setIsDefault(MapUtils.getBoolean(item, "IsDefault"));
taxRuleSetting.setTaxRate(new BigDecimal(MapUtils.getFloat(item, "TaxRate")));
taxRuleSetting.setCreateBy(StringUtils.EMPTY);
taxRuleSetting.setUpdateBy(StringUtils.EMPTY);
taxRuleSettingMapper.insert(taxRuleSetting);
}
}
private List<Map<String, Object>> taxRuleSetting20180622List;
private List<TaxRuleSetting> taxRuleSettingList;
//todo:tax_rule_setting_organization --17
@Test
public void doMigrationTaxRuleSettingOrganization() {
String sql = "Select * from TaxRuleSettingOrganization_20180622";
System.out.println(sql);
List<Map<String, Object>> queryForList = jdbcTemplate.queryForList(sql);
sql = "DELETE FROM tax_rule_setting_organization";
System.out.println(sql);
jdbcTemplate.execute(sql);
sql = "SELECT ID,CreateTime FROM TaxRuleSetting_20180622";
taxRuleSetting20180622List = jdbcTemplate.queryForList(sql);
taxRuleSettingList = taxRuleSettingMapper.selectByExample(new TaxRuleSettingExample());
TaxRuleSettingOrganization taxRuleSettingOrganization;
for (Map<String, Object> item : queryForList) {
taxRuleSettingOrganization = new TaxRuleSettingOrganization();
taxRuleSettingOrganization.setId(distributedIdService.nextId());
taxRuleSettingOrganization.setTaxSettingId(getIdFromExistTable4(MapUtils.getString(item, "TaxSettingID")));
taxRuleSettingOrganization.setOrganizationId(MapUtils.getString(item, "OrganizationID"));
taxRuleSettingOrganization.setCreateTime(DateUtils.strToDateLong(MapUtils.getString(item, "CreateTime")));
taxRuleSettingOrganization.setUpdateTime(DateUtils.strToDateLong(MapUtils.getString(item, "UpdateTime")));
taxRuleSettingOrganization.setCreateBy(StringUtils.EMPTY);
taxRuleSettingOrganization.setUpdateBy(StringUtils.EMPTY);
taxRuleSettingOrganizationMapper.insert(taxRuleSettingOrganization);
}
}
/**
* 获取taxSetting 新表ID
*
* @param id 旧表ID
* @return 新表ID
*/
private Long getIdFromExistTable4(String id) {
try {
Map<String, Object> item = taxRuleSetting20180622List.stream()
.filter(a -> MapUtils.getString(a, "ID").equals(id))
.findFirst().get();
String name = MapUtils.getString(item, "Name");
String createTime = MapUtils.getString(item, "CreateTime");
TaxRuleSetting taxRuleSetting = taxRuleSettingList.stream()
.filter(a -> a.getName().equals(name)
&& a.getCreateTime().equals(createTime))
.findFirst().get();
Long newId = taxRuleSetting.getId();
return newId;
} catch (Exception e) {
return 0L;
} finally {
}
}
}
package pwc.taxtech.atms.common;
import org.apache.commons.net.ftp.FTPClient;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import pwc.taxtech.atms.CommonIT;
import pwc.taxtech.atms.common.ftp.FtpService;
import java.io.File;
import java.io.FileInputStream;
public class FTPTest extends CommonIT {
@Autowired
FtpService ftpService;
@Test
public void test() {
try {
// FTPClient client = ftpClientPool.getClient();
// FTPClient client = null;
// client.listFiles("hhhhh/sss/ccc");
// client.makeDirectory("hhhhh/sss/ccc");
// client.changeWorkingDirectory("hhhhh/sss/ccc");
// client.storeFile("./aa/bb/cc/dd/text.txt", new FileInputStream(new File("C:\\temp/Fixed.txt")));
// System.out.println(client.listFiles().length);
} catch (Exception e) {
e.printStackTrace();
}
}
}
package pwc.taxtech.atms.common;
import java.io.IOException;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;
import org.junit.Assert;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import pwc.taxtech.atms.CommonIT;
import pwc.taxtech.atms.entity.Stock;
public class JsonIT extends CommonIT {
@Autowired
private ObjectMapper objectMapper;
@Test
public void nullToString() throws JsonProcessingException {
System.out.println("############# PRINT START #################");
System.out.println(objectMapper.writeValueAsString(null));
System.out.println("############# PRINT END #################");
}
@Test
public void testNumber() throws JsonParseException, JsonMappingException, IOException {
Stock obj = new Stock();
BigDecimal capitalAmount = new BigDecimal("123456789012345678.888");
obj.setCapitalAmount(capitalAmount);
String jsonString = objectMapper.writeValueAsString(obj);
System.out.println(jsonString);
double d = 123456789012345678.888;
Map<String, Object> map = new HashMap<>();
map.put("key1", d);
System.out.println(objectMapper.writeValueAsString(map));
}
@Test
public void test() throws JsonParseException, JsonMappingException, IOException {
{
IdModel module = objectMapper.readValue("{\"id\":\"dummy\"}", IdModel.class);
Assert.assertEquals("dummy", module.getId());
}
{
IdModel module = objectMapper.readValue("{\"id\":\"dummy\"}", IdModel.class);
Assert.assertEquals("dummy", module.getId());
}
{
IdModel module = objectMapper.readValue("{\"id\":\"dummy\"}", IdModel.class);
Assert.assertEquals("dummy", module.getId());
}
{
IdModel module = objectMapper.readValue("{\"Id\":\"dummy\"}", IdModel.class);
Assert.assertEquals("dummy", module.getId());
}
}
public static class IdModel {
private String id;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
}
}
package pwc.taxtech.atms.common;
import org.mybatis.generator.api.MyBatisGenerator;
import org.mybatis.generator.config.Configuration;
import org.mybatis.generator.config.xml.ConfigurationParser;
import org.mybatis.generator.internal.DefaultShellCallback;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class MyBatisGeneratorTest {
public static void main(String[] args) throws Exception {
try {
List<String> warnings = new ArrayList<>();
boolean overwrite = true;
//指定 逆向工程配置文件
File configFile = new File(MyBatisGeneratorTest.class.getClassLoader().getResource("generatorConfig.xml").getPath());
ConfigurationParser cp = new ConfigurationParser(warnings);
Configuration config = cp.parseConfiguration(configFile);
DefaultShellCallback callback = new DefaultShellCallback(overwrite);
MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
myBatisGenerator.generate(null);
} catch (Exception e) {
e.printStackTrace();
}
}
}
package pwc.taxtech.atms.common;
import static org.mockito.Mockito.when;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
@RunWith(MockitoJUnitRunner.class)
public class MyServletContextListenerTest {
@InjectMocks
private MyServletContextListener myServletContextListener;
@Mock
private ServletContextEvent servletContextEvent;
@Mock
private ServletContext servletContext;
@Test
public void contextInitialized() {
when(servletContextEvent.getServletContext()).thenReturn(servletContext);
when(servletContext.getMajorVersion()).thenReturn(2);
when(servletContext.getMinorVersion()).thenReturn(5);
myServletContextListener.contextInitialized(servletContextEvent);
}
@Test
public void contextDestroyed() {
myServletContextListener.contextDestroyed(servletContextEvent);
}
}
package pwc.taxtech.atms.common;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.parser.ParseContext;
import org.apache.tika.parser.pdf.PDFParser;
import org.apache.tika.parser.pdf.PDFParserConfig;
import org.apache.tika.sax.BodyContentHandler;
import java.io.File;
import java.io.FileInputStream;
public class PDFTest {
public static void main(String[] args) {
try {
BodyContentHandler handler = new BodyContentHandler();
Metadata metadata = new Metadata();
FileInputStream inputstream = new FileInputStream(new File("C:\\woo\\test.pdf"));
ParseContext pcontext = new ParseContext();
PDFParser pdfparser = new PDFParser();
pdfparser.getPDFParserConfig().setSortByPosition(true);//参见底层实现
// pdfparser.getPDFParserConfig().setEnableAutoSpace(false);
// pdfparser.getPDFParserConfig().setAverageCharTolerance(1f);
// pdfparser.getPDFParserConfig().setSpacingTolerance(20f);
pdfparser.parse(inputstream, handler, metadata, pcontext);
System.out.println(handler.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
package pwc.taxtech.atms.common;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.ss.formula.functions.FreeRefFunction;
import org.apache.poi.ss.formula.udf.AggregatingUDFFinder;
import org.apache.poi.ss.formula.udf.DefaultUDFFinder;
import org.apache.poi.ss.formula.udf.UDFFinder;
import org.apache.poi.ss.usermodel.*;
import java.io.*;
public class POITest {
public static void main(String[] args) {
File workbookFile = new File("C:\\source\\test - Copy.xlsx");
try {
FileInputStream fis = new FileInputStream(workbookFile);
Workbook workbook = WorkbookFactory.create(fis);
String[] functionNames = {"TmpFunction"};
FreeRefFunction[] functionImpls = {new TmpFunction()};
UDFFinder udfs = new DefaultUDFFinder(functionNames, functionImpls);
UDFFinder udfToolpack = new AggregatingUDFFinder(udfs);
workbook.addToolPack(udfToolpack);
FormulaEvaluator evaluator = workbook.getCreationHelper().createFormulaEvaluator();
int sheetNum = workbook.getNumberOfSheets();
Sheet st1 = workbook.getSheetAt(0);
for (int i = 0; i < 10; i++) {
if (st1.getRow(i) == null) {
st1.createRow(i);
for (int j = 0; j < 10; j++) {
if (st1.getRow(i).getCell(j) == null) {
st1.getRow(i).createCell(j).setCellFormula("TmpFunction(\"g2\","+j+")+B5-TmpFunction(\"g2\","+i+")");
}
}
}
}
st1.getRow(1).getCell(0).setCellType(CellType.NUMERIC);
st1.getRow(1).getCell(0).setCellValue(15);
evaluator.evaluateAll();
for (int i = 0; i < sheetNum; i++) {
Sheet tmpSheet = workbook.getSheetAt(i);
for (int r = tmpSheet.getFirstRowNum(); r <= tmpSheet.getLastRowNum(); r++) {
Row row = tmpSheet.getRow(r);
if (null == row) {
continue;
}
for (int c = row.getFirstCellNum(); c <= row.getLastCellNum(); c++) {
System.out.println("row :" + r + " cell: " + c);
Cell tmp = row.getCell(c);
if (null != tmp && tmp.getCellTypeEnum().equals(CellType.FORMULA)) {
// CellValue v = evaluator.evaluate(tmp);
tmp.setCellType(CellType.NUMERIC);
tmp.setCellValue(tmp.getNumericCellValue());
}
}
}
}
FileOutputStream excelFileOutPutStream = new FileOutputStream("C:\\source\\test - Copy.xlsx");
workbook.write(excelFileOutPutStream);
excelFileOutPutStream.flush();
excelFileOutPutStream.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (InvalidFormatException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
package pwc.taxtech.atms.common;
import static org.junit.Assert.assertEquals;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
import pwc.taxtech.atms.dto.VMRegionDevTreeData;
import pwc.taxtech.atms.dto.navtree.DevTreeDto;
public class SortUtilsTest{
@Test
public void sortDevTreeDtoByTextTest() {
List<DevTreeDto<VMRegionDevTreeData>> devTree = new ArrayList<>();
DevTreeDto<VMRegionDevTreeData> o1 = new DevTreeDto<>();
o1.setText("111");
DevTreeDto<VMRegionDevTreeData> o2 = new DevTreeDto<>();
o2.setText("CBA");
DevTreeDto<VMRegionDevTreeData> o3 = new DevTreeDto<>();
o3.setText("abc");
DevTreeDto<VMRegionDevTreeData> o4 = new DevTreeDto<>();
o4.setText("直辖市");
DevTreeDto<VMRegionDevTreeData> o5 = new DevTreeDto<>();
o5.setText("大中华");
devTree.add(o1);devTree.add(o2);devTree.add(o3);devTree.add(o4);devTree.add(o5);
SortUtils.sortDevTreeDtoByText(devTree);
assertEquals("111", devTree.get(0).getText());
assertEquals("abc", devTree.get(1).getText());
assertEquals("CBA", devTree.get(2).getText());
assertEquals("大中华", devTree.get(3).getText());
assertEquals("直辖市", devTree.get(4).getText());
}
}
package pwc.taxtech.atms.common;
import org.junit.Assert;
import org.junit.Test;
import org.springframework.util.StringUtils;
public class StringHelperTest {
@Test
public void getPwd() {
StringHelper stringHelper = new StringHelper();
Assert.assertTrue(StringUtils.hasText(stringHelper.generateRandomPassword()));
}
}
package pwc.taxtech.atms.common;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.parser.ParseContext;
import org.apache.tika.sax.BodyContentHandler;
import org.xml.sax.ContentHandler;
import java.io.*;
public class TikaTest {
public static void main(String[] args) {
try {
// Tika tika = new Tika();
File xpsFile = new File("C:\\woo\\海关稽核结果.xps");
InputStream inputStream = new FileInputStream(xpsFile);
// String FileName = xpsFile.getName();
// Metadata metadata = new Metadata();
// if (FileName != null && FileName.length() > 0)
// metadata.add(Metadata.RESOURCE_NAME_KEY, FileName);
// String MimeType = tika.detect(inputStream, metadata);
//
// metadata.add(Metadata.CONTENT_TYPE, MimeType);
// inputStream.close();
// inputStream = new FileInputStream(xpsFile);
// Reader reader = tika.parse(inputStream, metadata);
// String content = IOUtils.toString(reader);
// inputStream.close();
Metadata metadata = new Metadata();
ContentHandler handler = new BodyContentHandler();
new TmpXPSParser().parse(inputStream, handler, metadata, new ParseContext());
String content = handler.toString();
System.out.println(content);
} catch (Exception e) {
e.printStackTrace();
}
}
}
package pwc.taxtech.atms.common;
import org.apache.poi.ss.formula.OperationEvaluationContext;
import org.apache.poi.ss.formula.eval.*;
import org.apache.poi.ss.formula.functions.FreeRefFunction;
import org.apache.poi.ss.util.CellReference;
/*
TmpFunction("g2",5)
*/
public class TmpFunction implements FreeRefFunction {
@Override
public ValueEval evaluate(ValueEval[] valueEvals, OperationEvaluationContext operationEvaluationContext) {
// if (valueEvals.length != 3) {
// return ErrorEval.VALUE_INVALId;
// }
try {
ValueEval v1 = OperandResolver.getSingleValue(valueEvals[0],
operationEvaluationContext.getRowIndex(),
operationEvaluationContext.getColumnIndex());
ValueEval v2 = OperandResolver.getSingleValue(valueEvals[1],
operationEvaluationContext.getRowIndex(),
operationEvaluationContext.getColumnIndex());
String val1 = OperandResolver.coerceValueToString(v1);
int val2 = OperandResolver.coerceValueToInt(v2);
CellReference reference = new CellReference(val1);
int referenceSheetIndex = operationEvaluationContext.getWorkbook().getSheetIndex(reference.getSheetName());
return new NumberEval(operationEvaluationContext.getWorkbook()
.getSheet(referenceSheetIndex)
.getCell(reference.getRow(), reference.getCol())
.getNumericCellValue()
+ val2);
} catch (EvaluationException e) {
e.printStackTrace();
}
return null;
}
}
package pwc.taxtech.atms.common;
import java.io.IOException;
import java.io.InputStream;
import java.util.Collections;
import java.util.List;
import java.util.Set;
import javaaxp.core.service.IXPSAccess;
import javaaxp.core.service.IXPSPageAccess;
import javaaxp.core.service.XPSError;
import javaaxp.core.service.impl.XPSServiceImpl;
import javaaxp.core.service.impl.document.jaxb.CTCanvas;
import javaaxp.core.service.impl.document.jaxb.CTGlyphs;
import javaaxp.core.service.impl.document.jaxb.CTPath;
import javaaxp.core.service.model.document.page.IFixedPage;
import org.apache.tika.exception.TikaException;
import org.apache.tika.metadata.Metadata;
import org.apache.tika.mime.MediaType;
import org.apache.tika.parser.ParseContext;
import org.apache.tika.parser.Parser;
import org.apache.tika.sax.XHTMLContentHandler;
import org.xml.sax.ContentHandler;
import org.xml.sax.SAXException;
public class TmpXPSParser implements Parser {
private double currentXPosition = 0;
/**
*
*/
private static final long serialVersionUId = -3528366722867144747L;
private static final Set<MediaType> SUPPORTED_TYPES =
Collections.singleton(MediaType.application("vnd.ms-xpsdocument"));
private static final String XPS_MIME_TYPE = "application/vnd.ms-xpsdocument";
private XHTMLContentHandler fileXHTML;
public Set<MediaType> getSupportedTypes(ParseContext context) {
return SUPPORTED_TYPES;
}
public void parse(
InputStream stream, ContentHandler handler,
Metadata metadata, ParseContext context)
throws IOException, SAXException, TikaException {
metadata.set(Metadata.CONTENT_TYPE, XPS_MIME_TYPE);
fileXHTML = new XHTMLContentHandler(handler, metadata);
try {
parseXPS(stream);
} catch (XPSError e) {
throw new IOException(e);
}
stream.close();
}
private void parseXPS(InputStream inputStream) throws XPSError, SAXException {
IXPSAccess xpsAccess = XPSServiceImpl.getInstance().getXPSAccess(inputStream);
xhtmlStartDocument();
int firstDocNum = xpsAccess.getDocumentAccess().getFirstDocNum();
int lastDocNum = xpsAccess.getDocumentAccess().getLastDocNum();
for (int i = firstDocNum; i <= lastDocNum; i++) {
IXPSPageAccess xpsPageAccess = xpsAccess.getPageAccess(i);
int firstPageNum = xpsPageAccess.getFirstPageNum();
int lastPageNum = xpsPageAccess.getLastPageNum();
for (int j = firstPageNum; j <= lastPageNum; j++) {
IFixedPage fixedPage = xpsPageAccess.getPage(j);
parseObjs(fixedPage.getPathOrGlyphsOrCanvas());
}
}
xhtmlEndDocument();
}
private void parseObjs(List<Object> objs) throws XPSError, SAXException {
for (Object o : objs)
parseObj(o);
}
private void parseObj(Object xpsObj) throws XPSError, SAXException {
if (xpsObj instanceof CTCanvas) {
CTCanvas c = (CTCanvas) xpsObj;
xhtmlStartCanvas();
parseObjs(c.getPathOrGlyphsOrCanvas());
xhtmlEndCanvas();
} else if (xpsObj instanceof CTGlyphs) {
CTGlyphs c = (CTGlyphs) xpsObj;
if (c.getOriginX() < currentXPosition) {
fileXHTML.startElement("div");
fileXHTML.characters(" ");
fileXHTML.endElement("div");
}
String text = c.getUnicodeString();
xhtmlParagraph(text);
currentXPosition = c.getOriginX();
} else if (xpsObj instanceof CTPath) {
} else {
System.out.println("Unhandled type : " + xpsObj.getClass().getCanonicalName());
}
}
private void xhtmlStartDocument() throws SAXException {
fileXHTML.startDocument();
}
private void xhtmlEndDocument() throws SAXException {
fileXHTML.endDocument();
}
private void xhtmlStartCanvas() throws SAXException {
fileXHTML.startElement("div");
}
private void xhtmlEndCanvas() throws SAXException {
fileXHTML.endElement("div");
}
private void xhtmlParagraph(String text) throws SAXException {
fileXHTML.startElement("span");
fileXHTML.characters(text);
fileXHTML.endElement("span");
}
/**
* @deprecated This method will be removed in Apache Tika 1.0.
*/
public void parse(
InputStream stream, ContentHandler handler, Metadata metadata)
throws IOException, SAXException, TikaException {
parse(stream, handler, metadata, new ParseContext());
}
}
package pwc.taxtech.atms.controller;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.when;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import pwc.taxtech.atms.dto.LoginOutputDto;
import pwc.taxtech.atms.dto.OperationResultDto;
import pwc.taxtech.atms.dto.user.UserPasswordDto;
import pwc.taxtech.atms.service.UserAccountService;
@RunWith(MockitoJUnitRunner.class)
public class AccountControllerTest {
// @Mock
// private UserService userService;
@Mock
private UserAccountService userAccountService;
@InjectMocks
private AccountController accountController;
@Test
public void nullResult() {
UserPasswordDto userPasswordDto = new UserPasswordDto();
assertThat(accountController.changeExternalUserPassword(userPasswordDto)).isNull();
}
@Test
public void notNullResult() {
UserPasswordDto userPasswordDto = new UserPasswordDto();
when(userAccountService.changeExternalUserPassword(userPasswordDto))
.thenReturn(new OperationResultDto<LoginOutputDto>());
assertThat(accountController.changeExternalUserPassword(userPasswordDto)).isNotNull();
}
}
package pwc.taxtech.atms.controller;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.when;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import pwc.taxtech.atms.common.CommonConstants;
import pwc.taxtech.atms.common.CommonUtils;
import pwc.taxtech.atms.dto.AreaDto;
import pwc.taxtech.atms.dto.OperationResultDto;
import pwc.taxtech.atms.service.AreaService;
@RunWith(MockitoJUnitRunner.class)
public class AreaControllerTest {
@Mock
private AreaService areaService;
@InjectMocks
private AreaController areaController = new AreaController();
@Test
public void setIsActiveNotNullResult() {
AreaDto areaDto = new AreaDto();
areaDto.setId(CommonUtils.getUUID());
areaDto.setIsActive(CommonConstants.ACTIVE_STATUS);
areaDto.setName("areaNotNull");
OperationResultDto<List<String>> operationResultDto = new OperationResultDto<>();
when(areaService.setIsActive(areaDto)).thenReturn(operationResultDto);
assertThat(areaController.setIsActive(areaDto)).isNotNull();
}
@Test
public void getAreaListTest() {
when(areaService.getAreaList(1)).thenReturn(new ArrayList<>());
assertThat(areaController.getAreaList(1)).isNotNull();
}
}
package pwc.taxtech.atms.controller;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.when;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import pwc.taxtech.atms.common.CommonUtils;
import pwc.taxtech.atms.dto.OperationResultDto;
import pwc.taxtech.atms.dto.arearegion.AreaRegionInfo;
import pwc.taxtech.atms.service.AreaRegionService;
@RunWith(MockitoJUnitRunner.class)
public class AreaRegionControllerTest {
@Mock
private AreaRegionService areaRegionService;
@InjectMocks
private AreaRegionController areaRegionController = new AreaRegionController();
@Test
public void addNotNullResult() {
AreaRegionInfo areaRegionInfo = new AreaRegionInfo();
areaRegionInfo.setName("areaNotNull");
areaRegionInfo.setParentId(CommonUtils.getUUID());
OperationResultDto<?> operationResultDto = new OperationResultDto<>();
when(areaRegionService.add(areaRegionInfo)).thenReturn(operationResultDto);
assertThat(areaRegionController.add(areaRegionInfo)).isNotNull();
}
@Test
public void updateNotNullResult() {
AreaRegionInfo areaRegionInfo = new AreaRegionInfo();
areaRegionInfo.setName("areaNotNull");
areaRegionInfo.setParentId(CommonUtils.getUUID());
OperationResultDto<?> operationResultDto = new OperationResultDto<>();
when(areaRegionService.update(areaRegionInfo)).thenReturn(operationResultDto);
assertThat(areaRegionController.update(areaRegionInfo)).isNotNull();
}
}
package pwc.taxtech.atms.controller;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.when;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import pwc.taxtech.atms.common.CommonUtils;
import pwc.taxtech.atms.dto.BusinessUnitDto;
import pwc.taxtech.atms.dto.IdModel;
import pwc.taxtech.atms.service.BusinessUnitService;
@RunWith(MockitoJUnitRunner.class)
public class BusinessUnitControllerTest {
@Mock
private BusinessUnitService businessUnitService;
@InjectMocks
private BusinessUnitController businessUnitController = new BusinessUnitController();
@Test
public void getBusinessUnitsNotNullResult() {
List<BusinessUnitDto> businessUnitDtos = new ArrayList<>();
when(businessUnitService.getBusinessUnits()).thenReturn(businessUnitDtos);
assertThat(businessUnitController.getBusinessUnits()).isNotNull();
}
@Test
public void updateBusinessUnitsNotNullResult() {
List<BusinessUnitDto> businessUnitDtos = new ArrayList<>();
BusinessUnitDto businessUnitDto = new BusinessUnitDto();
businessUnitDto.setId(CommonUtils.getUUID());
businessUnitDto.setIsActive(true);
businessUnitDto.setName("businessUnitNotNull");
businessUnitDtos.add(businessUnitDto);
when(businessUnitService.updateBusinessUnits(businessUnitDtos)).thenReturn(true);
assertThat(businessUnitController.updateBusinessUnits(businessUnitDtos)).isNotNull();
}
@Test
public void deleteBusinessUnitNotNullResult() {
IdModel idModel = new IdModel();
idModel.setId(CommonUtils.getUUID());
when(businessUnitService.deleteBusinessUnit(idModel)).thenReturn(1);
assertThat(businessUnitController.deleteBusinessUnit(idModel)).isNotNull();
}
}
package pwc.taxtech.atms.controller;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.when;
import java.util.ArrayList;
import java.util.List;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import pwc.taxtech.atms.common.CommonUtils;
import pwc.taxtech.atms.dto.OperationResultDto;
import pwc.taxtech.atms.dto.customer.CustomerDto;
import pwc.taxtech.atms.dto.customer.CustomerValidateInfoDto;
import pwc.taxtech.atms.service.CustomerService;
@RunWith(MockitoJUnitRunner.class)
public class CustomerControllerTest {
@Mock
private CustomerService customerService;
@Mock
private CommonsMultipartFile commonsMultipartFile;
@InjectMocks
private CustomerController customerController;
@Test
public void addRangeNotNullResult() {
List<CustomerDto> customerDtoList = new ArrayList<>();
CustomerDto customerDto = new CustomerDto();
customerDto.setId(CommonUtils.getUUID());
customerDto.setName("customer-name");
customerDto.setCode("customer-code");
customerDto.setEnterPriseAccountId(CommonUtils.getUUID());
customerDtoList.add(customerDto);
List<OperationResultDto<CustomerDto>> operationResultDtoList = new ArrayList<>();
when(customerService.addRange(customerDtoList)).thenReturn(operationResultDtoList);
assertThat(customerController.addRange(customerDtoList)).isNotNull();
}
@Test
public void getByIdNotNullResult() {
String setId = CommonUtils.getUUID();
when(customerService.getByEnterpriseAccountSetId(setId)).thenReturn(new CustomerValidateInfoDto());
assertThat(customerController.getById(setId)).isNotNull();
}
@Test
public void getNotNullResult() {
List<CustomerDto> customerDtoList = new ArrayList<>();
when(customerService.getCustomer()).thenReturn(customerDtoList);
assertThat(customerController.getCustomer()).isNotNull();
}
@Test
public void deleteRangeNotNullResult() {
List<CustomerDto> customerDtoList = new ArrayList<>();
CustomerDto customerDto = new CustomerDto();
customerDto.setId(CommonUtils.getUUID());
customerDto.setName("customer-name");
customerDto.setCode("customer-code");
customerDto.setEnterPriseAccountId(CommonUtils.getUUID());
customerDtoList.add(customerDto);
OperationResultDto<String> operationResultDto = new OperationResultDto<>();
when(customerService.deleteRange(customerDtoList)).thenReturn(operationResultDto);
assertThat(customerController.deleteRange(customerDtoList)).isNotNull();
}
@Test
public void updateRangeNotNullResult() {
List<CustomerDto> customerDtoList = new ArrayList<>();
CustomerDto customerDto = new CustomerDto();
customerDto.setId(CommonUtils.getUUID());
customerDto.setName("customer-name");
customerDto.setCode("customer-code");
customerDto.setEnterPriseAccountId(CommonUtils.getUUID());
customerDtoList.add(customerDto);
List<OperationResultDto<CustomerDto>> operationResultDtoList = new ArrayList<>();
when(customerService.updateRange(customerDtoList)).thenReturn(operationResultDtoList);
assertThat(customerController.updateRange(customerDtoList)).isNotNull();
}
@SuppressWarnings("rawtypes")
@Test
public void uploadNullFile() {
CommonsMultipartFile inputFile = null;
String enterpriseAccountId = "enterpriseAccountId1";
String action = "1";
Object obj = customerController.upload(inputFile, enterpriseAccountId, action);
OperationResultDto result = (OperationResultDto) obj;
Assert.assertEquals(Boolean.FALSE, result.getResult());
}
@Test
public void uploadFile() {
String enterpriseAccountId = "enterpriseAccountId1";
String action = "1";
when(commonsMultipartFile.getSize()).thenReturn(1L);
Object obj = customerController.upload(commonsMultipartFile, enterpriseAccountId, action);
Assert.assertNull(obj);
}
}
package pwc.taxtech.atms.controller;
import static org.assertj.core.api.Assertions.assertThat;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import pwc.taxtech.atms.service.DimensionService;
@RunWith(MockitoJUnitRunner.class)
public class DimensionControllerTest {
@Mock
private DimensionService dimensionService;
@InjectMocks
private DimensionController dimensionController;
@Test
public void emptyResult() {
assertThat(dimensionController.getDimensionStatics()).isEmpty();
}
}
package pwc.taxtech.atms.controller;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import pwc.taxtech.atms.common.CommonUtils;
import pwc.taxtech.atms.dpo.EnterpriseAccountDto;
import pwc.taxtech.atms.dpo.EnterpriseAccountSetOrgDto;
import pwc.taxtech.atms.dto.OperationResultDto;
import pwc.taxtech.atms.dto.epaccount.EnterpriseAccountAndValidateInfo;
import pwc.taxtech.atms.dto.epaccount.EnterpriseAccountSetDto;
import pwc.taxtech.atms.dto.epaccount.EnterpriseAccountUploadDto;
import pwc.taxtech.atms.service.EnterpriseAccountService;
import pwc.taxtech.atms.service.EnterpriseAccountSetService;
import pwc.taxtech.atms.service.impl.FileService;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
public class EnterpriseAccountManagerControllerTest {
@Mock private EnterpriseAccountSetService enterpriseAccountSetService;
@Mock private EnterpriseAccountService enterpriseAccountService;
@Mock private FileService fileService;
@Mock private HttpServletResponse response;
@Mock private ServletOutputStream outputStream;
@Mock private CommonsMultipartFile commonsMultipartFile;
@Mock private InputStream mockInputStream;
@Mock private EnterpriseAccountSetDto mockEnterpriseAccountSetDto;
@Mock private EnterpriseAccountUploadDto mockEnterpriseAccountUploadDto;
@InjectMocks
private EnterpriseAccountManagerController enterpriseAccountManagerController = new EnterpriseAccountManagerController();
@Test
public void getEnterpriseAccountSetListTest() {
List<EnterpriseAccountSetDto> enterpriseAccountSetDtoList = new ArrayList<>();
when(enterpriseAccountSetService.getEnterpriseAccountSetList()).thenReturn(enterpriseAccountSetDtoList);
assertThat(enterpriseAccountManagerController.getEnterpriseAccountSetList()).isNotNull();
}
@Test
public void getEnterpriseAccountSetTest() {
String enterpriseAccountSetId = CommonUtils.getUUID();
EnterpriseAccountSetDto enterpriseAccountSetDto = new EnterpriseAccountSetDto();
when(enterpriseAccountSetService.getEnterpriseAccountSet(enterpriseAccountSetId)).thenReturn(enterpriseAccountSetDto);
assertThat(enterpriseAccountManagerController.getEnterpriseAccountSet(enterpriseAccountSetId)).isNotNull();
}
@Test
public void getListByEnterpriseAccountSetIdTest() {
String enterpriseAccountSetId = CommonUtils.getUUID();
EnterpriseAccountAndValidateInfo enterpriseAccountAndValidateInfo = new EnterpriseAccountAndValidateInfo();
when(enterpriseAccountService.getListByEnterpriseAccountSetId(enterpriseAccountSetId)).thenReturn(enterpriseAccountAndValidateInfo);
assertThat(enterpriseAccountManagerController.getListByEnterpriseAccountSetId(enterpriseAccountSetId)).isNotNull();
}
@Test
public void enterpriseAccountSetNameValidateTest() {
when(mockEnterpriseAccountSetDto.getName()).thenReturn("NameUpdate");
//when(mockEnterpriseAccountSetDto.getCode()).thenReturn("CodeUpdate");
when(mockEnterpriseAccountSetDto.getId()).thenReturn("id");
//when(enterpriseAccountSetService.enterpriseAccountSetNameValidate(mockEnterpriseAccountSetDto)).thenReturn(new OperationResultDto<>(true));
OperationResultDto<?> result = enterpriseAccountManagerController.enterpriseAccountSetNameValidate(mockEnterpriseAccountSetDto.getId(), mockEnterpriseAccountSetDto.getName());
Assert.assertNull(result);
}
@Test
public void enterpriseAccountSetCodeValidateTest() {
// when(mockEnterpriseAccountSetDto.getName()).thenReturn("NameUpdate");
when(mockEnterpriseAccountSetDto.getCode()).thenReturn("CodeUpdate");
when(mockEnterpriseAccountSetDto.getId()).thenReturn("id");
//when(enterpriseAccountSetService.enterpriseAccountSetCodeValidate(mockEnterpriseAccountSetDto)).thenReturn(new OperationResultDto<>(true));
OperationResultDto<?> result = enterpriseAccountManagerController.enterpriseAccountSetCodeValidate(mockEnterpriseAccountSetDto.getId(), mockEnterpriseAccountSetDto.getCode());
Assert.assertNull(result);
}
@Test
public void enterpriseAccountSetOrgValidateTest() {
EnterpriseAccountSetDto enterpriseAccountSetDto = new EnterpriseAccountSetDto();
enterpriseAccountSetDto.setId(CommonUtils.getUUID());
enterpriseAccountSetDto.setName("NameUpdate");
enterpriseAccountSetDto.setCode("CodeUpdate");
when(enterpriseAccountSetService.enterpriseAccountSetOrgValidate(enterpriseAccountSetDto)).thenReturn(new OperationResultDto<>(true));
assertThat(enterpriseAccountManagerController.enterpriseAccountSetOrgValidate(enterpriseAccountSetDto)).isNotNull();
}
@Test
public void addEnterpriseAccountSetOrgTest() {
EnterpriseAccountSetDto enterpriseAccountSetDto = new EnterpriseAccountSetDto();
enterpriseAccountSetDto.setId(CommonUtils.getUUID());
enterpriseAccountSetDto.setName("NameUpdate");
enterpriseAccountSetDto.setCode("CodeUpdate");
when(enterpriseAccountSetService.addEnterpriseAccountSetOrg(enterpriseAccountSetDto)).thenReturn(new OperationResultDto<>(true));
assertThat(enterpriseAccountManagerController.addEnterpriseAccountSetOrg(enterpriseAccountSetDto)).isNotNull();
}
@Test
public void updateEnterpriseAccountSetOrgTest() {
EnterpriseAccountSetOrgDto enterpriseAccountSetOrgDto = new EnterpriseAccountSetOrgDto();
enterpriseAccountSetOrgDto.setId(CommonUtils.getUUID());
when(enterpriseAccountSetService.updateEnterpriseAccountSetOrg(enterpriseAccountSetOrgDto)).thenReturn(new OperationResultDto<>(true));
assertThat(enterpriseAccountManagerController.updateEnterpriseAccountSetOrg(enterpriseAccountSetOrgDto)).isNotNull();
}
@Test
public void deleteEnterpriseAccountSetOrgTest() {
EnterpriseAccountSetDto enterpriseAccountSetDto = new EnterpriseAccountSetDto();
enterpriseAccountSetDto.setId(CommonUtils.getUUID());
enterpriseAccountSetDto.setName("NameUpdate");
enterpriseAccountSetDto.setCode("CodeUpdate");
when(enterpriseAccountSetService.deleteEnterpriseAccountSetOrg(enterpriseAccountSetDto)).thenReturn(new OperationResultDto<>(true));
assertThat(enterpriseAccountManagerController.deleteEnterpriseAccountSetOrg(enterpriseAccountSetDto)).isNotNull();
}
@Test
public void updateEnterpriseAccountSetTest() {
EnterpriseAccountSetDto enterpriseAccountSetDto = new EnterpriseAccountSetDto();
enterpriseAccountSetDto.setId(CommonUtils.getUUID());
enterpriseAccountSetDto.setName("NameUpdate");
enterpriseAccountSetDto.setCode("CodeUpdate");
when(enterpriseAccountSetService.updateEnterpriseAccountSet(enterpriseAccountSetDto)).thenReturn(new OperationResultDto<>(true));
assertThat(enterpriseAccountManagerController.updateEnterpriseAccountSet(enterpriseAccountSetDto)).isNotNull();
}
@Test
public void getEnterpriseAccountTest() {
String enterpriseAccountId = CommonUtils.getUUID();
when(enterpriseAccountService.getEnterpriseAccount(enterpriseAccountId)).thenReturn(new EnterpriseAccountDto());
assertThat(enterpriseAccountManagerController.getEnterpriseAccount(enterpriseAccountId)).isNotNull();
}
@Test
public void downEntepriseAccountTemplateTest () throws IOException {
when(response.getOutputStream()).thenReturn(outputStream);
enterpriseAccountManagerController.downEntepriseAccountTemplate(response);
}
/*@Test
public void uploadEnterpriseAccountTest() throws IOException{
when(mockEnterpriseAccountUploadDto.getName()).thenReturn("account set name");
when(mockEnterpriseAccountUploadDto.getCode()).thenReturn("account set code");
when(mockEnterpriseAccountUploadDto.getEnterpriseAccountSetId()).thenReturn("account set id");
when(mockEnterpriseAccountUploadDto.getIsImportAppend()).thenReturn("true");
when(commonsMultipartFile.getSize()).thenReturn(1L);
when(commonsMultipartFile.getOriginalFilename()).thenReturn("filename.xlsx");
when(commonsMultipartFile.getInputStream()).thenReturn(mockInputStream);
when(enterpriseAccountService.addEnterpriseAccountSetAndImportData(mockEnterpriseAccountUploadDto.getName(), mockEnterpriseAccountUploadDto.getCode(), new ArrayList<EnterpriseAccountDto>())).thenReturn(new OperationResultDto<>(true));
String filePath = FileUtils.getTempDirectory().getAbsolutePath() + File.separator + "EnterpriseAccount" + File.separator
+ CommonUtils.getUUID() + "_" + commonsMultipartFile.getOriginalFilename();
when(fileService.saveFile(commonsMultipartFile.getInputStream(), filePath)).thenReturn(new OperationResultDto<>(true));
OperationResultDto<?> result = enterpriseAccountManagerController.uploadEnterpriseAccount(mockEnterpriseAccountUploadDto, commonsMultipartFile);
System.out.println(result);
}*/
@SuppressWarnings("rawtypes")
@Test
public void clearRepeatEnterpriseAccountListTest() {
EnterpriseAccountSetDto enterpriseAccountSetDto = new EnterpriseAccountSetDto();
when(enterpriseAccountService.clearRepeatEnterpriseAccountList(enterpriseAccountSetDto)).thenReturn(new OperationResultDto(true));
assertThat(enterpriseAccountManagerController.clearRepeatEnterpriseAccountList(enterpriseAccountSetDto)).isNotNull();
}
@Test
public void getAccountMappingOrgTest() {
when(enterpriseAccountService.getAccountMappingOrg("org")).thenReturn(new ArrayList<>());
assertThat(enterpriseAccountManagerController.getAccountMappingOrg("org")).isNotNull();
}
}
package pwc.taxtech.atms.controller;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.when;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import pwc.taxtech.atms.dto.MenuDisplayDto;
import pwc.taxtech.atms.dto.MenuDto;
import pwc.taxtech.atms.service.MenuService;
@RunWith(MockitoJUnitRunner.class)
public class MenuControllerTest {
@Mock
private MenuService menuService;
@InjectMocks
private MenuController menuController = new MenuController();
@Test
public void getMenusForDisplayNotNull() {
List<MenuDisplayDto> menuDisplayDtos = new ArrayList<>();
Integer moduleId = 1;
when(menuService.getMenusForDisplay(moduleId)).thenReturn(menuDisplayDtos);
assertThat(menuController.getMenusForDisplay(moduleId)).isNotNull();
}
@Test
public void getMenusNotNull() {
List<MenuDto> menuDtos = new ArrayList<>();
Integer moduleId = 1;
when(menuService.getMenus(moduleId)).thenReturn(menuDtos);
assertThat(menuController.getMenus(moduleId)).isNotNull();
}
}
package pwc.taxtech.atms.controller;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.when;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import pwc.taxtech.atms.dto.OperationLogDto;
import pwc.taxtech.atms.dto.PagingResultDto;
import pwc.taxtech.atms.dto.QueryOperateParamDto;
import pwc.taxtech.atms.service.OperationLogService;
@RunWith(MockitoJUnitRunner.class)
public class OperationLogTest {
@Mock
private OperationLogService operationLogService;
@InjectMocks
private OperationLogController operationLogController = new OperationLogController();
@Test
public void getOperationLogListNotNullResult() {
QueryOperateParamDto queryOperateParamDto = new QueryOperateParamDto();
PagingResultDto<OperationLogDto> pagingResultDto = new PagingResultDto<>();
when(operationLogService.getOperationLogList(queryOperateParamDto)).thenReturn(pagingResultDto);
assertThat(operationLogController.getOperationLogList(queryOperateParamDto)).isNotNull();
}
}
package pwc.taxtech.atms.controller;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import pwc.taxtech.atms.dpo.OrganizationDto;
import pwc.taxtech.atms.dto.navtree.NavTreeDto;
import pwc.taxtech.atms.dto.organization.DimensionRoleDto;
import pwc.taxtech.atms.service.OrganizationService;
import pwc.taxtech.atms.service.UserRoleService;
import pwc.taxtech.atms.service.UserService;
import java.util.ArrayList;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
public class OrganizationControllerTest {
@Mock
private OrganizationService organizationService;
@Mock
private UserRoleService userRoleService;
@Mock
private UserService userService;
@InjectMocks
private OrganizationController organizationController = new OrganizationController();
@Test
public void getOrganizationFilterListTest() {
List<OrganizationDto> organizationDtoList = new ArrayList<>();
when(organizationService.getOrganizationFilterList()).thenReturn(organizationDtoList);
assertThat(organizationController.getOrganizationFilterList()).isNotNull();
}
@Test
public void getOrgListToJsonTest() {
List<NavTreeDto> navTreeDtos = new ArrayList<>();
Integer useType = 0;
when(organizationService.getOrgListToJson(useType)).thenReturn(navTreeDtos);
assertThat(organizationController.getOrgListToJson(useType)).isNotNull();
}
@Test
public void getOrgListTest() {
List<OrganizationDto> organizationDtos = new ArrayList<>();
Integer useType = 0;
when(organizationService.getOrgList(useType)).thenReturn(organizationDtos);
assertThat(organizationController.getOrgList(useType)).isNotNull();
}
@Test
public void getOrgBuAreaIndustryUserTest() {
List<DimensionRoleDto> dimensionRoleDtos = new ArrayList<>();
when(userRoleService.getOrgBuAreaIndustryUser("userId")).thenReturn(dimensionRoleDtos);
assertThat(organizationController.getOrgBuAreaIndustryUser("userId")).isNotNull();
}
@Test
public void deleteUserDimensionValueTest() {
DimensionRoleDto dto = new DimensionRoleDto();
assertThat(organizationController.deleteUserDimensionValue(dto, "userId")).isNotNull();
}
}
package pwc.taxtech.atms.controller;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.when;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import pwc.taxtech.atms.common.CommonUtils;
import pwc.taxtech.atms.dto.OperationResultDto;
import pwc.taxtech.atms.dto.OrganizationStructureDto;
import pwc.taxtech.atms.dto.OrganizationStructureInputDto;
import pwc.taxtech.atms.dto.customer.CustomerDto;
import pwc.taxtech.atms.dto.customer.CustomerValidateInfoDto;
import pwc.taxtech.atms.service.CustomerService;
import pwc.taxtech.atms.service.OrganizationStructureService;
@RunWith(MockitoJUnitRunner.class)
public class OrganizationStructureControllerTest {
@Mock
private OrganizationStructureService organizationStructureService;
@InjectMocks
private OrganizationStructureController organizationStructureController = new OrganizationStructureController();
@Test
public void addRangeNotNullResult() {
List<OrganizationStructureDto> organizationStructureDtoList = new ArrayList<>();
when(organizationStructureService.getOrganizationStructures()).thenReturn(organizationStructureDtoList);
assertThat(organizationStructureController.getOrganizationStructures()).isNotNull();
}
@Test
public void addOrganizationStructuresNotNullResult() {
List<OrganizationStructureInputDto> organizationStructureDtoList = new ArrayList<>();
OrganizationStructureInputDto organizationStructureDto = new OrganizationStructureInputDto();
organizationStructureDto.setId(CommonUtils.getUUID());
organizationStructureDto.setIsActive(true);
organizationStructureDto.setName("organization-tructure-name");
organizationStructureDtoList.add(organizationStructureDto);
when(organizationStructureService.updateOrganizationStructures(organizationStructureDtoList)).thenReturn(true);
assertThat(organizationStructureController.updateOrganizationStructure(organizationStructureDtoList)).isNotNull();
}
}
package pwc.taxtech.atms.controller;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.when;
import java.util.ArrayList;
import java.util.Arrays;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import pwc.taxtech.atms.dto.navtree.DevTreeDto;
import pwc.taxtech.atms.dto.navtree.RolePermissionDisplayDto;
import pwc.taxtech.atms.service.PermissionService;
@RunWith(MockitoJUnitRunner.class)
public class PermissionControllerTest {
@Mock private PermissionService permissionService;
@InjectMocks
private PermissionController permissionController = new PermissionController();
@Test
public void getIvhTreePermissionsByRoleIdTest() {
when(permissionService.getIvhTreePermissionsByRoleId("id", "serviceType")).thenReturn(new RolePermissionDisplayDto());
assertThat(permissionController.getIvhTreePermissionsByRoleId("id", "serviceType")).isNotNull();
}
@Test
public void getIvhTreePermissionsByRoleIdListTest() {
when(permissionService.getIvhTreePermissionsByRoleIdList(Arrays.asList("Id1","Id2"), "serviceType")).thenReturn(new ArrayList<DevTreeDto>());
assertThat(permissionController.getIvhTreePermissionsByRoleIdList(Arrays.asList("Id1","Id2"), "serviceType")).isNotNull();
}
@Test
public void getAllPermissionsTest() {
when(permissionService.getAllPermissions("serviceType")).thenReturn(new ArrayList<DevTreeDto>());
assertThat(permissionController.getAllPermissions("serviceType")).isNotNull();
}
}
package pwc.taxtech.atms.controller;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.when;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import pwc.taxtech.atms.dto.VMRegionDevTreeData;
import pwc.taxtech.atms.dto.navtree.DevTreeDto;
import pwc.taxtech.atms.dto.navtree.IvhTreeDto;
import pwc.taxtech.atms.entity.Region;
import pwc.taxtech.atms.service.RegionService;
@RunWith(MockitoJUnitRunner.class)
public class RegionControllerTest {
@Mock
private RegionService regionService;
@InjectMocks
private RegionController regionController = new RegionController();
@Test
public void getSettingRegionTreeNotNullResult() {
List<DevTreeDto<VMRegionDevTreeData>> devTreeDto = new ArrayList<>();
when(regionService.getRegionAreaTree()).thenReturn(devTreeDto);
assertThat(regionController.getSettingRegionTree()).isNotNull();
}
@Test
public void getProvinceAndCityTreeListNotNullResult() {
List<DevTreeDto<IvhTreeDto<Region>>> devTreeDto = new ArrayList<>();
when(regionService.getProvinceAndCityTreeList()).thenReturn(devTreeDto);
assertThat(regionController.getProvinceAndCityTreeList()).isNotNull();
}
@SuppressWarnings("rawtypes")
@Test
public void getAreRegionTreeByNodeIdTest() {
List<DevTreeDto> devTreeDto = new ArrayList<>();
when(regionService.getAreaRegionTreeByNodeId("1")).thenReturn(devTreeDto);
assertThat(regionController.getAreRegionTreeByNodeId("1")).isNotNull();
}
}
package pwc.taxtech.atms.controller;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import pwc.taxtech.atms.common.CommonUtils;
import pwc.taxtech.atms.dpo.UserRoleInfo;
import pwc.taxtech.atms.dto.OperationResultDto;
import pwc.taxtech.atms.dto.RoleCategoryDto;
import pwc.taxtech.atms.dto.navtree.NavTreeDto;
import pwc.taxtech.atms.dto.role.RoleDisplayDto;
import pwc.taxtech.atms.dto.role.RoleDto;
import pwc.taxtech.atms.dto.role.RoleDtoTree;
import pwc.taxtech.atms.dto.user.DimensionRole;
import pwc.taxtech.atms.dto.user.DimensionUser;
import pwc.taxtech.atms.dto.user.UserRoleDimensionValueDto;
import pwc.taxtech.atms.dto.user.UserRoleDto;
import pwc.taxtech.atms.dto.user.UserRoleUpdateDto;
import pwc.taxtech.atms.entity.RoleCategory;
import pwc.taxtech.atms.service.RoleService;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
public class RoleControllerTest {
@Mock
private RoleService roleService;
@InjectMocks
private RoleController roleController = new RoleController();
@Test
public void getRoleTreeListNotNull() {
List<NavTreeDto> navTreeDtos = new ArrayList<>();
when(roleService.getRoleTreeList()).thenReturn(navTreeDtos);
assertThat(roleController.getRoleTreeList()).isNotNull();
}
@Test
public void commonCopyPropertiesTest() {
RoleCategory roleCategory = new RoleCategory();
roleCategory.setIsActive(false);
RoleCategoryDto roleCategoryDto = new RoleCategoryDto();
CommonUtils.copyProperties(roleCategory, roleCategoryDto);
Short short1 = 0;
Assert.assertEquals(roleCategoryDto.getIsActive(), short1);
roleCategory.setIsActive(true);
CommonUtils.copyProperties(roleCategory, roleCategoryDto);
Short short2 = 1;
Assert.assertEquals(roleCategoryDto.getIsActive(), short2);
}
@Test
public void testFindFirst() {
NavTreeDto navTreeDto = new NavTreeDto();
navTreeDto.setLabel("test");
List<NavTreeDto> navTreeDtos = new ArrayList<>();
navTreeDtos.add(navTreeDto);
Boolean findNav = navTreeDtos.stream().filter(oneNav -> oneNav.getLabel().equals("good")).findFirst()
.isPresent();
Boolean findNav2 = navTreeDtos.stream().anyMatch(oneNav -> oneNav.getLabel().equals("test"));
Assert.assertFalse(findNav);
Assert.assertTrue(findNav2);
List<NavTreeDto> list = navTreeDtos.stream().filter(oneNav -> oneNav.getLabel().equals("good"))
.collect(Collectors.toList());
Assert.assertTrue(list.isEmpty());
}
@Test
public void getAllOwnUserRoleListNotNull() {
List<UserRoleInfo> userRoleInfos = new ArrayList<>();
when(roleService.getAllOwnUserRoleList()).thenReturn(userRoleInfos);
assertThat(roleController.getAllOwnUserRoleList()).isNotNull();
}
@Test
public void getAllUserRoleListNotNull() {
List<UserRoleInfo> userRoleInfos = new ArrayList<>();
when(roleService.getAllUserRoleList()).thenReturn(userRoleInfos);
assertThat(roleController.getAllUserRoleList()).isNotNull();
}
@Test
public void getAllRoleListByUserIdTest() {
Map<String, String> aMap = new HashMap<>();
aMap.put("123", "456");
Map<String, String> bMap = new HashMap<>();
bMap.put("123", "456");
List<Map<String, String>> list = new ArrayList<>();
list.add(aMap);
list.add(bMap);
list = list.stream().distinct().collect(Collectors.toList());
Assert.assertEquals(1, list.size());
List<UserRoleDto> userRoleDtos = new ArrayList<>();
when(roleService.getAllRoleListByUserId("userId", "serviceTypeId")).thenReturn(userRoleDtos);
assertThat(roleController.getAllRoleListByUserId("userId", "serviceTypeId")).isNotNull();
}
@Test
public void getRoleListTest() {
List<RoleDtoTree> roleDtoTrees = new ArrayList<>();
when(roleService.getRoleList()).thenReturn(roleDtoTrees);
assertThat(roleController.getRoleList()).isNotNull();
}
@Test
public void getUsersByRoleIdTest() {
List<UserRoleDto> userList = new ArrayList<>();
when(roleService.getUsersByRoleId("roleId")).thenReturn(userList);
assertThat(roleController.getUsersByRoleId("roleId")).isNotNull();
}
@Test
public void getExtraUsersByRoleIdTest() {
List<UserRoleDto> userList = new ArrayList<>();
when(roleService.getExtraUsersByRoleId("roleId")).thenReturn(userList);
assertThat(roleController.getExtraUsersByRoleId("roleId")).isNotNull();
}
@Test
public void removeUserRoleTest() {
assertThat(roleController.removeUserRole("userId", Arrays.asList("roleId"), "2")).isTrue();
}
@Test
public void getRoleListByRoleTypeTest() {
List<RoleDto> roleList = new ArrayList<>();
when(roleService.getRoleListByRoleType("2")).thenReturn(roleList);
assertThat(roleController.getRoleListByRoleType("2")).isNotNull();
}
@Test
public void addRoleCategoryTest() {
assertThat(roleController.addRoleCategory("name", "id")).isTrue();
}
@Test
public void updateRoleCategoryTest() {
assertThat(roleController.updateRoleCategory("name", "id")).isTrue();
}
@Test
public void deleteRoleCategoryTest() {
when(roleService.deleteRoleCategory("id")).thenReturn(new OperationResultDto());
assertThat(roleController.deleteRoleCategory("id")).isNotNull();
}
@SuppressWarnings({ "rawtypes", "unchecked" })
@Test
public void addRoleTestWhenRoleNameDuplicate() {
RoleDisplayDto roleDto = new RoleDisplayDto();
Map result = new HashMap();
result.put("data", -1);
when(roleService.addRole(roleDto)).thenReturn("-1");
assertThat(roleController.addRole(roleDto)).isEqualTo(result);
}
@SuppressWarnings({ "rawtypes", "unchecked" })
@Test
public void addRoleTest() {
RoleDisplayDto roleDto = new RoleDisplayDto();
Map result = new HashMap();
result.put("data", new ArrayList<RoleDtoTree>());
when(roleService.addRole(roleDto)).thenReturn("roleId");
assertThat(roleController.addRole(roleDto)).isEqualTo(result);
}
@Test
public void validateRoleNameUniqueTest() {
when(roleService.validateRoleNameUnique("roleName", "oldRoleName")).thenReturn(true);
assertThat(roleController.validateRoleNameUnique("roleName", "oldRoleName")).isTrue();
}
@Test
public void checkExistReferenceTest() {
when(roleService.checkUserRole("roleId")).thenReturn(true);
assertThat(roleController.checkExistReference("roleId")).isTrue();
}
@Test
public void deleteRoleTest() {
RoleDto roleDto = new RoleDto();
when(roleService.getRoleList()).thenReturn(new ArrayList<RoleDtoTree>());
assertThat(roleController.deleteRole(roleDto)).isNotNull();
}
@Test
public void getUserRoleListTest() {
UserRoleDimensionValueDto userRoleDimensionValueDto = new UserRoleDimensionValueDto();
when(roleService.getUserRoleList(userRoleDimensionValueDto)).thenReturn(new ArrayList<>());
assertThat(roleController.getUserRoleList(userRoleDimensionValueDto.getOrganizationId(),
userRoleDimensionValueDto.getDimensionId(), userRoleDimensionValueDto.getDimensionValueId()))
.isNotNull();
}
@Test
public void getAllRolePermissionTest() {
when(roleService.getAllRolePermission("2")).thenReturn(new ArrayList<>());
assertThat(roleController.getAllRolePermission("2")).isNotNull();
}
@Test
public void updateUserRoleTest() {
assertThat(roleController.updateUserRole(new UserRoleUpdateDto())).isTrue();
}
@Test
public void getDimensionRoleUserListTest() {
List<DimensionRole> dimensionRoles = new ArrayList<>();
when(roleService.getDimensionRoleUserList("1", "2")).thenReturn(dimensionRoles);
assertThat(roleController.getDimensionRoleUserList("1", "2")).isNotNull();
}
@Test
public void getDimensionUserRoleListTest() {
List<DimensionUser> dimensionUsers = new ArrayList<>();
when(roleService.getDimensionUserRoleList("1", "2")).thenReturn(dimensionUsers);
assertThat(roleController.getDimensionUserRoleList("1", "2")).isNotNull();
}
@Test
public void getActiveUserRoleListByAreaIdTest() {
List<UserRoleInfo> userRoleInfos = new ArrayList<>();
when(roleService.getActiveUserRoleListByAreaId("1")).thenReturn(userRoleInfos);
assertThat(roleController.getActiveUserRoleListByAreaId("1")).isNotNull();
}
}
package pwc.taxtech.atms.controller;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import pwc.taxtech.atms.dpo.StatisticAttributeDisplayDto;
import pwc.taxtech.atms.dto.OperationResultDto;
import pwc.taxtech.atms.dto.StatisticAttributeDto;
import pwc.taxtech.atms.service.StatisticAttributeService;
import java.util.ArrayList;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
public class StatisticAttributeControllerTest {
@Mock
private StatisticAttributeService statisticAttributeService;
@InjectMocks
private StatisticAttributeController statisticAttributeController = new StatisticAttributeController();
@Test
public void getByParentDimensionIdTest() {
List<StatisticAttributeDisplayDto> statisticAttributeDisplayDtos = new ArrayList<>();
when(statisticAttributeService.getStatisticAttributeListByDimensionId("1", null))
.thenReturn(statisticAttributeDisplayDtos);
assertThat(statisticAttributeController.getDimensionStatics("1")).isNotNull();
}
@Test
public void getStatisticAttributeListTest() {
List<StatisticAttributeDto> statisticAttributeDisplayDtos = new ArrayList<>();
when(statisticAttributeService.getStatisticAttributeList("1")).thenReturn(statisticAttributeDisplayDtos);
assertThat(statisticAttributeController.getStatisticAttributeList("1")).isNotNull();
}
@SuppressWarnings("rawtypes")
@Test
public void updateDimensionTest() {
OperationResultDto operationResultDto = new OperationResultDto();
List<StatisticAttributeDisplayDto> modelList = new ArrayList<>();
when(statisticAttributeService.updateStatisticAttribute(modelList)).thenReturn(operationResultDto);
assertThat(statisticAttributeController.updateDimension(modelList)).isNotNull();
}
@Test
public void getOrgSubChildrenStatAttributeListTest() {
List<StatisticAttributeDisplayDto> statisticAttributeDisplayDtos = new ArrayList<>();
when(statisticAttributeService.getOrgSubChildrenStatAttributeList("1"))
.thenReturn(statisticAttributeDisplayDtos);
assertThat(statisticAttributeController.getOrgSubChildrenStatAttributeList("1")).isNotNull();
}
}
package pwc.taxtech.atms.controller;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import pwc.taxtech.atms.common.CommonUtils;
import pwc.taxtech.atms.dpo.UserDto;
import pwc.taxtech.atms.dpo.UserOrgRoleDto;
import pwc.taxtech.atms.dto.LoginInputDto;
import pwc.taxtech.atms.dto.LoginOutputDto;
import pwc.taxtech.atms.dto.OperationResultDto;
import pwc.taxtech.atms.dto.organization.OrgRoleDtoList;
import pwc.taxtech.atms.dto.permission.PermissionDto;
import pwc.taxtech.atms.dto.permission.UserPermissionDto;
import pwc.taxtech.atms.dto.permission.UserPermissionKeyDto;
import pwc.taxtech.atms.dto.user.UpdateParam;
import pwc.taxtech.atms.dto.user.UserAndUserRoleSaveDto;
import pwc.taxtech.atms.dto.user.UserOrganizationDto;
import pwc.taxtech.atms.dto.user.UserRoleDimensionValueDto;
import pwc.taxtech.atms.dto.user.UserRoleDisplayInfo;
import pwc.taxtech.atms.dto.user.UserRoleSaveDto;
import pwc.taxtech.atms.entity.Permission;
import pwc.taxtech.atms.entity.User;
import pwc.taxtech.atms.service.RoleService;
import pwc.taxtech.atms.service.UserAccountService;
import pwc.taxtech.atms.service.UserRoleService;
import pwc.taxtech.atms.service.UserService;
import java.util.ArrayList;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.Mockito.when;
@RunWith(MockitoJUnitRunner.class)
public class UserControllerTest {
@Mock
private UserService userService;
@Mock
private UserRoleService userRoleService;
@Mock
private RoleService roleService;
@Mock
private UserAccountService userAccountService;
@InjectMocks
private UserController userController = new UserController();
@Test
public void nullResult() {
LoginInputDto input = new LoginInputDto();
assertThat(userController.login(input)).isNull();
}
@Test
public void notNullResult() {
LoginInputDto input = new LoginInputDto();
input.setEmail("admin_test");
input.setPassword("admin_password");
when(userService.login(input)).thenReturn(new OperationResultDto<LoginOutputDto>());
assertThat(userController.login(input)).isNotNull();
}
@Test
public void getUserPermissionTest() {
UserPermissionDto userPermissionDto = new UserPermissionDto();
when(userService.getUserPermission("admin")).thenReturn(userPermissionDto);
assertThat(userController.getUserPermission("admin")).isNotNull();
}
@Test
public void getUserPermissionKeyTest() {
UserPermissionKeyDto userPermissionKeyDto = new UserPermissionKeyDto();
when(userService.getUserPermissionKey("admin")).thenReturn(userPermissionKeyDto);
assertThat(userController.getUserPermissionKey("admin")).isNotNull();
}
@Test
public void getAllUserRoleListTest() {
List<UserRoleDisplayInfo> userRoleDisplayInfos = new ArrayList<>();
when(userRoleService.getAllUserRoleList("2")).thenReturn(userRoleDisplayInfos);
assertThat(userController.getAllUserRoleList("2")).isNotNull();
}
@Test
public void getUserTest() {
UserDto userDto = new UserDto();
when(userService.getUserById("1")).thenReturn(userDto);
assertThat(userController.getUserById("1")).isNotNull();
}
@Test
public void permissionCopyPropertiesTest() {
Permission permission = new Permission();
Short aShort = 1;
permission.setpLevel(aShort);
PermissionDto permissionDto = CommonUtils.copyProperties(permission, new PermissionDto());
Assert.assertEquals(aShort, permissionDto.getPLevel());
}
@Test
public void getSingleUserByUserIdTest() {
UserAndUserRoleSaveDto userAndUserRoleSaveDto = new UserAndUserRoleSaveDto();
when(userRoleService.getSingleUserByUserId("1")).thenReturn(userAndUserRoleSaveDto);
assertThat(userController.getSingleUserByUserId("1")).isNotNull();
}
@Test
public void getUserRoleListByUserIdTest() {
UserRoleDisplayInfo userRoleDisplayInfo = new UserRoleDisplayInfo();
when(userRoleService.getUserRoleListByUserId("1")).thenReturn(userRoleDisplayInfo);
assertThat(userController.getUserRoleListByUserId("1")).isNotNull();
}
@Test
public void getUserRoleByUserIdTest() {
OrgRoleDtoList orgRoleDtoList = new OrgRoleDtoList();
when(userRoleService.getUserRoleByUserId("1")).thenReturn(orgRoleDtoList);
assertThat(userController.getUserRoleByUserId("1")).isNotNull();
}
@Test
public void getUserRoleByOrgIdUserIdTest() {
UserOrganizationDto userOrganizationDto = new UserOrganizationDto();
when(userRoleService.getUserRoleByOrgId("1", "2")).thenReturn(userOrganizationDto);
assertThat(userController.getUserRoleByOrgIdUserId("1", "2")).isNotNull();
}
@Test
public void addUsersToRoleTest() {
assertThat(userController.addUsersToRole(new UserRoleSaveDto())).isTrue();
}
@SuppressWarnings("rawtypes")
@Test
public void enableOrDisableUserTest() {
OperationResultDto operationResultDto = new OperationResultDto();
UpdateParam updateParam = new UpdateParam();
when(userRoleService.enableOrDisableUser(updateParam)).thenReturn(operationResultDto);
assertThat(userController.enableOrDisableUser(updateParam)).isNotNull();
}
@SuppressWarnings("rawtypes")
@Test
public void deleteUserRoleOrgTest() {
OperationResultDto operationResultDto = new OperationResultDto();
List<UserRoleDimensionValueDto> userRoleList = new ArrayList<>();
when(userRoleService.deleteUserRoleOrg(userRoleList)).thenReturn(operationResultDto);
assertThat(userController.deleteUserRoleOrg(userRoleList)).isNotNull();
}
@Test
public void getUserRoleByDimensionValueIdTest() {
List<UserRoleDisplayInfo> userRoleDisplayInfos = new ArrayList<>();
when(userRoleService.getUserRoleByDimensionValueId("1", "2")).thenReturn(userRoleDisplayInfos);
assertThat(userController.getUserRoleByDimensionValueId("1", "2")).isNotNull();
}
@Test
public void getSpecialUserRoleByDimensionValueIdTest() {
List<UserRoleDisplayInfo> userRoleDisplayInfos = new ArrayList<>();
when(userRoleService.getSpecialUserRoleByDimensionValueId("1", "2")).thenReturn(userRoleDisplayInfos);
assertThat(userController.getSpecialUserRoleByDimensionValueId("1", "2")).isNotNull();
}
@Test
public void getDimensionUserRoleListTest() {
List<UserOrgRoleDto> userRoleDisplayInfos = new ArrayList<>();
when(userRoleService.getDimensionUserRoleList("1", "2")).thenReturn(userRoleDisplayInfos);
assertThat(userController.getDimensionUserRoleList("1", "2")).isNotNull();
}
@SuppressWarnings("rawtypes")
@Test
public void updateUserRoleDimensionTest() {
List<UserRoleDimensionValueDto> userRoleList = new ArrayList<>();
OperationResultDto operationResultDto = new OperationResultDto();
when(userRoleService.updateUserRoleDimension(userRoleList)).thenReturn(operationResultDto);
assertThat(userController.updateUserRoleDimension(userRoleList)).isNotNull();
}
@Test
public void updateUserTest() {
UserAndUserRoleSaveDto userDto = new UserAndUserRoleSaveDto();
OperationResultDto<User> operationResultDto = new OperationResultDto<>();
when(userService.updateUser(userDto)).thenReturn(operationResultDto);
assertThat(userController.updateUser(userDto)).isNotNull();
}
@SuppressWarnings("rawtypes")
@Test
public void updateUserRoleOrganizationTest() {
List<UserRoleDimensionValueDto> userRoleList = new ArrayList<>();
OperationResultDto operationResultDto = new OperationResultDto<>();
when(userRoleService.updateUserRoleOrganization(userRoleList)).thenReturn(operationResultDto);
assertThat(userController.updateUserRoleOrganization(userRoleList)).isNotNull();
}
@Test
public void addUserTest() {
UserAndUserRoleSaveDto userAndUserRoleSaveDto = new UserAndUserRoleSaveDto();
OperationResultDto<User> operationResultDto = new OperationResultDto<>();
when(userAccountService.addNewUser(userAndUserRoleSaveDto)).thenReturn(operationResultDto);
assertThat(userController.addUser(userAndUserRoleSaveDto)).isNotNull();
}
@SuppressWarnings("rawtypes")
@Test
public void deleteUserOrgTest() {
List<UserRoleDimensionValueDto> userRoleList = new ArrayList<>();
OperationResultDto operationResultDto = new OperationResultDto<>();
when(userService.deleteUserOrg(userRoleList)).thenReturn(operationResultDto);
assertThat(userController.deleteUserOrg(userRoleList)).isNotNull();
}
@SuppressWarnings("rawtypes")
@Test
public void updateUserRoleForOrgTest() {
List<UserRoleDimensionValueDto> userRoleList = new ArrayList<>();
OperationResultDto operationResultDto = new OperationResultDto<>();
when(userRoleService.updateUserRoleForOrg(userRoleList)).thenReturn(operationResultDto);
assertThat(userController.updateUserRoleForOrg(userRoleList)).isNotNull();
}
@Test
public void deleteUserRoleDimensionTest() {
List<UserRoleDimensionValueDto> userRoleList = new ArrayList<>();
@SuppressWarnings("rawtypes")
OperationResultDto operationResultDto = new OperationResultDto();
when(userRoleService.deleteUserRoleDimension(userRoleList)).thenReturn(operationResultDto);
assertThat(userController.deleteUserRoleDimension(userRoleList)).isNotNull();
}
@Test
public void updateUserRoleForDimensionTest() {
List<UserRoleDimensionValueDto> userRoleList = new ArrayList<>();
OperationResultDto<?> operationResultDto = new OperationResultDto<>();
when(userRoleService.updateUserRoleDimension(userRoleList)).thenReturn(operationResultDto);
assertThat(userController.updateUserRoleDimension(userRoleList)).isNotNull();
}
}
package pwc.taxtech.atms.service;
import java.util.List;
import pwc.taxtech.atms.dto.OperationResultDto;
import pwc.taxtech.atms.dto.dimension.DimensionDto;
public interface DemoService {
OperationResultDto addDimensionWithoutTranction(List<DimensionDto> modelList);
OperationResultDto addDimensionWithTranction(List<DimensionDto> modelList);
OperationResultDto addDimensionWithTranctionType2(List<DimensionDto> modelList);
}
package pwc.taxtech.atms.service.impl;
import java.util.Arrays;
import java.util.List;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import pwc.taxtech.atms.CommonIT;
import pwc.taxtech.atms.common.CommonConstants;
import pwc.taxtech.atms.common.message.AreaMessage;
import pwc.taxtech.atms.common.message.AreaRegionMessage;
import pwc.taxtech.atms.dto.OperationResultDto;
import pwc.taxtech.atms.dto.arearegion.AreaRegionDto;
import pwc.taxtech.atms.dto.arearegion.AreaRegionInfo;
import pwc.taxtech.atms.dto.arearegion.CityInfo;
import pwc.taxtech.atms.entity.Area;
import pwc.taxtech.atms.entity.AreaExample;
import pwc.taxtech.atms.entity.AreaRegion;
import pwc.taxtech.atms.entity.AreaRegionExample;
import pwc.taxtech.atms.entity.OperationLogBasicData;
import pwc.taxtech.atms.entity.OperationLogBasicDataExample;
import pwc.taxtech.atms.entity.Region;
import pwc.taxtech.atms.security.JwtAuthenticationProvider;
import pwc.taxtech.atms.security.JwtAuthenticationToken;
import pwc.taxtech.atms.service.AreaRegionService;
public class AreaRegionServiceIT extends CommonIT {
@Autowired
private AreaRegionService areaRegionService;
@Autowired
private JwtAuthenticationProvider jwtAuthenticationProvider;
@Before
public void setUp() {
cleanUpAllTables();
}
@Test
public void findAreaRegionsByArea() {
// area data
Area area = new Area();
area.setId("area");
area.setName("areaName");
area.setIsActive(true);
areaMapper.insert(area);
// region data
for (int i = 0; i < 4; i++) {
Region region = new Region();
region.setId("region" + (i + 1));
region.setName("RegionName" + (i + 1));
region.setShortName("ShortName" + (i + 1));
region.setMergerName("RegionMergerName" + (i + 1));
region.setLevelType(1);
region.setPinYin("RegionPinYin" + (i + 1));
region.setLongitude(1.1f);
region.setLatitude(2.2f);
region.setIsActive(true);
regionMapper.insert(region);
}
// areaRegion data
for (int i = 0; i < 4; i++) {
AreaRegion areaRegion = new AreaRegion();
areaRegion.setId("areaRegion" + (i + 1));
areaRegion.setAreaId("area");
areaRegion.setRegionId("region" + (i + 1));
areaRegionMapper.insert(areaRegion);
}
List<AreaRegion> areaRegionList = areaRegionService.findAreaRegionsByArea("area");
Assert.assertEquals(4, areaRegionList.size());
AreaRegion areaRegion = areaRegionList.get(0);
Assert.assertEquals("area", areaRegion.getArea().getId());
Assert.assertEquals("areaName", areaRegion.getArea().getName());
Assert.assertEquals("region1", areaRegion.getRegion().getId());
Assert.assertEquals("RegionMergerName1", areaRegion.getRegion().getMergerName());
}
@Test
public void addTest() {
// get current user name
Authentication request = new JwtAuthenticationToken("xxxx");
Authentication authenticaiton = jwtAuthenticationProvider.authenticate(request);
SecurityContextHolder.getContext().setAuthentication(authenticaiton);
AreaRegionInfo areaRegionInfo = new AreaRegionInfo();
areaRegionInfo.setName("TestingArea");
areaRegionInfo.setParentId(null);
CityInfo beijingCity = new CityInfo();
beijingCity.setId("110100");
beijingCity.setParentId("110000");
beijingCity.setName("北京市");
CityInfo tianjingCity = new CityInfo();
tianjingCity.setId("120100");
tianjingCity.setParentId("120000");
tianjingCity.setName("天津市");
CityInfo shijiazhuangCity = new CityInfo();
shijiazhuangCity.setId("130100");
shijiazhuangCity.setParentId("130000");
shijiazhuangCity.setName("石家庄市");
CityInfo tangshanCity = new CityInfo();
tangshanCity.setId("130200");
tangshanCity.setParentId("130000");
tangshanCity.setName("唐山市");
areaRegionInfo.setCityList(Arrays.asList(beijingCity, tianjingCity, shijiazhuangCity, tangshanCity));
// check result
OperationResultDto operationResultDto = areaRegionService.add(areaRegionInfo);
Assert.assertEquals(true, operationResultDto.getResult());
// check area
AreaExample areaExample = new AreaExample();
areaExample.createCriteria().andNameEqualTo("TestingArea");
List<Area> areas = areaMapper.selectByExample(areaExample);
Assert.assertEquals("TestingArea", areas.get(0).getName());
Assert.assertEquals(CommonConstants.ACTIVE_STATUS, areas.get(0).getIsActive());
Assert.assertNull(areas.get(0).getParentId());
String expectedAreaId = areas.get(0).getId();
// check areaRegion
AreaRegionExample areaRegionExample = new AreaRegionExample();
areaRegionExample.createCriteria().andAreaIdEqualTo(expectedAreaId);
areaRegionExample.setOrderByClause("RegionId ASC");
List<AreaRegion> areaRegionList = areaRegionMapper.selectByExample(areaRegionExample);
Assert.assertEquals(7, areaRegionList.size());
Assert.assertEquals("110000", areaRegionList.get(0).getRegionId());
Assert.assertEquals("120100", areaRegionList.get(3).getRegionId());
Assert.assertEquals("130000", areaRegionList.get(4).getRegionId());
}
@Test
public void addTestWithDuplicateName() {
// get current user name
Authentication request = new JwtAuthenticationToken("xxxx");
Authentication authenticaiton = jwtAuthenticationProvider.authenticate(request);
SecurityContextHolder.getContext().setAuthentication(authenticaiton);
AreaRegionInfo areaRegionInfo = new AreaRegionInfo();
areaRegionInfo.setName("TestingArea");
areaRegionInfo.setParentId(null);
areaRegionService.add(areaRegionInfo);
// check result
OperationResultDto operationResultDto = areaRegionService.add(areaRegionInfo);
Assert.assertEquals(false, operationResultDto.getResult());
Assert.assertEquals(AreaRegionMessage.AreaRegionRepeat, operationResultDto.getResultMsg());
}
@Test
public void updateTestNameChangeOnly() {
// data preparation
execSqlFile("sql/area_data_update_test.sql");
execSqlFile("sql/areaRegion_data_update_test.sql");
// get current user name
Authentication request = new JwtAuthenticationToken("xxxx");
Authentication authenticaiton = jwtAuthenticationProvider.authenticate(request);
SecurityContextHolder.getContext().setAuthentication(authenticaiton);
AreaRegionInfo areaRegionInfo = new AreaRegionInfo();
areaRegionInfo.setId("bc08cf92-c75c-4fa3-ac66-fe10be346ceb");
areaRegionInfo.setName("TOP22222");
areaRegionInfo.setParentId("7c360a44-7a17-4ca0-9c2a-a88cde7670d5");
OperationResultDto operationResultDto = areaRegionService.update(areaRegionInfo);
// check result
Assert.assertEquals(true, operationResultDto.getResult());
// check area
Area area = areaMapper.selectByPrimaryKey("bc08cf92-c75c-4fa3-ac66-fe10be346ceb");
Assert.assertEquals("TOP22222", area.getName());
Assert.assertEquals("7c360a44-7a17-4ca0-9c2a-a88cde7670d5", area.getParentId());
// check operation log
OperationLogBasicDataExample example = new OperationLogBasicDataExample();
example.setOrderByClause("CreateTime ASC");
List<OperationLogBasicData> operationLogs = operationLogBasicDataMapper.selectByExample(example);
Assert.assertEquals(1, operationLogs.size());
Assert.assertEquals("Name", operationLogs.get(0).getOperationContent());
Assert.assertEquals("TOP22222", operationLogs.get(0).getOperationObject());
Assert.assertEquals("TOP22222", operationLogs.get(0).getUpdateState());
Assert.assertEquals("TOP11111", operationLogs.get(0).getOriginalState());
}
@Test
public void updateTestNameAndRegion() {
// data preparation
execSqlFile("sql/area_data_update_test.sql");
execSqlFile("sql/region_data.sql");
execSqlFile("sql/areaRegion_data_update_test.sql");
// get current user name
Authentication request = new JwtAuthenticationToken("xxxx");
Authentication authenticaiton = jwtAuthenticationProvider.authenticate(request);
SecurityContextHolder.getContext().setAuthentication(authenticaiton);
AreaRegionInfo areaRegionInfo = new AreaRegionInfo();
areaRegionInfo.setId("bc08cf92-c75c-4fa3-ac66-fe10be346ceb");
areaRegionInfo.setName("TOP22222");
areaRegionInfo.setParentId("7c360a44-7a17-4ca0-9c2a-a88cde7670d5");
CityInfo beijingCity = new CityInfo();
beijingCity.setId("110100");
beijingCity.setParentId("110000");
beijingCity.setName("北京市");
CityInfo tianjingCity = new CityInfo();
tianjingCity.setId("120100");
tianjingCity.setParentId("120000");
tianjingCity.setName("天津市");
CityInfo shijiazhuangCity = new CityInfo();
shijiazhuangCity.setId("130100");
shijiazhuangCity.setParentId("130000");
shijiazhuangCity.setName("石家庄市");
CityInfo tangshanCity = new CityInfo();
tangshanCity.setId("130200");
tangshanCity.setParentId("130000");
tangshanCity.setName("唐山市");
areaRegionInfo.setCityList(Arrays.asList(beijingCity, tianjingCity, shijiazhuangCity, tangshanCity));
OperationResultDto operationResultDto = areaRegionService.update(areaRegionInfo);
// check result
Assert.assertEquals(true, operationResultDto.getResult());
// check area
Area area = areaMapper.selectByPrimaryKey("bc08cf92-c75c-4fa3-ac66-fe10be346ceb");
Assert.assertEquals("TOP22222", area.getName());
Assert.assertEquals("7c360a44-7a17-4ca0-9c2a-a88cde7670d5", area.getParentId());
// check area region
AreaRegionExample areaRegionExample = new AreaRegionExample();
areaRegionExample.createCriteria().andAreaIdEqualTo("bc08cf92-c75c-4fa3-ac66-fe10be346ceb");
areaRegionExample.setOrderByClause("RegionId ASC");
List<AreaRegion> areaRegionList = areaRegionMapper.selectByExample(areaRegionExample);
Assert.assertEquals(7, areaRegionList.size());
Assert.assertEquals("110000", areaRegionList.get(0).getRegionId());
Assert.assertEquals("120100", areaRegionList.get(3).getRegionId());
Assert.assertEquals("130000", areaRegionList.get(4).getRegionId());
// check operation log
OperationLogBasicDataExample example = new OperationLogBasicDataExample();
example.setOrderByClause("CreateTime ASC");
List<OperationLogBasicData> operationLogs = operationLogBasicDataMapper.selectByExample(example);
Assert.assertEquals(2, operationLogs.size());
Assert.assertEquals("Name", operationLogs.get(0).getOperationContent());
Assert.assertEquals("TOP22222", operationLogs.get(0).getOperationObject());
Assert.assertEquals("TOP22222", operationLogs.get(0).getUpdateState());
Assert.assertEquals("TOP11111", operationLogs.get(0).getOriginalState());
Assert.assertEquals(AreaMessage.AreaRegion, operationLogs.get(1).getOperationContent());
Assert.assertEquals("TOP22222", operationLogs.get(1).getOperationObject());
Assert.assertEquals("北京市,天津市,韶关市,深圳市", operationLogs.get(1).getOriginalState());
Assert.assertEquals("北京市,天津市,石家庄市,唐山市", operationLogs.get(1).getUpdateState());
}
@Test
public void getCitiesTestWithRegion() {
execSqlFile("sql/fullAreaRegion_data_update_test.sql");
List<AreaRegionDto> areaRegionDtos = areaRegionService.getCities("110000");
Assert.assertEquals("北京市", areaRegionDtos.get(0).getRegionName());
areaRegionDtos = areaRegionService.getCities("130000");
Assert.assertEquals(11, areaRegionDtos.size());
areaRegionDtos = areaRegionService.getCities("640000");
Assert.assertEquals("吴忠市", areaRegionDtos.get(2).getRegionName());
}
@Test
public void getProvincesTestWithRegion() {
execSqlFile("sql/fullAreaRegion_data_update_test.sql");
List<AreaRegionDto> areaRegionDtos = areaRegionService.getProvinces();
// 应能找到省级地名 130000 河北省
Assert.assertEquals(true, areaRegionDtos.stream().anyMatch(s -> "130000".equals(s.getRegionId())));
// 应无法找到地级市名 110100 海淀区
Assert.assertEquals(false, areaRegionDtos.stream().anyMatch(s -> "110100".equals(s.getRegionId())));
}
}
package pwc.taxtech.atms.service.impl;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.Assert.assertEquals;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import pwc.taxtech.atms.CommonIT;
import pwc.taxtech.atms.common.CommonConstants;
import pwc.taxtech.atms.common.OperationModule;
import pwc.taxtech.atms.common.message.AreaMessage;
import pwc.taxtech.atms.common.message.RegionMessage;
import pwc.taxtech.atms.dto.AreaDto;
import pwc.taxtech.atms.dto.OperationResultDto;
import pwc.taxtech.atms.entity.Area;
import pwc.taxtech.atms.entity.OperationLogBasicData;
import pwc.taxtech.atms.entity.OperationLogBasicDataExample;
import pwc.taxtech.atms.security.JwtAuthenticationProvider;
import pwc.taxtech.atms.security.JwtAuthenticationToken;
import pwc.taxtech.atms.service.AreaService;
public class AreaServiceIT extends CommonIT {
@Autowired
private AreaService areaService;
@Autowired
private JwtAuthenticationProvider jwtAuthenticationProvider;
@Before
public void setUp() {
// delete all from Area
cleanUpAllTables();
}
@Test
public void findTopAreasTest() {
// Data preparation
for (int i = 0; i < 4; i++) {
Area area = new Area();
area.setId("area" + (i + 1));
area.setName("area" + (i + 1));
area.setIsActive(true);
if (i % 2 == 1) {
area.setParentId("area" + i);
}
areaMapper.insert(area);
}
List<Area> areaList = areaService.findTopAreas();
assertEquals(2, areaList.size());
}
@Test
public void findAreasByParentIdTest() {
// Data preparation
for (int i = 0; i < 4; i++) {
Area area = new Area();
area.setId("area" + (i + 1));
area.setName("area" + (i + 1));
area.setIsActive(true);
if (i >= 1) {
area.setParentId("area1");
}
areaMapper.insert(area);
}
List<Area> areaList = areaService.getSubAreaListIngoreActive("area1");
assertEquals(3, areaList.size());
}
@Test
public void setIsActiveTestDeactivateSingle() {
// data preparation
execSqlFile("sql/area_data_update_test.sql");
// get current user name
Authentication request = new JwtAuthenticationToken("xxxx");
Authentication authenticaiton = jwtAuthenticationProvider.authenticate(request);
SecurityContextHolder.getContext().setAuthentication(authenticaiton);
AreaDto areaDto = new AreaDto();
areaDto.setId("359667ee-bf7b-47bc-95b4-1c6e00f1de8d");
areaDto.setIsActive(CommonConstants.DEACTIVE_STATUS);
OperationResultDto<List<String>> operationResult = areaService.setIsActive(areaDto);
// check area
Area expectedArea = areaMapper.selectByPrimaryKey("359667ee-bf7b-47bc-95b4-1c6e00f1de8d");
Assert.assertEquals(CommonConstants.DEACTIVE_STATUS, expectedArea.getIsActive());
// check response
Assert.assertEquals(true, operationResult.getResult());
// check operation log
OperationLogBasicDataExample example = new OperationLogBasicDataExample();
List<OperationLogBasicData> operationLogs = operationLogBasicDataMapper.selectByExample(example);
Assert.assertEquals(1, operationLogs.size());
OperationLogBasicData log = operationLogs.get(0);
Assert.assertEquals(log.getOperationObject(), expectedArea.getName());
Assert.assertEquals(CommonConstants.ACTIVE_STATUS.toString(), log.getOriginalState());
Assert.assertEquals(CommonConstants.DEACTIVE_STATUS.toString(), log.getUpdateState());
Assert.assertEquals(OperationModule.BasicDataArea.name(), log.getModuleName());
}
@Test
public void setIsActiveTestCascadeDeactivate() {
// data preparation
execSqlFile("sql/area_data_update_test.sql");
// get current user name
Authentication request = new JwtAuthenticationToken("xxxx");
Authentication authenticaiton = jwtAuthenticationProvider.authenticate(request);
SecurityContextHolder.getContext().setAuthentication(authenticaiton);
AreaDto areaDto = new AreaDto();
areaDto.setId("141eee99-4046-473e-a8b7-7ccd25892b71");
areaDto.setIsActive(CommonConstants.DEACTIVE_STATUS);
OperationResultDto<List<String>> operationResult = areaService.setIsActive(areaDto);
// check area
Area expectedArea = areaMapper.selectByPrimaryKey("141eee99-4046-473e-a8b7-7ccd25892b71");
Assert.assertEquals(CommonConstants.DEACTIVE_STATUS, expectedArea.getIsActive());
List<Area> allSubAreas = areaService.getAllSubAreas("141eee99-4046-473e-a8b7-7ccd25892b71");
Assert.assertEquals(3, allSubAreas.size());
Assert.assertArrayEquals(
new Boolean[] { CommonConstants.DEACTIVE_STATUS, CommonConstants.DEACTIVE_STATUS,
CommonConstants.DEACTIVE_STATUS },
allSubAreas.stream().map(area -> area.getIsActive()).collect(Collectors.toList()).toArray());
// check response
Assert.assertEquals(true, operationResult.getResult());
// check operation log
OperationLogBasicDataExample example = new OperationLogBasicDataExample();
example.setOrderByClause("CreateTime ASC");
List<OperationLogBasicData> operationLogs = operationLogBasicDataMapper.selectByExample(example);
Assert.assertEquals(4, operationLogs.size());
assertThat(operationLogs).extracting("originalState").contains(CommonConstants.ACTIVE_STATUS.toString());
assertThat(operationLogs).extracting("updateState").contains(CommonConstants.DEACTIVE_STATUS.toString());
assertThat(operationLogs).extracting("comment").contains(AreaMessage.AreaName + ":" + expectedArea.getName() + AreaMessage.DisableCascade);
/*OperationLogBasicData targetArealog = operationLogs.get(0);
Assert.assertEquals(targetArealog.getOperationObject(), expectedArea.getName());
Assert.assertEquals(CommonConstants.ACTIVE_STATUS.toString(), targetArealog.getOriginalState());
Assert.assertEquals(CommonConstants.DEACTIVE_STATUS.toString(), targetArealog.getUpdateState());
Assert.assertEquals(OperationModule.BasicDataArea.name(), targetArealog.getModuleName());
OperationLogBasicData cascadeArealog = operationLogs.get(1);
Assert.assertEquals(allSubAreas.get(0).getName(), cascadeArealog.getOperationObject());
Assert.assertEquals(CommonConstants.ACTIVE_STATUS.toString(), cascadeArealog.getOriginalState());
Assert.assertEquals(CommonConstants.DEACTIVE_STATUS.toString(), cascadeArealog.getUpdateState());
Assert.assertEquals(OperationModule.BasicDataArea.name(), cascadeArealog.getModuleName());
Assert.assertEquals(AreaMessage.AreaName + ":" + expectedArea.getName() + AreaMessage.DisableCascade,
cascadeArealog.getComment());*/
}
@Test
public void setIsActiveTestCascadeDeactivateWithLinkedOrganization() {
// data preparation
execSqlFile("sql/area_data_update_test.sql");
// get current user name
Authentication request = new JwtAuthenticationToken("xxxx");
Authentication authenticaiton = jwtAuthenticationProvider.authenticate(request);
SecurityContextHolder.getContext().setAuthentication(authenticaiton);
AreaDto areaDto = new AreaDto();
areaDto.setId("141eb884-e9b9-4188-9a00-a3571ab1e7e9");
areaDto.setIsActive(CommonConstants.DEACTIVE_STATUS);
OperationResultDto<List<String>> operationResult = areaService.setIsActive(areaDto);
// check response
Assert.assertEquals(false, operationResult.getResult());
Assert.assertEquals(RegionMessage.CannotStopRegionTips, operationResult.getResultMsg());
Assert.assertEquals(Arrays.asList("华天证券有限公司"), operationResult.getData());
// check operation log
OperationLogBasicDataExample example = new OperationLogBasicDataExample();
example.setOrderByClause("CreateTime ASC");
List<OperationLogBasicData> operationLogs = operationLogBasicDataMapper.selectByExample(example);
Assert.assertEquals(0, operationLogs.size());
}
@Test
public void getAreaListTest() {
// data preparation
execSqlFile("sql/area_data.sql");
List<AreaDto> areaDtoList = areaService.getAreaList(1);
Assert.assertEquals(49, areaDtoList.size());
areaDtoList = areaService.getAreaList(0);
Assert.assertEquals(40, areaDtoList.size());
}
@Test
public void getAreaTreeTest() {
// data preparation
execSqlFile("sql/area_data.sql");
List<AreaDto> areaDtoTree = areaService.getAreaTree(1);
Assert.assertEquals(31, areaDtoTree.size());
areaDtoTree = areaService.getAreaTree(0);
Assert.assertEquals(29, areaDtoTree.size());
}
@After
public void tearDown() {
}
}
package pwc.taxtech.atms.service.impl;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.nutz.lang.Strings;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import pwc.taxtech.atms.CommonIT;
import pwc.taxtech.atms.common.AuthUserHelper;
import pwc.taxtech.atms.common.CommonUtils;
import pwc.taxtech.atms.common.OperationAction;
import pwc.taxtech.atms.common.OperationModule;
import pwc.taxtech.atms.dao.BusinessUnitMapper;
import pwc.taxtech.atms.dao.OperationLogBasicDataMapper;
import pwc.taxtech.atms.dto.BusinessUnitDto;
import pwc.taxtech.atms.dto.BusinessUnitInputDto;
import pwc.taxtech.atms.dto.IdModel;
import pwc.taxtech.atms.entity.BusinessUnit;
import pwc.taxtech.atms.entity.OperationLogBasicData;
import pwc.taxtech.atms.entity.OperationLogBasicDataExample;
import pwc.taxtech.atms.security.JwtAuthenticationProvider;
import pwc.taxtech.atms.security.JwtAuthenticationToken;
import pwc.taxtech.atms.service.BusinessUnitService;
public class BusinessUnitServiceIT extends CommonIT {
private static Logger logger = LoggerFactory.getLogger(BusinessUnitServiceIT.class);
private static final String UUID1 = CommonUtils.getUUID();
private static final String UUID2 = CommonUtils.getUUID();
private static final String UUID3 = CommonUtils.getUUID();
@Autowired
private BusinessUnitService businessUnitService;
@Autowired
private BusinessUnitMapper businessUnitMapper;
@Autowired
private JwtAuthenticationProvider jwtAuthenticationProvider;
@Autowired
private OperationLogBasicDataMapper operationLogBasicDataMapper;
@Autowired
private AuthUserHelper authUserHelper;
private BusinessUnit businessUnit1;
private BusinessUnit businessUnit2;
private BusinessUnitDto businessUnitDto1;
private BusinessUnitDto businessUnitDto2;
private IdModel idModel1;
@Before
public void init() {
cleanUpAllTables();
// for get and delete test
businessUnit1 = new BusinessUnit();
businessUnit1.setId(UUID1);
businessUnit1.setIsActive(true);
businessUnit1.setName("businessUnit1");
businessUnit1.setCreateTime(new Date());
businessUnit1.setUpdateTime(new Date());
businessUnitMapper.insert(businessUnit1);
idModel1 = new IdModel();
idModel1.setId(UUID1);
// for get and update test
businessUnit2 = new BusinessUnit();
businessUnit2.setId(UUID2);
businessUnit2.setIsActive(true);
businessUnit2.setName("businessUnit2");
businessUnit2.setCreateTime(new Date());
businessUnit2.setUpdateTime(new Date());
businessUnitMapper.insert(businessUnit2);
businessUnitDto1 = new BusinessUnitDto();
businessUnitDto1.setId(UUID2);
businessUnitDto1.setIsActive(false);
businessUnitDto1.setName("businessUnitDto1");
// for add test
businessUnitDto2 = new BusinessUnitDto();
businessUnitDto2.setId(UUID3);
businessUnitDto2.setIsActive(true);
businessUnitDto2.setName("businessUnitDto2");
// get current user name
Authentication request = new JwtAuthenticationToken("xxxx");
Authentication authenticaiton = jwtAuthenticationProvider.authenticate(request);
SecurityContextHolder.getContext().setAuthentication(authenticaiton);
}
@Test
public void getBusinessUnitsTest() {
logger.debug("Start to test getBusinessUnits");
List<BusinessUnitDto> businessUnitDtoList = businessUnitService.getBusinessUnits();
Assert.assertNotNull(businessUnitDtoList);
Assert.assertTrue(!businessUnitDtoList.isEmpty());
for (BusinessUnitDto businessUnitDto : businessUnitDtoList) {
if (UUID1.equals(businessUnitDto.getId())) {
compareBusinessUnits(businessUnit1, businessUnitDto);
}
if (UUID2.equals(businessUnitDto.getId())) {
compareBusinessUnits(businessUnit2, businessUnitDto);
}
}
}
@Test
public void deleteBusinessUnitTest() {
logger.debug("Start to test deleteBusinessUnit");
Integer result = businessUnitService.deleteBusinessUnit(idModel1);
Assert.assertEquals("1", Integer.toString(result));
BusinessUnit businessUnitAfterDelete = businessUnitMapper.selectByPrimaryKey(UUID1);
Assert.assertNull(businessUnitAfterDelete);
logger.debug("Start to check basic data operation log for delete");
OperationLogBasicData operationLogBasicData = findOperationLogBasicData(businessUnit1.getName(),
OperationAction.Delete.toString()).get(0);
compareOperationLogBasicData(businessUnit1.getName(), OperationAction.Delete.toString(), operationLogBasicData);
}
@Test
public void updateBusinessUnitsTest() {
logger.debug("Start to test updateBusinessUnits");
findByNameAndIsActive(businessUnit2.getName(), businessUnit2.getIsActive());
Assert.assertFalse(businessUnit2.getName().equals(businessUnitDto1.getName()));
Assert.assertFalse(businessUnit2.getIsActive().equals(businessUnitDto1.getIsActive()));
List<BusinessUnitDto> businessUnitDtos = new ArrayList<>();
businessUnitDtos.add(businessUnitDto1);
Boolean result = businessUnitService.updateBusinessUnits(businessUnitDtos);
Assert.assertTrue(result);
BusinessUnit updatedBusinessUnit = findByNameAndIsActive(businessUnitDto1.getName(),
businessUnitDto1.getIsActive());
compareBusinessUnits(updatedBusinessUnit, businessUnitDto1);
logger.debug("Start to check basic data operation log for update");
List<OperationLogBasicData> operationLogBasicDatas = findOperationLogBasicData(businessUnit2.getName(),
OperationAction.Update.toString());
Assert.assertTrue(operationLogBasicDatas.size() > 1);
// sort operation content: isActive and name
operationLogBasicDatas.sort(new Comparator<OperationLogBasicData>() {
@Override
public int compare(OperationLogBasicData o1, OperationLogBasicData o2) {
return o1.getOperationContent().compareTo(o2.getOperationContent());
}
});
// isActive
OperationLogBasicData logForFieldIsActive = operationLogBasicDatas.get(0);
compareOperationLogForUpdate("ISACTIVE", Strings.upperFirst(businessUnit2.getIsActive().toString()),
Strings.upperFirst(businessUnitDto1.getIsActive().toString()), businessUnit2.getName(),
OperationAction.Update.toString(), logForFieldIsActive);
// name
OperationLogBasicData logForFieldName = operationLogBasicDatas.get(1);
compareOperationLogForUpdate("NAME", businessUnit2.getName(), businessUnitDto1.getName(),
businessUnit2.getName(), OperationAction.Update.toString(), logForFieldName);
}
@Test
public void addBusinessUnitTest() {
logger.debug("Start to test addBusinessUnit");
List<BusinessUnitInputDto> businessUnitDtos = new ArrayList<>();
BusinessUnitInputDto item = new BusinessUnitInputDto();
CommonUtils.copyProperties(businessUnitDto2, item);
businessUnitDtos.add(item);
businessUnitService.addBusinessUnits(businessUnitDtos);
BusinessUnit businessUnit = findByNameAndIsActive(businessUnitDto2.getName(), businessUnitDto2.getIsActive());
Assert.assertEquals(businessUnit.getIsActive(), businessUnitDto2.getIsActive());
Assert.assertEquals(businessUnit.getName(), businessUnitDto2.getName());
logger.debug("Start to check basic data operation log for add");
OperationLogBasicData operationLogBasicData = findOperationLogBasicData(businessUnitDto2.getName(),
OperationAction.New.toString()).get(0);
compareOperationLogBasicData(businessUnitDto2.getName(), OperationAction.New.toString(), operationLogBasicData);
}
private void compareBusinessUnits(BusinessUnit businessUnit, BusinessUnitDto businessUnitDto) {
Assert.assertEquals(businessUnit.getId(), businessUnitDto.getId());
Assert.assertEquals(businessUnit.getIsActive(), businessUnitDto.getIsActive());
Assert.assertEquals(businessUnit.getName(), businessUnitDto.getName());
}
private List<OperationLogBasicData> findOperationLogBasicData(String name, String action) {
OperationLogBasicDataExample example = new OperationLogBasicDataExample();
pwc.taxtech.atms.entity.OperationLogBasicDataExample.Criteria criteria = example.createCriteria();
if (!OperationAction.Delete.toString().equals(action)) {
criteria.andOperationObjectEqualTo(name);
}
criteria.andOperationUserEqualTo(authUserHelper.getCurrentAuditor());
criteria.andModuleNameEqualTo(OperationModule.BasicDataBusinessUnit.toString());
criteria.andOperationActionEqualTo(action);
List<OperationLogBasicData> operationLogBasicDataList = operationLogBasicDataMapper.selectByExample(example);
Assert.assertNotNull(operationLogBasicDataList);
Assert.assertTrue(!operationLogBasicDataList.isEmpty());
return operationLogBasicDataList;
}
private void compareOperationLogForUpdate(String content, String originState, String updateState, String name,
String action, OperationLogBasicData logForFieldIsActive) {
Assert.assertEquals(content, logForFieldIsActive.getOperationContent().toUpperCase());
Assert.assertEquals(originState, logForFieldIsActive.getOriginalState());
Assert.assertEquals(updateState, logForFieldIsActive.getUpdateState());
compareOperationLogBasicData(name, action, logForFieldIsActive);
}
private void compareOperationLogBasicData(String name, String action, OperationLogBasicData operationLogBasicData) {
if (!OperationAction.Delete.toString().equals(action)) {
Assert.assertEquals(name, operationLogBasicData.getOperationObject());
}
Assert.assertEquals(authUserHelper.getCurrentAuditor(), operationLogBasicData.getOperationUser());
Assert.assertEquals(OperationModule.BasicDataBusinessUnit.toString(), operationLogBasicData.getModuleName());
Assert.assertEquals(action, operationLogBasicData.getOperationAction());
}
private BusinessUnit findByNameAndIsActive(String name, Boolean isActive) {
List<BusinessUnit> actualBusinessUnits = businessUnitService.findByNameAndIsActive(name, isActive);
Assert.assertNotNull(actualBusinessUnits);
Assert.assertTrue(!actualBusinessUnits.isEmpty());
BusinessUnit businessUnit = actualBusinessUnits.get(0);
return businessUnit;
}
}
package pwc.taxtech.atms.service.impl;
import com.alibaba.fastjson.JSON;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.ClassPathResource;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import pwc.taxtech.atms.CommonIT;
import pwc.taxtech.atms.common.AuthUserHelper;
import pwc.taxtech.atms.common.CommonConstants;
import pwc.taxtech.atms.common.CommonUtils;
import pwc.taxtech.atms.common.OperateLogType;
import pwc.taxtech.atms.common.OperationAction;
import pwc.taxtech.atms.common.OperationModule;
import pwc.taxtech.atms.dao.CustomerMapper;
import pwc.taxtech.atms.dao.EnterpriseAccountSetMapper;
import pwc.taxtech.atms.dao.OperationLogBasicDataMapper;
import pwc.taxtech.atms.dpo.PagingDto;
import pwc.taxtech.atms.dto.OperationLogDto;
import pwc.taxtech.atms.dto.OperationResultDto;
import pwc.taxtech.atms.dto.PagingResultDto;
import pwc.taxtech.atms.dto.QueryOperateParamDto;
import pwc.taxtech.atms.dto.ValidateInfoDto;
import pwc.taxtech.atms.dto.customer.CustomerDto;
import pwc.taxtech.atms.dto.customer.CustomerValidateInfoDto;
import pwc.taxtech.atms.entity.Customer;
import pwc.taxtech.atms.entity.EnterpriseAccountSet;
import pwc.taxtech.atms.entity.OperationLogBasicData;
import pwc.taxtech.atms.entity.OperationLogBasicDataExample;
import pwc.taxtech.atms.security.JwtAuthenticationProvider;
import pwc.taxtech.atms.security.JwtAuthenticationToken;
import pwc.taxtech.atms.service.CustomerService;
import pwc.taxtech.atms.service.OperationLogService;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class CustomerServiceIT extends CommonIT {
private static final Logger logger = LoggerFactory.getLogger(CustomerServiceIT.class);
@Autowired
private CustomerMapper customerMapper;
@Autowired
private CustomerService customerService;
@Autowired
private OperationLogService operationLogService;
@Autowired
private JwtAuthenticationProvider jwtAuthenticationProvider;
@Autowired
private EnterpriseAccountSetMapper enterpriseAccountSetMapper;
@Autowired
private OperationLogBasicDataMapper operationLogBasicDataMapper;
@Autowired
private AuthUserHelper authUserHelper;
private CustomerDto customerDtoToCreate;
private CustomerDto customerDtoToUpdate;
private CustomerDto customerDtoToUpdate2;
private Customer customerToDelete;
private Customer customerToUpdate;
private EnterpriseAccountSet enterpriseAccountSetToCreate;
private static final String UUID1 = CommonUtils.getUUID();
private static final String UUID2 = CommonUtils.getUUID();
private static final String UUID3 = CommonUtils.getUUID();
private static final String UUID4 = CommonUtils.getUUID();
@Before
public void setUp() {
cleanUpEnterpriseAccountSetTable();
cleanUpCustomerTable();
operationLogBasicDataMapper.deleteByExample(null);
enterpriseAccountSetToCreate = new EnterpriseAccountSet();
enterpriseAccountSetToCreate.setId(UUID1);
enterpriseAccountSetToCreate.setCode("enterprise-account-set-code");
enterpriseAccountSetToCreate.setCreateTime(new Date());
enterpriseAccountSetToCreate.setCreatorId("creator-id");
enterpriseAccountSetToCreate.setIsActive(true);
enterpriseAccountSetToCreate.setName("enterprise-account-set-name");
enterpriseAccountSetToCreate.setUpdateTime(new Date());
enterpriseAccountSetMapper.insert(enterpriseAccountSetToCreate);
customerDtoToCreate = new CustomerDto();
customerDtoToCreate.setId(UUID2);
customerDtoToCreate.setEnterPriseAccountId(UUID1);
customerDtoToCreate.setCode("customer-code");
customerDtoToCreate.setName("customer-name");
customerToDelete = new Customer();
customerToDelete.setId(UUID3);
customerToDelete.setEnterPriseAccountId(UUID1);
customerToDelete.setCode("customer-code");
customerToDelete.setName("customer-name");
customerToUpdate = new Customer();
customerToUpdate.setId(UUID4);
customerToUpdate.setEnterPriseAccountId(UUID1);
customerToUpdate.setCode("customer-code");
customerToUpdate.setName("customer-name");
customerDtoToUpdate = new CustomerDto();
customerDtoToUpdate.setId(UUID4);
customerDtoToUpdate.setEnterPriseAccountId(UUID1);
customerDtoToUpdate.setCode("customer-code-update");
customerDtoToUpdate.setName("customer-name-update");
customerDtoToUpdate2 = new CustomerDto();
customerDtoToUpdate2.setId(UUID4);
customerDtoToUpdate2.setEnterPriseAccountId(UUID1);
customerDtoToUpdate2.setCode("customer-code");
customerDtoToUpdate2.setName("customer-name-update");
// get current user name
Authentication request = new JwtAuthenticationToken("xxxx");
Authentication authenticaiton = jwtAuthenticationProvider.authenticate(request);
SecurityContextHolder.getContext().setAuthentication(authenticaiton);
}
@Test
public void addRangeTest() {
// clean();
logger.debug("enter addRange testing");
List<CustomerDto> customerDtoList = new ArrayList<>();
customerDtoList.add(customerDtoToCreate);
List<OperationResultDto<CustomerDto>> operationResultDtoList = customerService.addRange(customerDtoList);
Assert.assertNotNull(operationResultDtoList);
logger.debug("print operationResultDtoList:{}", JSON.toJSONString(operationResultDtoList));
Assert.assertTrue(operationResultDtoList.size() == 0);
// asset customer
Customer customer = customerMapper.selectByPrimaryKey(UUID2);
Assert.assertNotNull(customer);
Assert.assertEquals(customerDtoToCreate.getCode(), customer.getCode());
Assert.assertEquals(customerDtoToCreate.getEnterPriseAccountId(), customer.getEnterPriseAccountId());
Assert.assertEquals(customerDtoToCreate.getName(), customer.getName());
// assert operation log
OperationLogBasicDataExample example = new OperationLogBasicDataExample();
example.createCriteria()
.andOperationObjectEqualTo(customerDtoToCreate.getCode() + CommonConstants.PLUS_SIGN_SEPARATOR
+ customerDtoToCreate.getName())
.andOperationUserEqualTo(authUserHelper.getCurrentAuditor())
.andModuleNameEqualTo(OperationModule.BasicDataCustomer.toString())
.andOperationActionEqualTo(OperationAction.New.toString());
List<OperationLogBasicData> operationLogBasicDataList = operationLogBasicDataMapper.selectByExample(example);
Assert.assertNotNull(operationLogBasicDataList);
Assert.assertFalse(operationLogBasicDataList.isEmpty());
}
@Test
public void deleteRangeTest() {
logger.debug("enter deleteRange testing");
customerMapper.insert(customerToDelete);
Customer customer = customerMapper.selectByPrimaryKey(UUID3);
Assert.assertNotNull(customer);
List<CustomerDto> customerDtoList = new ArrayList<>();
CustomerDto customerDto = new CustomerDto();
customerDtoList.add(customerDto);
customerDto.setCode(customerToDelete.getCode());
customerDto.setEnterPriseAccountId(customerToDelete.getEnterPriseAccountId());
customerDto.setId(customerToDelete.getId());
customerDto.setName(customerToDelete.getName());
customerService.deleteRange(customerDtoList);
Customer customerAfterDelete = customerMapper.selectByPrimaryKey(UUID3);
Assert.assertNull(customerAfterDelete);
// assert operation log
OperationLogBasicDataExample example = new OperationLogBasicDataExample();
example.createCriteria()
.andOperationObjectEqualTo(
customerToDelete.getCode() + CommonConstants.PLUS_SIGN_SEPARATOR + customerToDelete.getName())
.andOperationUserEqualTo(authUserHelper.getCurrentAuditor())
.andModuleNameEqualTo(OperationModule.BasicDataCustomer.toString())
.andOperationActionEqualTo(OperationAction.Delete.toString());
List<OperationLogBasicData> operationLogBasicDataList = operationLogBasicDataMapper.selectByExample(example);
Assert.assertNotNull(operationLogBasicDataList);
Assert.assertFalse(operationLogBasicDataList.isEmpty());
}
@Test
public void updateRangeTesting() {
logger.debug("enter updateRange testing");
customerMapper.insert(customerToUpdate);
Assert.assertFalse(customerToUpdate.getName().equals(customerDtoToUpdate.getName()));
Assert.assertFalse(customerToUpdate.getCode().equals(customerDtoToUpdate.getCode()));
Customer existedCustomer = customerMapper.selectByPrimaryKey(UUID4);
Assert.assertNotNull(existedCustomer);
Assert.assertFalse(existedCustomer.getName().equals(customerDtoToUpdate.getName()));
Assert.assertFalse(existedCustomer.getCode().equals(customerDtoToUpdate.getCode()));
List<CustomerDto> customerDtoList = new ArrayList<>();
customerDtoList.add(customerDtoToUpdate);
customerService.updateRange(customerDtoList);
Customer updatedCustomer = customerMapper.selectByPrimaryKey(UUID4);
Assert.assertNotNull(updatedCustomer);
Assert.assertTrue(updatedCustomer.getName().equals(customerDtoToUpdate.getName()));
Assert.assertTrue(updatedCustomer.getCode().equals(customerDtoToUpdate.getCode()));
// assert operation log
OperationLogBasicDataExample example = new OperationLogBasicDataExample();
example.createCriteria()
.andOperationObjectEqualTo(customerDtoToUpdate.getCode() + CommonConstants.PLUS_SIGN_SEPARATOR
+ customerDtoToUpdate.getName())
.andOperationUserEqualTo(authUserHelper.getCurrentAuditor())
.andModuleNameEqualTo(OperationModule.BasicDataCustomer.toString())
.andOperationActionEqualTo(OperationAction.Update.toString());
List<OperationLogBasicData> operationLogBasicDataList = operationLogBasicDataMapper.selectByExample(example);
Assert.assertNotNull(operationLogBasicDataList);
Assert.assertTrue(!operationLogBasicDataList.isEmpty());
// update both name and code, there should be two records in operation log
Assert.assertTrue(operationLogBasicDataList.size() > 1);
logger.debug("Print operationLogBasicDataList before sort:{}", JSON.toJSONString(operationLogBasicDataList));
operationLogBasicDataList.sort((a, b) -> a.getOperationContent().compareTo(b.getOperationContent()));
logger.debug("Print operationLogBasicDataList after sort:{}", JSON.toJSONString(operationLogBasicDataList));
OperationLogBasicData logForCode = operationLogBasicDataList.get(0);
Assert.assertEquals("CODE", logForCode.getOperationContent().toUpperCase());
Assert.assertEquals(OperationModule.BasicDataCustomer.toString(), logForCode.getModuleName());
Assert.assertEquals(
customerDtoToUpdate.getCode() + CommonConstants.PLUS_SIGN_SEPARATOR + customerDtoToUpdate.getName(),
logForCode.getOperationObject());
Assert.assertEquals(OperationAction.Update.toString(), logForCode.getOperationAction());
Assert.assertEquals(authUserHelper.getCurrentAuditor(), logForCode.getOperationUser());
Assert.assertEquals(customerToUpdate.getCode(), logForCode.getOriginalState());
Assert.assertEquals(customerDtoToUpdate.getCode(), logForCode.getUpdateState());
OperationLogBasicData logForName = operationLogBasicDataList.get(1);
Assert.assertEquals("NAME", logForName.getOperationContent().toUpperCase());
Assert.assertEquals(OperationModule.BasicDataCustomer.toString(), logForName.getModuleName());
Assert.assertEquals(
customerDtoToUpdate.getCode() + CommonConstants.PLUS_SIGN_SEPARATOR + customerDtoToUpdate.getName(),
logForName.getOperationObject());
Assert.assertEquals(OperationAction.Update.toString(), logForName.getOperationAction());
Assert.assertEquals(authUserHelper.getCurrentAuditor(), logForName.getOperationUser());
Assert.assertEquals(customerToUpdate.getName(), logForName.getOriginalState());
Assert.assertEquals(customerDtoToUpdate.getName(), logForName.getUpdateState());
// test OperationLogService
QueryOperateParamDto queryOperateParamDto = new QueryOperateParamDto();
queryOperateParamDto.setLogType(OperateLogType.OperationLogBasicData.value());
PagingDto pageInfo = new PagingDto();
queryOperateParamDto.setPageInfo(pageInfo);
pageInfo.setPageIndex(1);
pageInfo.setPageSize(10);
queryOperateParamDto.setSearchText("code");
queryOperateParamDto.setModuleName(OperationModule.BasicDataCustomer.name());
PagingResultDto<OperationLogDto> pageResult = operationLogService.getOperationLogList(queryOperateParamDto);
logger.debug("print pageResult:{}", JSON.toJSONString(pageResult, true));
Assert.assertNotNull(pageResult);
}
/** 场景:只修改Name, Code不变 */
@Test
public void updateRangeTesting2() {
logger.debug("enter updateRange testing");
customerMapper.insert(customerToUpdate);
Assert.assertFalse(customerToUpdate.getName().equals(customerDtoToUpdate2.getName()));
Assert.assertTrue(customerToUpdate.getCode().equals(customerDtoToUpdate2.getCode()));
Customer existedCustomer = customerMapper.selectByPrimaryKey(UUID4);
Assert.assertNotNull(existedCustomer);
Assert.assertFalse(existedCustomer.getName().equals(customerDtoToUpdate2.getName()));
Assert.assertTrue(existedCustomer.getCode().equals(customerDtoToUpdate2.getCode()));
List<CustomerDto> customerDtoList = new ArrayList<>();
customerDtoList.add(customerDtoToUpdate2);
List<OperationResultDto<CustomerDto>> operationResultDtoList = customerService.updateRange(customerDtoList);
Assert.assertNotNull(operationResultDtoList);
logger.debug("print operationResultDtoList:{}", JSON.toJSONString(operationResultDtoList));
Assert.assertTrue(operationResultDtoList.size() == 0);
Customer updatedCustomer = customerMapper.selectByPrimaryKey(UUID4);
Assert.assertNotNull(updatedCustomer);
Assert.assertTrue(updatedCustomer.getName().equals(customerDtoToUpdate2.getName()));
Assert.assertTrue(updatedCustomer.getCode().equals(customerDtoToUpdate2.getCode()));
// assert operation log
OperationLogBasicDataExample example = new OperationLogBasicDataExample();
example.createCriteria()
.andOperationObjectEqualTo(customerDtoToUpdate2.getCode() + CommonConstants.PLUS_SIGN_SEPARATOR
+ customerDtoToUpdate2.getName())
.andOperationUserEqualTo(authUserHelper.getCurrentAuditor())
.andModuleNameEqualTo(OperationModule.BasicDataCustomer.toString())
.andOperationActionEqualTo(OperationAction.Update.toString());
List<OperationLogBasicData> operationLogBasicDataList = operationLogBasicDataMapper.selectByExample(example);
Assert.assertNotNull(operationLogBasicDataList);
Assert.assertTrue(!operationLogBasicDataList.isEmpty());
// update both name and code, there should be two records in operation log
Assert.assertTrue(operationLogBasicDataList.size() > 0);
logger.debug("Print operationLogBasicDataList before sort:{}", JSON.toJSONString(operationLogBasicDataList));
operationLogBasicDataList.sort((a, b) -> a.getOperationContent().compareTo(b.getOperationContent()));
logger.debug("Print operationLogBasicDataList after sort:{}", JSON.toJSONString(operationLogBasicDataList));
OperationLogBasicData logForName = operationLogBasicDataList.get(0);
Assert.assertEquals("NAME", logForName.getOperationContent().toUpperCase());
Assert.assertEquals(OperationModule.BasicDataCustomer.toString(), logForName.getModuleName());
Assert.assertEquals(
customerDtoToUpdate2.getCode() + CommonConstants.PLUS_SIGN_SEPARATOR + customerDtoToUpdate2.getName(),
logForName.getOperationObject());
Assert.assertEquals(OperationAction.Update.toString(), logForName.getOperationAction());
Assert.assertEquals(authUserHelper.getCurrentAuditor(), logForName.getOperationUser());
Assert.assertEquals(customerToUpdate.getName(), logForName.getOriginalState());
Assert.assertEquals(customerDtoToUpdate2.getName(), logForName.getUpdateState());
}
@Test
public void getByIdTest() {
// data preparation
execSqlFile("sql/customer_data.sql");
CustomerValidateInfoDto customerValidateInfoDto = customerService
.getByEnterpriseAccountSetId("0e3ed0d9-0a60-4ed1-ab72-d62a22713d55");
Assert.assertNotNull(customerValidateInfoDto);
List<CustomerDto> customerDtoList = customerValidateInfoDto.getCustomerList();
Assert.assertFalse(customerDtoList.isEmpty());
List<ValidateInfoDto> validateInfoDtoList = customerValidateInfoDto.getValidateInfoList();
Assert.assertTrue(validateInfoDtoList.isEmpty());
Assert.assertFalse(customerDtoList.isEmpty());
Assert.assertTrue(customerDtoList.size() == 14);
}
@Test
public void getTest() {
// data preparation
execSqlFile("sql/customer_data.sql");
List<CustomerDto> customerDtoList = customerService.getCustomer();
Assert.assertNotNull(customerDtoList);
Assert.assertTrue(customerDtoList.size() > 0);
}
@SuppressWarnings("rawtypes")
@Test
public void upload() throws IOException {
ClassPathResource res = new ClassPathResource("excel/customer-atms.xlsx");
InputStream inputStream = res.getInputStream();
Assert.assertNotNull(inputStream);
String fileName = "filename1.xlsx";
String action = CommonConstants.IMPORT_OVERWRITE;
String enterpriseAccountId = UUID1;
List<OperationResultDto<CustomerDto>> result = (List<OperationResultDto<CustomerDto>>) customerService
.upload(inputStream, fileName, action, enterpriseAccountId);
logger.debug("print result as json:{}", JSON.toJSONString(result, true));
}
}
package pwc.taxtech.atms.service.impl;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
import java.util.ArrayList;
import java.util.List;
import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataIntegrityViolationException;
import pwc.taxtech.atms.CommonIT;
import pwc.taxtech.atms.CommonTestUtils;
import pwc.taxtech.atms.dto.dimension.DimensionDto;
import pwc.taxtech.atms.service.DemoService;
public class DemoServiceIT extends CommonIT {
@Autowired
private DemoService demoService;
@Before
public void setUp() {
dimensionMapper.deleteByExample(null);
dimensionValueMapper.deleteByExample(null);
dimensionValueOrgMapper.deleteByExample(null);
statisticAttributeMapper.deleteByExample(null);
statisticAttributeDimensionMapper.deleteByExample(null);
operationLogOrganizationMapper.deleteByExample(null);
cleanUpOperationLogBasicDataTable();
}
@Test
public void testOk() {
CommonTestUtils.initTestAuth();
List<DimensionDto> modelList = new ArrayList<>();
{
DimensionDto model = new DimensionDto();
model.setName("单元测试name1");
model.setIsActive(true);
modelList.add(model);
}
{
DimensionDto model = new DimensionDto();
model.setName("单元测试name2");
model.setIsActive(true);
modelList.add(model);
}
assertThat(demoService.addDimensionWithoutTranction(modelList).getResult()).isTrue();
assertThat(dimensionMapper.countByExample(null)).isEqualTo(2);
}
@Test
public void testFailed() {
CommonTestUtils.initTestAuth();
List<DimensionDto> modelList = new ArrayList<>();
{
DimensionDto model = new DimensionDto();
model.setName("单元测试name1");
model.setIsActive(true);
modelList.add(model);
}
{
DimensionDto model = new DimensionDto();
// 把name设置为null,数据库会报错
model.setName(null);
model.setIsActive(true);
modelList.add(model);
}
assertThat(demoService.addDimensionWithoutTranction(modelList).getResult()).isFalse();
// 没有回滚,有一条记录
assertThat(dimensionMapper.countByExample(null)).isEqualTo(1);
}
@Test
public void addDimensionWithTranction() {
CommonTestUtils.initTestAuth();
List<DimensionDto> modelList = new ArrayList<>();
{
DimensionDto model = new DimensionDto();
model.setName("单元测试name1");
model.setIsActive(true);
modelList.add(model);
}
{
DimensionDto model = new DimensionDto();
// 把name设置为null,数据库会报错
model.setName(null);
model.setIsActive(true);
modelList.add(model);
}
assertThat(demoService.addDimensionWithTranction(modelList).getResult()).isFalse();
// 回滚了,有0条记录
assertThat(dimensionMapper.countByExample(null)).isEqualTo(0);
}
@Test
public void addDimensionWithTranctionType2() {
CommonTestUtils.initTestAuth();
List<DimensionDto> modelList = new ArrayList<>();
{
DimensionDto model = new DimensionDto();
model.setName("单元测试name1");
model.setIsActive(true);
modelList.add(model);
}
{
DimensionDto model = new DimensionDto();
// 把name设置为null,数据库会报错
model.setName(null);
model.setIsActive(true);
modelList.add(model);
}
assertThatThrownBy(() -> {
demoService.addDimensionWithTranctionType2(modelList);
}).isInstanceOf(DataIntegrityViolationException.class);
// 回滚了,有0条记录
assertThat(dimensionMapper.countByExample(null)).isEqualTo(0);
}
// @Test
// public void failedTest() {
// throw new RuntimeException();
// }
}
package pwc.taxtech.atms.service.impl;
import java.util.Date;
import java.util.List;
import org.apache.commons.lang3.BooleanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import pwc.taxtech.atms.common.CommonUtils;
import pwc.taxtech.atms.dto.OperationResultDto;
import pwc.taxtech.atms.dto.dimension.DimensionDto;
import pwc.taxtech.atms.entity.Dimension;
import pwc.taxtech.atms.service.DemoService;
@Service
public class DemoServiceImpl extends AbstractService implements DemoService {
@Override
public OperationResultDto addDimensionWithoutTranction(List<DimensionDto> modelList) {
logger.debug("Enter addDimensionWithoutTranction");
try {
int i = 0;
for (DimensionDto model : modelList) {
logger.debug("Insert 第{}条记录, name:{}", ++i, model.getName());
Dimension entity = new Dimension();
CommonUtils.copyProperties(model, entity);
entity.setId(CommonUtils.getUUID());
entity.setOrderIndex((short) 1);
entity.setIsSystemDimension(false);
entity.setIsMandatory(BooleanUtils.isTrue(entity.getIsMandatory()));
entity.setIsActive(BooleanUtils.isTrue(entity.getIsActive()));
String currentUserId = authUserHelper.getCurrentUserId();
entity.setCreateBy(currentUserId);
entity.setUpdateBy(currentUserId);
entity.setCreateTime(new Date());
entity.setUpdateTime(new Date());
dimensionMapper.insert(entity);
}
return new OperationResultDto(true);
} catch (Exception e) {
logger.debug("出错了:" + e);
return new OperationResultDto(false);
}
}
@Override
public OperationResultDto addDimensionWithTranction(List<DimensionDto> modelList) {
logger.debug("Enter addDimensionWithTranction");
try {
int i = 0;
for (DimensionDto model : modelList) {
logger.debug("Insert 第{}条记录, name:{}", ++i, model.getName());
Dimension entity = new Dimension();
CommonUtils.copyProperties(model, entity);
entity.setId(CommonUtils.getUUID());
entity.setOrderIndex((short) 1);
entity.setIsSystemDimension(false);
entity.setIsMandatory(BooleanUtils.isTrue(entity.getIsMandatory()));
entity.setIsActive(BooleanUtils.isTrue(entity.getIsActive()));
String currentUserId = authUserHelper.getCurrentUserId();
entity.setCreateBy(currentUserId);
entity.setUpdateBy(currentUserId);
entity.setCreateTime(new Date());
entity.setUpdateTime(new Date());
dimensionMapper.insert(entity);
}
return new OperationResultDto(true);
} catch (Exception e) {
logger.debug("出错了:" + e);
logger.debug("标记回滚, ready to call setRollbackOnly");
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return new OperationResultDto(false);
}
}
@Override
public OperationResultDto addDimensionWithTranctionType2(List<DimensionDto> modelList) {
logger.debug("Enter addDimensionWithTranctionType2");
int i = 0;
for (DimensionDto model : modelList) {
logger.debug("Insert 第{}条记录, name:{}", ++i, model.getName());
Dimension entity = new Dimension();
CommonUtils.copyProperties(model, entity);
entity.setId(CommonUtils.getUUID());
entity.setOrderIndex((short) 1);
entity.setIsSystemDimension(false);
entity.setIsMandatory(BooleanUtils.isTrue(entity.getIsMandatory()));
entity.setIsActive(BooleanUtils.isTrue(entity.getIsActive()));
String currentUserId = authUserHelper.getCurrentUserId();
entity.setCreateBy(currentUserId);
entity.setUpdateBy(currentUserId);
entity.setCreateTime(new Date());
entity.setUpdateTime(new Date());
dimensionMapper.insert(entity);
}
return new OperationResultDto(true);
}
}
package pwc.taxtech.atms.service.impl;
import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import pwc.taxtech.atms.CommonIT;
import pwc.taxtech.atms.CommonTestUtils;
import pwc.taxtech.atms.constant.DimensionConstant;
import pwc.taxtech.atms.dpo.DimensionValueOrgDto;
import pwc.taxtech.atms.dto.OperationResultDto;
import pwc.taxtech.atms.dto.dimension.DimensinTypeOrgDto;
import pwc.taxtech.atms.dto.dimension.DimensionDto;
import pwc.taxtech.atms.dto.dimension.DimensionTypeEnum;
import pwc.taxtech.atms.dto.dimension.DimensionValueDto;
import pwc.taxtech.atms.dto.navtree.DevTreeDto;
import pwc.taxtech.atms.entity.Dimension;
import pwc.taxtech.atms.entity.DimensionValue;
import pwc.taxtech.atms.entity.OperationLogBasicData;
import pwc.taxtech.atms.entity.OperationLogOrganization;
import pwc.taxtech.atms.entity.StatisticAttribute;
import pwc.taxtech.atms.entity.StatisticAttributeDimension;
import pwc.taxtech.atms.service.DimensionService;
import java.util.Date;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
public class DimensionServiceIT extends CommonIT {
@Autowired
private DimensionService dimensionService;
@Before
public void setUp() {
dimensionMapper.deleteByExample(null);
dimensionValueMapper.deleteByExample(null);
dimensionValueOrgMapper.deleteByExample(null);
statisticAttributeMapper.deleteByExample(null);
statisticAttributeDimensionMapper.deleteByExample(null);
operationLogOrganizationMapper.deleteByExample(null);
cleanUpOperationLogBasicDataTable();
}
@Test
public void getDimensionStatics() {
execSqlFile("sql/dimension/dimension_data.sql");
execSqlFile("sql/dimension/dimensionValue_data.sql");
List<DimensionDto> resultList = dimensionService.getDimensionStatics();
assertThat(resultList).isNotEmpty();
assertThat(resultList).extracting("name").contains("机构", "事业部", "覆盖区域");
assertThat(resultList).extracting("attributeId").contains(DimensionConstant.OrganizationStructureId,
DimensionConstant.BusinessUnitId, DimensionConstant.AreaId);
// logger.debug("print resultList:{}", JSON.toJSONString(resultList, true));
}
@Test
public void getAllDimensionList() {
execSqlFile("sql/dimension/dimension_data.sql");
execSqlFile("sql/dimension/dimensionValue_data.sql");
List<DimensionDto> resultList = dimensionService.getAllDimensionList();
assertThat(resultList).isNotEmpty();
}
@Test(expected = RuntimeException.class)
public void updateDimensionThenThrow() {
dimensionService.updateDimension(null);
}
@SuppressWarnings("rawtypes")
@Test
public void updateDimensionOk() {
CommonTestUtils.initTestAuth();
execSqlFile("sql/dimension/dimension_data.sql");
execSqlFile("sql/dimension/dimensionValue_data.sql");
final String id = "6df98a1b-7330-4cbb-90ec-d6290267dcbc";
DimensionDto input = new DimensionDto();
input.setId(id);
input.setName("事业1_updated"); // 原来是“事业1”
input.setIsActive(true);
input.setIsMandatory(true);
OperationResultDto result = dimensionService.updateDimension(input);
assertThat(result).isNotNull().matches(x -> x.getResult());
Dimension recordUpdated = dimensionMapper.selectByPrimaryKey(id);
assertThat(recordUpdated).isNotNull().matches(x -> x.getName().equals("事业1_updated"));
}
@Test(expected = RuntimeException.class)
public void getDimensionValueListFailed() {
dimensionService.getDimensionValueList(null);
}
@Test
public void getDimensionValueList() {
String did = "0ee9c871-fd1d-4498-a1b6-acef002d3bed";
execSqlFile("sql/dimension/dimensionValue_data.sql");
List<DimensionValueDto> resultList = dimensionService.getDimensionValueList(did);
assertThat(resultList).isNotEmpty().extracting("name").contains("tttt6");
}
@Test(expected = RuntimeException.class)
public void getDimensionByIdFailed() {
dimensionService.getDimensionById(null);
}
@Test
public void getDimensionByIdOk() {
execSqlFile("sql/dimension/dimension_data.sql");
String did = DimensionConstant.OrgSubChildrenId;
DimensinTypeOrgDto result = dimensionService.getDimensionById(did);
assertThat(result).isNotNull().matches(x -> x.getName().equals("机构"))
.matches(x -> x.getDimensionType().equals(DimensionTypeEnum.OrgSubChildren.value()));
// logger.debug("print resultList:{}", JSON.toJSONString(result, true));
}
@Test
public void findByIsActiveTrue() {
execSqlFile("sql/dimension/dimension_data.sql");
List<Dimension> result = dimensionService.findByIsActiveTrue();
assertThat(result).isNotEmpty();
}
@Test
public void getAllDimensionOrgList() {
execSqlFile("sql/dimension/dimension_data.sql");
execSqlFile("sql/dimension/dimensionValue_data.sql");
execSqlFile("sql/dimension/dimensionValueOrg_data.sql");
List<DimensionValueOrgDto> result = dimensionService.getAllDimensionOrgList();
assertThat(result).isNotEmpty();
assertThat(result).extracting("dimensionName").contains("aaa", "frankTest");
// logger.debug("print result:{}", JSON.toJSONString(result, true));
}
@SuppressWarnings({ "unchecked", "rawtypes" })
@Test
public void getDevDimensionTreeList() {
execSqlFile("sql/dimension/dimension_data.sql");
execSqlFile("sql/dimension/dimensionValue_data.sql");
List<DevTreeDto> result = dimensionService.getDevDimensionTreeList();
assertThat(result).isNotEmpty();
assertThat(result).extracting("text").contains("事业部", "产品线");
List<DevTreeDto> items = result.stream().filter(x -> x.getText().equals("产品线")).findFirst().get().getItems();
assertThat(items).isNotEmpty().extracting("text").contains("产品线1");
// assertThat(result).filteredOn(x->{x.getText().equals("产品线")}).
// logger.debug("print result:{}", JSON.toJSONString(result, true));
}
@Test
public void addDimension() {
CommonTestUtils.initTestAuth();
insertBaseDataForStatisticAttribute();
DimensionDto model = new DimensionDto();
model.setName("单元测试name1");
model.setIsActive(true);
assertThat(dimensionService.addDimension(model).getResult()).isTrue();
List<Dimension> dlist = dimensionMapper.selectByExample(null);
assertThat(dlist).isNotEmpty().extracting("name").contains("单元测试name1");
final String targetDimensionId = dlist.stream().filter(x -> x.getName().equals("单元测试name1")).findFirst().get()
.getId();
List<StatisticAttributeDimension> list = statisticAttributeDimensionMapper.selectByExample(null);
assertThat(list).isNotEmpty().extracting("statisticsAttributeId").contains(DimensionConstant.OrgSubChildrenId,
DimensionConstant.UserId, DimensionConstant.AreaId);
List<OperationLogBasicData> logs = operationLogBasicDataMapper.selectByExample(null);
assertThat(logs).isNotEmpty().extracting("operationObject").contains("单元测试name1-机构", "单元测试name1-用户数",
"单元测试name1-覆盖区域", "单元测试name1");
DimensionValueDto dvdto = new DimensionValueDto();
dvdto.setIsActive(true);
dvdto.setName("单元测试valueName1");
dvdto.setDimensionId(targetDimensionId);
assertThat(dimensionService.addDimensionValue(dvdto).getResult()).isTrue();
List<DimensionValue> dvlist = dimensionValueMapper.selectByExample(null);
assertThat(dvlist).isNotEmpty().extracting("name").contains("单元测试valueName1");
DimensionValue entity = dvlist.stream().filter(x -> "单元测试valueName1".equals(x.getName())).findFirst()
.orElse(null);
List<OperationLogOrganization> logs2 = operationLogOrganizationMapper.selectByExample(null);
assertThat(logs2).isNotEmpty().extracting("operationObject").contains("单元测试name1-单元测试valueName1");
List<OperationLogBasicData> logs3 = operationLogBasicDataMapper.selectByExample(null);
assertThat(logs3).isNotEmpty().extracting("operationObject").contains("单元测试name1-单元测试valueName1");
DimensionValueDto updateModel = new DimensionValueDto();
updateModel.setIsActive(true);
updateModel.setName("单元测试valueName1_updated");
updateModel.setDimensionId(entity.getDimensionId());
updateModel.setId(entity.getId());
assertThat(dimensionService.updateDimensionValue(updateModel).getResult()).isTrue();
List<OperationLogBasicData> logs4 = operationLogBasicDataMapper.selectByExample(null);
assertThat(logs4).isNotEmpty().extracting("updateState").contains("单元测试valueName1_updated");
}
private void insertBaseDataForStatisticAttribute() {
// 准备三条StatisticAttribute数据
// select * from StatisticAttribute where id in
// ('c61a5bd6-a996-4952-9869-d053995237e7','c61a5bd6-a996-4952-9869-d053996237e8','c61a5bd6-a996-4952-9869-d053995237e6')
{
StatisticAttribute record = newRecord();
record.setId(DimensionConstant.OrgSubChildrenId);
record.setName("机构");
statisticAttributeMapper.insert(record);
}
{
StatisticAttribute record = newRecord();
record.setId(DimensionConstant.AreaId);
record.setName("覆盖区域");
statisticAttributeMapper.insert(record);
}
{
StatisticAttribute record = newRecord();
record.setId(DimensionConstant.UserId);
record.setName("用户数");
statisticAttributeMapper.insert(record);
}
}
private StatisticAttribute newRecord() {
StatisticAttribute record = new StatisticAttribute();
record.setIsActive(true);
record.setCreateTime(new Date());
record.setUpdateTime(new Date());
return record;
}
}
package pwc.taxtech.atms.service.impl;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import pwc.taxtech.atms.CommonIT;
import pwc.taxtech.atms.CommonTestUtils;
import pwc.taxtech.atms.common.CommonUtils;
import pwc.taxtech.atms.common.message.EnterpriseAccountMessage;
import pwc.taxtech.atms.dpo.EnterpriseAccountDto;
import pwc.taxtech.atms.dto.OperationResultDto;
import pwc.taxtech.atms.dto.ValidateInfoDto;
import pwc.taxtech.atms.dto.epaccount.AccountMappingDto;
import pwc.taxtech.atms.dto.epaccount.EnterpriseAccountAndValidateInfo;
import pwc.taxtech.atms.dto.epaccount.EnterpriseAccountSetDto;
import pwc.taxtech.atms.entity.AccountMapping;
import pwc.taxtech.atms.entity.EnterpriseAccount;
import pwc.taxtech.atms.entity.EnterpriseAccountExample;
import pwc.taxtech.atms.entity.EnterpriseAccountSet;
import pwc.taxtech.atms.entity.EnterpriseAccountSetOrg;
import pwc.taxtech.atms.entity.OperationLogEnterPrise;
import pwc.taxtech.atms.service.EnterpriseAccountService;
import java.util.Arrays;
import java.util.Calendar;
import java.util.List;
public class EnterpriseAccountServiceIT extends CommonIT {
@Autowired private EnterpriseAccountService enterpriseAccountService;
@Before
public void setUp() {
cleanUpAllTables();
CommonTestUtils.initTestAuth();
}
@Test
public void getListByEnterpriseAccountSetIdTest() {
//data preparation
execSqlFile("sql/enterpriseAccountSet_data.sql");
execSqlFile("sql/standardAccount_data.sql");
execSqlFile("sql/enterpriseAccount_data.sql");
EnterpriseAccountAndValidateInfo epAccountAndValidateInfo = enterpriseAccountService.getListByEnterpriseAccountSetId("37175dae-0b7f-4dc7-ac58-d8b4009ef0be");
//check dto
Assert.assertEquals(97, epAccountAndValidateInfo.getEnterpriseAccountList().size());
Assert.assertEquals(0, epAccountAndValidateInfo.getValidateInfoList().size());
List<EnterpriseAccountDto> epAccountDtoList = epAccountAndValidateInfo.getEnterpriseAccountList();
Assert.assertEquals("1001", epAccountDtoList.get(0).getCode());
Assert.assertEquals("100101", epAccountDtoList.get(1).getCode());
Assert.assertEquals("1001", epAccountDtoList.get(1).getParentCode());
Assert.assertEquals("1002", epAccountDtoList.get(6).getCode());
Assert.assertEquals("100201", epAccountDtoList.get(7).getCode());
Assert.assertEquals("1002", epAccountDtoList.get(7).getParentCode());
Assert.assertEquals("10020101", epAccountDtoList.get(8).getCode());
Assert.assertEquals("10020149", epAccountDtoList.get(40).getCode());
Assert.assertEquals("100202", epAccountDtoList.get(41).getCode());
Assert.assertEquals("10020201", epAccountDtoList.get(42).getCode());
Assert.assertEquals("100203", epAccountDtoList.get(59).getCode());
Assert.assertEquals("1012", epAccountDtoList.get(84).getCode());
Assert.assertEquals("101212", epAccountDtoList.get(96).getCode());
}
@Test
public void getListByEnterpriseAccountSetIdTestWithoutEpAccounts() {
//data preparation
execSqlFile("sql/enterpriseAccountSet_data.sql");
EnterpriseAccountAndValidateInfo epAccountAndValidateInfo = enterpriseAccountService.getListByEnterpriseAccountSetId("10be679b-75e3-4cab-85d1-28f53930cba8");
//check dto
Assert.assertEquals(0, epAccountAndValidateInfo.getEnterpriseAccountList().size());
Assert.assertEquals(0, epAccountAndValidateInfo.getValidateInfoList().size());
}
@Test
public void getListByEnterpriseAccountSetIdTestWithStandardAccounts() {
//data preparation
execSqlFile("sql/enterpriseAccountSet_data.sql");
execSqlFile("sql/standardAccount_data.sql");
execSqlFile("sql/enterpriseAccount_data.sql");
EnterpriseAccountAndValidateInfo epAccountAndValidateInfo = enterpriseAccountService.getListByEnterpriseAccountSetId("dd424793-46a4-4102-beaa-a7efe161d1ee");
//check dto
Assert.assertEquals(6, epAccountAndValidateInfo.getEnterpriseAccountList().size());
Assert.assertEquals(0, epAccountAndValidateInfo.getValidateInfoList().size());
EnterpriseAccountDto topAccount = epAccountAndValidateInfo.getEnterpriseAccountList().get(0);
Assert.assertEquals("1001", topAccount.getCode());
Assert.assertEquals("库存现金", topAccount.getName());
Assert.assertNull(topAccount.getParentCode());
Assert.assertTrue(1 == topAccount.getAcctLevel());
Assert.assertEquals("库存现金", topAccount.getStdName());
EnterpriseAccountDto rmbCode = epAccountAndValidateInfo.getEnterpriseAccountList().get(1);
Assert.assertEquals("100101", rmbCode.getCode());
Assert.assertEquals("人民币", rmbCode.getName());
Assert.assertEquals("1001", rmbCode.getParentCode());
Assert.assertTrue(2 == rmbCode.getAcctLevel());
}
@Test
public void getListByEnterpriseAccountSetIdTestWithValidateErrors() {
//data preparation
execSqlFile("sql/enterpriseAccountSet_data.sql");
execSqlFile("sql/standardAccount_data.sql");
execSqlFile("sql/enterpriseAccount_data.sql");
EnterpriseAccountAndValidateInfo epAccountAndValidateInfo = enterpriseAccountService.getListByEnterpriseAccountSetId("e4ffadee-b545-4781-b504-fe686333d4d2");
//check dto
Assert.assertEquals(97, epAccountAndValidateInfo.getEnterpriseAccountList().size());
Assert.assertEquals(6, epAccountAndValidateInfo.getValidateInfoList().size());
List<ValidateInfoDto> validateInfoList = epAccountAndValidateInfo.getValidateInfoList();
Assert.assertEquals(EnterpriseAccountMessage.EnterpriceAccountRepeat, validateInfoList.get(0).getType());
Assert.assertEquals(Arrays.asList("100103", "10020140"), validateInfoList.get(0).getInValidateCodeList());
Assert.assertEquals(EnterpriseAccountMessage.EnterpriseAccountNameEmpty, validateInfoList.get(1).getType());
Assert.assertEquals(Arrays.asList("10020149","10020237", "10020504"), validateInfoList.get(1).getInValidateCodeList());
Assert.assertEquals(EnterpriseAccountMessage.DirectionFormatError, validateInfoList.get(2).getType());
Assert.assertEquals(Arrays.asList("10020109", "10020145", "10020420"), validateInfoList.get(2).getInValidateCodeList());
Assert.assertEquals(EnterpriseAccountMessage.AcctPropNullError, validateInfoList.get(3).getType());
Assert.assertEquals(Arrays.asList("10020147", "10020501", "101211"), validateInfoList.get(3).getInValidateCodeList());
Assert.assertEquals(EnterpriseAccountMessage.AcctPropFormatError, validateInfoList.get(4).getType());
Assert.assertEquals(Arrays.asList("100102", "10020102", "101203"), validateInfoList.get(4).getInValidateCodeList());
Assert.assertEquals(EnterpriseAccountMessage.NoParentCode, validateInfoList.get(5).getType());
Assert.assertEquals(Arrays.asList("101312"), validateInfoList.get(5).getInValidateCodeList());
}
@Test
public void getEnterpriseAccountTest() {
//data preparation
execSqlFile("sql/standardAccount_data.sql");
execSqlFile("sql/enterpriseAccount_data.sql");
EnterpriseAccountDto enterpriseAccountDto1 = enterpriseAccountService.getEnterpriseAccount("aa771106-1e08-48a7-a6ef-69188e2bc7bc");
Assert.assertEquals("1001", enterpriseAccountDto1.getCode());
Assert.assertEquals("库存现金", enterpriseAccountDto1.getName());
Assert.assertEquals("库存现金", enterpriseAccountDto1.getFullName());
Assert.assertEquals("1", enterpriseAccountDto1.getAcctProp().toString());
Assert.assertEquals("1", enterpriseAccountDto1.getAcctLevel().toString());
Assert.assertEquals("1", enterpriseAccountDto1.getDirection().toString());
Assert.assertEquals(false, enterpriseAccountDto1.getIsLeaf());
Assert.assertEquals(true, enterpriseAccountDto1.getIsActive());
Assert.assertEquals("库存现金", enterpriseAccountDto1.getStdName());
EnterpriseAccountDto enterpriseAccountDto2 = enterpriseAccountService.getEnterpriseAccount("14ced4bb-f3ef-464b-9800-d6c7de46a554");
Assert.assertEquals("1001", enterpriseAccountDto2.getParentCode());
Assert.assertEquals("库存现金", enterpriseAccountDto2.getParentName());
Assert.assertEquals("库存现金", enterpriseAccountDto2.getParentFullName());
}
/*@Test
public void accountMappingGetMappingResultTest() {
String accountSetId = "6ee4441d-0155-4a0f-b2fe-116912db8776";
String industryId = "0";
String orgId = "5d6a7685-4dd0-46b2-83af-6db1380f8fc6";
String parentCode = "1001";
List<EnterpriseAccount> epAccounts = customAccountMapper.getMappingResult(accountSetId, industryId, orgId, parentCode);
System.out.println(epAccounts);
}*/
@Test
public void addEnterpriseAccountTestWithDuplicateEpAccount() {
//enterpriseAccountSetId="181b735c-d75c-4e64-8e43-a2a12cd72788"
//organizationId=2b05abc8-9429-436d-91c6-178e50d25147
//data preparation
execSqlFile("sql/standardAccount_data.sql");
execSqlFile("sql/enterpriseAccount_add_test_data.sql");
//dto preparation
EnterpriseAccountDto enterpriseAccountDto = new EnterpriseAccountDto();
enterpriseAccountDto.setCode("1001");
enterpriseAccountDto.setName("现金");
enterpriseAccountDto.setFullName("现金");
enterpriseAccountDto.setEnterpriseAccountSetId("181b735c-d75c-4e64-8e43-a2a12cd72788");
enterpriseAccountDto.setDirection(1);
enterpriseAccountDto.setAcctLevel(1);
enterpriseAccountDto.setAcctProp(1);
enterpriseAccountDto.setParentCode(null);
enterpriseAccountDto.setParentFullName("");
OperationResultDto<List<EnterpriseAccountDto>> result = enterpriseAccountService.addEnterpriseAccount(enterpriseAccountDto);
//check result
Assert.assertEquals(false, result.getResult());
Assert.assertEquals(EnterpriseAccountMessage.EnterpriceAccountRepeat, result.getResultMsg());
Assert.assertNotNull(result.getData());
}
@Test
public void addEnterpriseAccountTestWithNoOrganizationLink() {
//enterpriseAccountSetId="181b735c-d75c-4e64-8e43-a2a12cd72788"
//organizationId=2b05abc8-9429-436d-91c6-178e50d25147
//data preparation
execSqlFile("sql/standardAccount_data.sql");
execSqlFile("sql/enterpriseAccount_add_test_data.sql");
//dto preparation
EnterpriseAccountDto enterpriseAccountDto = new EnterpriseAccountDto();
enterpriseAccountDto.setCode("1001.01");
enterpriseAccountDto.setName("人民币");
enterpriseAccountDto.setFullName("现金-人民币");
enterpriseAccountDto.setEnterpriseAccountSetId("181b735c-d75c-4e64-8e43-a2a12cd72788");
enterpriseAccountDto.setDirection(1);
enterpriseAccountDto.setAcctLevel(2);
enterpriseAccountDto.setAcctProp(1);
enterpriseAccountDto.setRuleType(2);
enterpriseAccountDto.setIsActive(true);
enterpriseAccountDto.setParentCode("1001");
enterpriseAccountDto.setParentFullName("现金");
OperationResultDto<List<EnterpriseAccountDto>> result = enterpriseAccountService.addEnterpriseAccount(enterpriseAccountDto);
//check result
Assert.assertEquals(true, result.getResult());
//check enterpriseAccount
EnterpriseAccount epAccount1001 = enterpriseAccountService.getEnterpriseAccount("1001", "181b735c-d75c-4e64-8e43-a2a12cd72788");
Assert.assertEquals(false, epAccount1001.getIsLeaf());
EnterpriseAccount epAccount100101 = enterpriseAccountService.getEnterpriseAccount("1001.01", "181b735c-d75c-4e64-8e43-a2a12cd72788");
Assert.assertEquals("人民币", epAccount100101.getName());
Assert.assertEquals("1001", epAccount100101.getParentCode());
Assert.assertEquals("现金-人民币", epAccount100101.getFullName());
Assert.assertEquals(new Integer(1), epAccount100101.getAcctProp());
Assert.assertEquals(new Integer(2), epAccount100101.getAcctLevel());
Assert.assertEquals(new Integer(1), epAccount100101.getDirection());
Assert.assertEquals(true, epAccount100101.getIsLeaf());
//check operation log
Assert.assertEquals(1, operationLogEnterpriseMapper.countByExample(null));
}
@Test
public void addEnterpriseAccountTestWithOrganizationLink() {
//enterpriseAccountSetId="181b735c-d75c-4e64-8e43-a2a12cd72788"
//organizationId=2b05abc8-9429-436d-91c6-178e50d25147
//data preparation
execSqlFile("sql/standardAccount_data.sql");
execSqlFile("sql/enterpriseAccount_add_test_data.sql");
Calendar cal = Calendar.getInstance();
EnterpriseAccountSetOrg enterpriseAccountSetOrg = new EnterpriseAccountSetOrg();
enterpriseAccountSetOrg.setOrganizationId("2b05abc8-9429-436d-91c6-178e50d25147");
//setorg1
enterpriseAccountSetOrg.setId(CommonUtils.getUUID());
enterpriseAccountSetOrg.setEnterpriseAccountSetId("181b735c-d75c-4e64-8e43-a2a12cd72788");
cal.set(2018, Calendar.MARCH, 1);
enterpriseAccountSetOrg.setEffectiveDate(cal.getTime());
cal.set(2018, Calendar.AUGUST, 31);
enterpriseAccountSetOrg.setExpiredDate(cal.getTime());
enterpriseAccountSetOrgMapper.insert(enterpriseAccountSetOrg);
//dto preparation
EnterpriseAccountDto enterpriseAccountDto = new EnterpriseAccountDto();
enterpriseAccountDto.setCode("1001.01");
enterpriseAccountDto.setName("人民币");
enterpriseAccountDto.setFullName("现金-人民币");
enterpriseAccountDto.setEnterpriseAccountSetId("181b735c-d75c-4e64-8e43-a2a12cd72788");
enterpriseAccountDto.setDirection(1);
enterpriseAccountDto.setAcctLevel(2);
enterpriseAccountDto.setAcctProp(1);
enterpriseAccountDto.setRuleType(2);
enterpriseAccountDto.setIsActive(true);
enterpriseAccountDto.setParentCode("1001");
enterpriseAccountDto.setParentFullName("现金");
OperationResultDto<List<EnterpriseAccountDto>> result = enterpriseAccountService.addEnterpriseAccount(enterpriseAccountDto);
//check result
Assert.assertEquals(true, result.getResult());
//check enterpriseAccount
EnterpriseAccount epAccount1001 = enterpriseAccountService.getEnterpriseAccount("1001", "181b735c-d75c-4e64-8e43-a2a12cd72788");
Assert.assertEquals(false, epAccount1001.getIsLeaf());
EnterpriseAccount epAccount100101 = enterpriseAccountService.getEnterpriseAccount("1001.01", "181b735c-d75c-4e64-8e43-a2a12cd72788");
Assert.assertEquals("人民币", epAccount100101.getName());
Assert.assertEquals("1001", epAccount100101.getParentCode());
Assert.assertEquals("现金-人民币", epAccount100101.getFullName());
Assert.assertEquals(new Integer(1), epAccount100101.getAcctProp());
Assert.assertEquals(new Integer(2), epAccount100101.getAcctLevel());
Assert.assertEquals(new Integer(1), epAccount100101.getDirection());
Assert.assertEquals(true, epAccount100101.getIsLeaf());
//check accountmapping
List<AccountMapping> accountMappings = accountMappingMapper.selectByExample(null);
Assert.assertEquals(1, accountMappings.size());
AccountMapping accountMapping = accountMappings.get(0);
Assert.assertEquals("1001.01", accountMapping.getEnterpriseAccountCode());
Assert.assertEquals("00", accountMapping.getStandardAccountCode());
Assert.assertEquals("181b735c-d75c-4e64-8e43-a2a12cd72788", accountMapping.getEnterpriseAccountSetId());
Assert.assertEquals("2b05abc8-9429-436d-91c6-178e50d25147", accountMapping.getOrganizationId());
Assert.assertEquals("23", accountMapping.getIndustryId());
//check operation log
Assert.assertEquals(1, operationLogEnterpriseMapper.countByExample(null));
}
@Test
public void updateEnterpriseAccountTest () {
//enterpriseAccountSetId="181b735c-d75c-4e64-8e43-a2a12cd72788"
//organizationId=2b05abc8-9429-436d-91c6-178e50d25147
//data preparation
execSqlFile("sql/standardAccount_data.sql");
execSqlFile("sql/enterpriseAccount_update_test_data.sql");
/*
* before update
* 1001 NULL 0
* 1001.01 1001 0
* 1001.02 1001 1
* 1001.01.01 1001.01 1
* update 1001.01.01 -> 1001.02.01 1001.02
* after update
* 1001 NULL 0
* 1001.01 1001 1
* 1001.02 1001 0
* 1001.02.01 1001.02 1
*/
//dto preparation
EnterpriseAccountDto enterpriseAccountDto = new EnterpriseAccountDto();
enterpriseAccountDto.setId("c861b9d1-d7f2-4ca0-b95c-5534de66b0c5");
enterpriseAccountDto.setCode("1001.02.01");
enterpriseAccountDto.setName("美元备用金");
enterpriseAccountDto.setFullName("现金-美元-美元备用金");
enterpriseAccountDto.setEnterpriseAccountSetId("181b735c-d75c-4e64-8e43-a2a12cd72788");
enterpriseAccountDto.setDirection(-1);
enterpriseAccountDto.setAcctLevel(3);
enterpriseAccountDto.setAcctProp(3);
enterpriseAccountDto.setRuleType(2);
enterpriseAccountDto.setIsActive(true);
enterpriseAccountDto.setParentCode("1001.02");
enterpriseAccountDto.setParentFullName("现金-美元");
OperationResultDto<List<EnterpriseAccountDto>> result = enterpriseAccountService.updateEnterpriseAccount(enterpriseAccountDto);
//check result
Assert.assertEquals(true, result.getResult());
//check enterpriseAccount
EnterpriseAccount epAccount100101 = enterpriseAccountService.getEnterpriseAccount("1001.01", "181b735c-d75c-4e64-8e43-a2a12cd72788");
EnterpriseAccount epAccount100102 = enterpriseAccountService.getEnterpriseAccount("1001.02", "181b735c-d75c-4e64-8e43-a2a12cd72788");
EnterpriseAccount epAccount10010201 = enterpriseAccountService.getEnterpriseAccount("1001.02.01", "181b735c-d75c-4e64-8e43-a2a12cd72788");
Assert.assertEquals(true, epAccount100101.getIsLeaf());
Assert.assertEquals(false, epAccount100102.getIsLeaf());
Assert.assertEquals(true, epAccount10010201.getIsLeaf());
Assert.assertEquals("美元备用金", epAccount10010201.getName());
Assert.assertEquals("1001.02", epAccount10010201.getParentCode());
Assert.assertEquals("现金-美元-美元备用金", epAccount10010201.getFullName());
Assert.assertEquals(new Integer(3), epAccount10010201.getAcctProp());
Assert.assertEquals(new Integer(3), epAccount10010201.getAcctLevel());
Assert.assertEquals(new Integer(-1), epAccount10010201.getDirection());
//check operation log
Assert.assertEquals(1, operationLogEnterpriseMapper.countByExample(null));
}
@Test
public void updateEnterpriseAccountTestWithInactiveAccountSet () {
/*
* enterpriseAccountSetId="181b735c-d75c-4e64-8e43-a2a12cd72788"
* organizationId=2b05abc8-9429-436d-91c6-178e50d25147
*/
//data preparation
execSqlFile("sql/standardAccount_data.sql");
execSqlFile("sql/enterpriseAccount_update_test_data.sql");
//set account inactive
EnterpriseAccountSet enterpriseAccountSet = enterpriseAccountSetMapper.selectByPrimaryKey("181b735c-d75c-4e64-8e43-a2a12cd72788");
enterpriseAccountSet.setIsActive(false);
enterpriseAccountSetMapper.updateByPrimaryKey(enterpriseAccountSet);
/*
* before update
* 1001 NULL 0
* 1001.01 1001 0
* 1001.02 1001 1
* 1001.01.01 1001.01 1
* update 1001.01.01 -> 1001.02.01 1001.02
* after update
* 1001 NULL 0
* 1001.01 1001 1
* 1001.02 1001 0
* 1001.02.01 1001.02 1
*/
//dto preparation
EnterpriseAccountDto enterpriseAccountDto = new EnterpriseAccountDto();
enterpriseAccountDto.setId("c861b9d1-d7f2-4ca0-b95c-5534de66b0c5");
enterpriseAccountDto.setCode("1001.02.01");
enterpriseAccountDto.setName("美元备用金");
enterpriseAccountDto.setFullName("现金-美元-美元备用金");
enterpriseAccountDto.setEnterpriseAccountSetId("181b735c-d75c-4e64-8e43-a2a12cd72788");
enterpriseAccountDto.setDirection(-1);
enterpriseAccountDto.setAcctLevel(3);
enterpriseAccountDto.setAcctProp(3);
enterpriseAccountDto.setRuleType(2);
enterpriseAccountDto.setIsActive(true);
enterpriseAccountDto.setParentCode("1001.02");
enterpriseAccountDto.setParentFullName("现金-美元");
OperationResultDto<List<EnterpriseAccountDto>> result = enterpriseAccountService.updateEnterpriseAccount(enterpriseAccountDto);
//check result
Assert.assertEquals(true, result.getResult());
//check enterpriseAccount
EnterpriseAccount epAccount100101 = enterpriseAccountService.getEnterpriseAccount("1001.01", "181b735c-d75c-4e64-8e43-a2a12cd72788");
EnterpriseAccount epAccount100102 = enterpriseAccountService.getEnterpriseAccount("1001.02", "181b735c-d75c-4e64-8e43-a2a12cd72788");
EnterpriseAccount epAccount10010201 = enterpriseAccountService.getEnterpriseAccount("1001.02.01", "181b735c-d75c-4e64-8e43-a2a12cd72788");
Assert.assertEquals(true, epAccount100101.getIsLeaf());
Assert.assertEquals(false, epAccount100102.getIsLeaf());
Assert.assertEquals(true, epAccount10010201.getIsLeaf());
Assert.assertEquals("美元备用金", epAccount10010201.getName());
Assert.assertEquals("1001.02", epAccount10010201.getParentCode());
Assert.assertEquals("现金-美元-美元备用金", epAccount10010201.getFullName());
Assert.assertEquals(new Integer(3), epAccount10010201.getAcctProp());
Assert.assertEquals(new Integer(3), epAccount10010201.getAcctLevel());
Assert.assertEquals(new Integer(-1), epAccount10010201.getDirection());
//check enterprise account set
EnterpriseAccountSet updatedEnterpriseAccountSet = enterpriseAccountSetMapper.selectByPrimaryKey("181b735c-d75c-4e64-8e43-a2a12cd72788");
Assert.assertEquals(true, updatedEnterpriseAccountSet.getIsActive());
//check operation log
Assert.assertEquals(1, operationLogEnterpriseMapper.countByExample(null));
}
@Test
public void updateEnterpriseAccountTestWithValidationError () {
/*
* enterpriseAccountSetId="181b735c-d75c-4e64-8e43-a2a12cd72788"
* organizationId=2b05abc8-9429-436d-91c6-178e50d25147
*/
//data preparation
execSqlFile("sql/standardAccount_data.sql");
execSqlFile("sql/enterpriseAccount_update_test_data.sql");
//set account inactive
EnterpriseAccountSet enterpriseAccountSet = enterpriseAccountSetMapper.selectByPrimaryKey("181b735c-d75c-4e64-8e43-a2a12cd72788");
enterpriseAccountSet.setIsActive(false);
enterpriseAccountSetMapper.updateByPrimaryKey(enterpriseAccountSet);
/*
* before update
* 1001 NULL 0
* 1001.01 1001 0
* 1001.02 1001 1
* 1001.01.01 1001.01 1
* update 1001.01 -> 1001.03 1001
* after update
* 1001 NULL 0
* 1001.03 1001 1
* 1001.02 1001 1
* 1001.01.01 1001.01 1
*/
//dto preparation
EnterpriseAccountDto enterpriseAccountDto = new EnterpriseAccountDto();
enterpriseAccountDto.setId("d3ce1d49-94bc-42b8-8add-b0894e3e8835");
enterpriseAccountDto.setCode("1001.03");
enterpriseAccountDto.setName("欧元");
enterpriseAccountDto.setFullName("现金-欧元");
enterpriseAccountDto.setEnterpriseAccountSetId("181b735c-d75c-4e64-8e43-a2a12cd72788");
enterpriseAccountDto.setDirection(-1);
enterpriseAccountDto.setAcctLevel(2);
enterpriseAccountDto.setAcctProp(3);
enterpriseAccountDto.setRuleType(2);
enterpriseAccountDto.setIsActive(true);
enterpriseAccountDto.setParentCode("1001");
enterpriseAccountDto.setParentFullName("现金");
OperationResultDto<List<EnterpriseAccountDto>> result = enterpriseAccountService.updateEnterpriseAccount(enterpriseAccountDto);
//check result
Assert.assertEquals(true, result.getResult());
//check enterpriseAccount
EnterpriseAccount epAccount100103 = enterpriseAccountService.getEnterpriseAccount("1001.03", "181b735c-d75c-4e64-8e43-a2a12cd72788");
EnterpriseAccount epAccount100102 = enterpriseAccountService.getEnterpriseAccount("1001.02", "181b735c-d75c-4e64-8e43-a2a12cd72788");
EnterpriseAccount epAccount10010101 = enterpriseAccountService.getEnterpriseAccount("1001.01.01", "181b735c-d75c-4e64-8e43-a2a12cd72788");
//Assert.assertEquals(true, epAccount100103.getIsLeaf());
Assert.assertEquals(true, epAccount100102.getIsLeaf());
Assert.assertEquals(true, epAccount10010101.getIsLeaf());
Assert.assertEquals("欧元", epAccount100103.getName());
Assert.assertEquals("1001", epAccount100103.getParentCode());
Assert.assertEquals("现金-欧元", epAccount100103.getFullName());
Assert.assertEquals(new Integer(3), epAccount100103.getAcctProp());
Assert.assertEquals(new Integer(2), epAccount100103.getAcctLevel());
Assert.assertEquals(new Integer(-1), epAccount100103.getDirection());
//check enterprise account set
EnterpriseAccountSet updatedEnterpriseAccountSet = enterpriseAccountSetMapper.selectByPrimaryKey("181b735c-d75c-4e64-8e43-a2a12cd72788");
Assert.assertEquals(true, updatedEnterpriseAccountSet.getIsActive());
//check operation log
Assert.assertEquals(1, operationLogEnterpriseMapper.countByExample(null));
}
@Test
public void validateImportEnterpriseAccountTestImportFormatError() {
OperationResultDto<List<EnterpriseAccountDto>> result = enterpriseAccountService.validateImportEnterpriseAccount("excel/customer-atms.xlsx");
Assert.assertEquals(false, result.getResult());
Assert.assertEquals(EnterpriseAccountMessage.EnterpriceAccountImportDataFormatError, result.getResultMsg());
}
@Test
public void validateImportEnterpriseAccountTestDataError() {
OperationResultDto<List<EnterpriseAccountDto>> result = enterpriseAccountService.validateImportEnterpriseAccount("excel/epaccount-acctprop-format-error.xlsx");
Assert.assertEquals(false, result.getResult());
Assert.assertEquals(EnterpriseAccountMessage.AcctPropFormatError, result.getResultMsg());
result = enterpriseAccountService.validateImportEnterpriseAccount("excel/epaccount-code-empty-error.xlsx");
Assert.assertEquals(false, result.getResult());
Assert.assertEquals(EnterpriseAccountMessage.CodeEmpty, result.getResultMsg());
result = enterpriseAccountService.validateImportEnterpriseAccount("excel/epaccount-code-maxlength-error.xlsx");
Assert.assertEquals(false, result.getResult());
Assert.assertEquals(EnterpriseAccountMessage.CodeMaxLength, result.getResultMsg());
result = enterpriseAccountService.validateImportEnterpriseAccount("excel/epaccount-direction-format-error.xlsx");
Assert.assertEquals(false, result.getResult());
Assert.assertEquals(EnterpriseAccountMessage.DirectionFormatError, result.getResultMsg());
result = enterpriseAccountService.validateImportEnterpriseAccount("excel/epaccount-name-maxlength-error.xlsx");
Assert.assertEquals(false, result.getResult());
Assert.assertEquals(EnterpriseAccountMessage.NameMaxLength, result.getResultMsg());
}
@Test
public void validateImportEnterpriseAccountTest() {
OperationResultDto<List<EnterpriseAccountDto>> result = enterpriseAccountService.validateImportEnterpriseAccount("excel/epaccount.xlsx");
Assert.assertEquals(true, result.getResult());
List<EnterpriseAccountDto> enterpriseAccountDtoList = result.getData();
Assert.assertEquals(6, enterpriseAccountDtoList.size());
EnterpriseAccountDto epAccount1001 = enterpriseAccountDtoList.get(0);
Assert.assertEquals("1001", epAccount1001.getCode());
Assert.assertEquals("库存现金", epAccount1001.getName());
Assert.assertEquals(new Integer(-1), epAccount1001.getAcctProp());
Assert.assertEquals(new Integer(1), epAccount1001.getDirection());
EnterpriseAccountDto epAccount100102 = enterpriseAccountDtoList.get(2);
Assert.assertEquals("100102", epAccount100102.getCode());
Assert.assertEquals("", epAccount100102.getName());
Assert.assertEquals(new Integer(2), epAccount100102.getAcctProp());
Assert.assertEquals(new Integer(-1), epAccount100102.getDirection());
}
@Test
public void addEnterpriseAccountSetAndImportDataTest() {
/*
* enterpriseAccountSetId="dd424793-46a4-4102-beaa-a7efe161d1ee"
* enterpriseAccountSetCode="CSBZKM"
* enterpriseAccountSetName="测试标准科目"
*/
//dto preparation
List<EnterpriseAccountDto> importData
= enterpriseAccountService.validateImportEnterpriseAccount("excel/epaccount_upload.xlsx").getData();
OperationResultDto<?> result = enterpriseAccountService.addEnterpriseAccountSetAndImportData("测试标准科目", "CSBZKM", importData);
//check result
Assert.assertEquals(true, result.getResult());
//check enterpriseAccountSet
EnterpriseAccountSet enterpriseAccountSet = enterpriseAccountSetMapper.selectByExample(null).get(0);
String enterpriseAccountSetId = enterpriseAccountSet.getId();
Assert.assertEquals("CSBZKM", enterpriseAccountSet.getCode());
Assert.assertEquals("测试标准科目", enterpriseAccountSet.getName());
Assert.assertEquals(true, enterpriseAccountSet.getIsActive());
//check enterpriseAccount
EnterpriseAccountExample example = new EnterpriseAccountExample();
example.createCriteria().andEnterpriseAccountSetIdEqualTo(enterpriseAccountSetId);
List<EnterpriseAccount> epAccountList = enterpriseAccountMapper.selectByExample(example);
Assert.assertEquals(97, epAccountList.size());
//1001
example = new EnterpriseAccountExample();
example.createCriteria().andEnterpriseAccountSetIdEqualTo(enterpriseAccountSetId).andCodeEqualTo("1001");
EnterpriseAccount epAccount1001 = enterpriseAccountMapper.selectByExample(example).get(0);
Assert.assertEquals("1001", epAccount1001.getCode());
Assert.assertEquals("库存现金", epAccount1001.getName());
Assert.assertEquals("库存现金", epAccount1001.getFullName());
Assert.assertEquals(false, epAccount1001.getIsLeaf());
Assert.assertEquals(new Integer(1), epAccount1001.getAcctLevel());
Assert.assertNull(epAccount1001.getParentCode());
//100105
example = new EnterpriseAccountExample();
example.createCriteria().andEnterpriseAccountSetIdEqualTo(enterpriseAccountSetId).andCodeEqualTo("100105");
EnterpriseAccount epAccount100105 = enterpriseAccountMapper.selectByExample(example).get(0);
Assert.assertEquals("100105", epAccount100105.getCode());
Assert.assertEquals("新加坡元", epAccount100105.getName());
Assert.assertEquals("库存现金-新加坡元", epAccount100105.getFullName());
Assert.assertEquals(true, epAccount100105.getIsLeaf());
Assert.assertEquals(new Integer(2), epAccount100105.getAcctLevel());
Assert.assertEquals("1001", epAccount100105.getParentCode());
//10020116
example = new EnterpriseAccountExample();
example.createCriteria().andEnterpriseAccountSetIdEqualTo(enterpriseAccountSetId).andCodeEqualTo("10020116");
EnterpriseAccount epAccount10020116 = enterpriseAccountMapper.selectByExample(example).get(0);
Assert.assertEquals("10020116", epAccount10020116.getCode());
Assert.assertEquals("浦发银行", epAccount10020116.getName());
Assert.assertEquals("银行存款-RMB-浦发银行", epAccount10020116.getFullName());
Assert.assertEquals(true, epAccount10020116.getIsLeaf());
Assert.assertEquals(new Integer(3), epAccount10020116.getAcctLevel());
Assert.assertEquals("100201", epAccount10020116.getParentCode());
//100203
example = new EnterpriseAccountExample();
example.createCriteria().andEnterpriseAccountSetIdEqualTo(enterpriseAccountSetId).andCodeEqualTo("100203");
EnterpriseAccount epAccount100203 = enterpriseAccountMapper.selectByExample(example).get(0);
Assert.assertEquals("100203", epAccount100203.getCode());
Assert.assertEquals("VND", epAccount100203.getName());
Assert.assertEquals("银行存款-VND", epAccount100203.getFullName());
Assert.assertEquals(false, epAccount100203.getIsLeaf());
Assert.assertEquals(new Integer(2), epAccount100203.getAcctLevel());
Assert.assertEquals("1002", epAccount100203.getParentCode());
//check operation log
List<OperationLogEnterPrise> operationLogs = operationLogEnterpriseMapper.selectByExample(null);
Assert.assertEquals(1, operationLogs.size());
}
@Test
public void repeatImportEnterpriseAccountSetTestImportAppend() {
/*
* enterpriseAccountSetId="dd424793-46a4-4102-beaa-a7efe161d1ee"
* enterpriseAccountSetCode="CSBZKM"
* enterpriseAccountSetName="测试标准科目"
*/
execSqlFile("sql/enterpriseAccountSet_data.sql");
EnterpriseAccountSetDto enterpriseAccountSetDto = new EnterpriseAccountSetDto();
enterpriseAccountSetDto.setId("dd424793-46a4-4102-beaa-a7efe161d1ee");
enterpriseAccountSetDto.setName("测试标准科目");
enterpriseAccountSetDto.setIsImportAppend(false);
//dto preparation
List<EnterpriseAccountDto> importData
= enterpriseAccountService.validateImportEnterpriseAccount("excel/epaccount_upload.xlsx").getData();
OperationResultDto<?> result = enterpriseAccountService.repeatImportEnterpriseAccountSet(enterpriseAccountSetDto, importData);
//check result
Assert.assertEquals(true, result.getResult());
//check enterpriseAccount
EnterpriseAccountExample example = new EnterpriseAccountExample();
example.createCriteria().andEnterpriseAccountSetIdEqualTo("dd424793-46a4-4102-beaa-a7efe161d1ee");
List<EnterpriseAccount> epAccountList = enterpriseAccountMapper.selectByExample(example);
Assert.assertEquals(97, epAccountList.size());
//1001
example = new EnterpriseAccountExample();
example.createCriteria().andEnterpriseAccountSetIdEqualTo("dd424793-46a4-4102-beaa-a7efe161d1ee").andCodeEqualTo("1001");
EnterpriseAccount epAccount1001 = enterpriseAccountMapper.selectByExample(example).get(0);
Assert.assertEquals("1001", epAccount1001.getCode());
Assert.assertEquals("库存现金", epAccount1001.getName());
Assert.assertEquals("库存现金", epAccount1001.getFullName());
Assert.assertEquals(false, epAccount1001.getIsLeaf());
Assert.assertEquals(new Integer(1), epAccount1001.getAcctLevel());
Assert.assertNull(epAccount1001.getParentCode());
//100105
example = new EnterpriseAccountExample();
example.createCriteria().andEnterpriseAccountSetIdEqualTo("dd424793-46a4-4102-beaa-a7efe161d1ee").andCodeEqualTo("100105");
EnterpriseAccount epAccount100105 = enterpriseAccountMapper.selectByExample(example).get(0);
Assert.assertEquals("100105", epAccount100105.getCode());
Assert.assertEquals("新加坡元", epAccount100105.getName());
Assert.assertEquals("库存现金-新加坡元", epAccount100105.getFullName());
Assert.assertEquals(true, epAccount100105.getIsLeaf());
Assert.assertEquals(new Integer(2), epAccount100105.getAcctLevel());
Assert.assertEquals("1001", epAccount100105.getParentCode());
//10020116
example = new EnterpriseAccountExample();
example.createCriteria().andEnterpriseAccountSetIdEqualTo("dd424793-46a4-4102-beaa-a7efe161d1ee").andCodeEqualTo("10020116");
EnterpriseAccount epAccount10020116 = enterpriseAccountMapper.selectByExample(example).get(0);
Assert.assertEquals("10020116", epAccount10020116.getCode());
Assert.assertEquals("浦发银行", epAccount10020116.getName());
Assert.assertEquals("银行存款-RMB-浦发银行", epAccount10020116.getFullName());
Assert.assertEquals(true, epAccount10020116.getIsLeaf());
Assert.assertEquals(new Integer(3), epAccount10020116.getAcctLevel());
Assert.assertEquals("100201", epAccount10020116.getParentCode());
//100203
example = new EnterpriseAccountExample();
example.createCriteria().andEnterpriseAccountSetIdEqualTo("dd424793-46a4-4102-beaa-a7efe161d1ee").andCodeEqualTo("100203");
EnterpriseAccount epAccount100203 = enterpriseAccountMapper.selectByExample(example).get(0);
Assert.assertEquals("100203", epAccount100203.getCode());
Assert.assertEquals("VND", epAccount100203.getName());
Assert.assertEquals("银行存款-VND", epAccount100203.getFullName());
Assert.assertEquals(false, epAccount100203.getIsLeaf());
Assert.assertEquals(new Integer(2), epAccount100203.getAcctLevel());
Assert.assertEquals("1002", epAccount100203.getParentCode());
//check operation log
List<OperationLogEnterPrise> operationLogs = operationLogEnterpriseMapper.selectByExample(null);
Assert.assertEquals(0, operationLogs.size());
}
@Test
public void repeatImportEnterpriseAccountSetTestNoImportAppend() {
/*
* enterpriseAccountSetId="dd424793-46a4-4102-beaa-a7efe161d1ee"
* enterpriseAccountSetCode="CSBZKM"
* enterpriseAccountSetName="测试标准科目"
*/
execSqlFile("sql/enterpriseAccountSet_data.sql");
EnterpriseAccountSetDto enterpriseAccountSetDto = new EnterpriseAccountSetDto();
enterpriseAccountSetDto.setId("dd424793-46a4-4102-beaa-a7efe161d1ee");
enterpriseAccountSetDto.setName("测试标准科目");
enterpriseAccountSetDto.setIsImportAppend(false);
//dto preparation
List<EnterpriseAccountDto> importData
= enterpriseAccountService.validateImportEnterpriseAccount("excel/epaccount_upload.xlsx").getData();
OperationResultDto<?> result = enterpriseAccountService.repeatImportEnterpriseAccountSet(enterpriseAccountSetDto, importData);
enterpriseAccountSetDto.setIsImportAppend(true);
result = enterpriseAccountService.repeatImportEnterpriseAccountSet(enterpriseAccountSetDto, importData);
//check result
Assert.assertEquals(true, result.getResult());
//check enterpriseAccount
EnterpriseAccountExample example = new EnterpriseAccountExample();
example.createCriteria().andEnterpriseAccountSetIdEqualTo("dd424793-46a4-4102-beaa-a7efe161d1ee");
List<EnterpriseAccount> epAccountList = enterpriseAccountMapper.selectByExample(example);
Assert.assertEquals(97+97, epAccountList.size());
//check operation log
List<OperationLogEnterPrise> operationLogs = operationLogEnterpriseMapper.selectByExample(null);
Assert.assertEquals(0, operationLogs.size());
}
@Test
public void clearRepeatEnterpriseAccountListTest() {
/*
* enterpriseAccountSetId="dd424793-46a4-4102-beaa-a7efe161d1ee"
* enterpriseAccountSetCode="CSBZKM"
* enterpriseAccountSetName="测试标准科目"
*/
execSqlFile("sql/enterpriseAccountSet_data.sql");
EnterpriseAccountSetDto enterpriseAccountSetDto = new EnterpriseAccountSetDto();
enterpriseAccountSetDto.setId("dd424793-46a4-4102-beaa-a7efe161d1ee");
enterpriseAccountSetDto.setName("测试标准科目");
enterpriseAccountSetDto.setIsImportAppend(false);
//upload twice
List<EnterpriseAccountDto> importData
= enterpriseAccountService.validateImportEnterpriseAccount("excel/epaccount_upload_for_repeatcode_test.xlsx").getData();
OperationResultDto<?> result = enterpriseAccountService.repeatImportEnterpriseAccountSet(enterpriseAccountSetDto, importData);
enterpriseAccountSetDto.setIsImportAppend(true);
result = enterpriseAccountService.repeatImportEnterpriseAccountSet(enterpriseAccountSetDto, importData);
//before clean repeat code
//check result
Assert.assertEquals(true, result.getResult());
//check enterpriseAccount
EnterpriseAccountExample example = new EnterpriseAccountExample();
example.createCriteria().andEnterpriseAccountSetIdEqualTo("dd424793-46a4-4102-beaa-a7efe161d1ee");
List<EnterpriseAccount> epAccountList = enterpriseAccountMapper.selectByExample(example);
Assert.assertEquals(6+6, epAccountList.size());
//dto preparation for clean
EnterpriseAccountSetDto cleanDto = new EnterpriseAccountSetDto();
cleanDto.setId("dd424793-46a4-4102-beaa-a7efe161d1ee");
cleanDto.setRepeatCodeList(Arrays.asList("1001", "100101", "100102", "100103", "100104", "100105"));
//clean repeat account
result = enterpriseAccountService.clearRepeatEnterpriseAccountList(cleanDto);
//check result
Assert.assertEquals(true, result.getResult());
//check enterpriseAccount
epAccountList = enterpriseAccountMapper.selectByExample(example);
Assert.assertEquals(6, epAccountList.size());
}
@Test
public void getAccountMappingOrgTest() {
//data preparation
execSqlFile("sql/get_accountmapping_org_data.sql");
List<AccountMappingDto> accountMappingDtoList = enterpriseAccountService.getAccountMappingOrg("5b4b8f88-571d-44c6-8002-c0716017d41e");
Assert.assertEquals(4, accountMappingDtoList.size());
}
}
package pwc.taxtech.atms.service.impl;
import org.joda.time.DateTime;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import pwc.taxtech.atms.CommonIT;
import pwc.taxtech.atms.CommonTestUtils;
import pwc.taxtech.atms.common.CommonUtils;
import pwc.taxtech.atms.common.OperationAction;
import pwc.taxtech.atms.common.OperationModule;
import pwc.taxtech.atms.common.message.EnterpriseAccountSetMessage;
import pwc.taxtech.atms.common.message.EnterpriseAccountSetOrgMessage;
import pwc.taxtech.atms.dpo.EnterpriseAccountSetOrgDto;
import pwc.taxtech.atms.dto.OperationResultDto;
import pwc.taxtech.atms.dto.epaccount.EnterpriseAccountSetDto;
import pwc.taxtech.atms.entity.EnterpriseAccountSet;
import pwc.taxtech.atms.entity.EnterpriseAccountSetOrg;
import pwc.taxtech.atms.entity.EnterpriseAccountSetOrgExample;
import pwc.taxtech.atms.entity.OperationLogEnterPrise;
import pwc.taxtech.atms.entity.OperationLogEnterPriseExample;
import pwc.taxtech.atms.service.EnterpriseAccountSetService;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
import static org.assertj.core.api.Assertions.assertThat;
public class EnterpriseAccountSetServiceIT extends CommonIT {
@Autowired private EnterpriseAccountSetService enterpriseAccountSetService;
@Before
public void setUp() {
cleanUpAllTables();
}
@Test
public void addEnterpriseAccountSetOrgTest() {
//data preparation
execSqlFile("sql/enterpriseAccountSet_org_validation_data.sql");
Calendar cal = Calendar.getInstance();
EnterpriseAccountSetOrg enterpriseAccountSetOrg = new EnterpriseAccountSetOrg();
enterpriseAccountSetOrg.setOrganizationId("bd5cfb8c-bc0d-4baf-8fe9-4b55811bf182");
//setorg1
enterpriseAccountSetOrg.setId(CommonUtils.getUUID());
enterpriseAccountSetOrg.setEnterpriseAccountSetId("dd424793-46a4-4102-beaa-a7efe161d1ee");
cal.set(2018, Calendar.MARCH, 1);
enterpriseAccountSetOrg.setEffectiveDate(cal.getTime());
cal.set(2018, Calendar.AUGUST, 1);
enterpriseAccountSetOrg.setExpiredDate(cal.getTime());
enterpriseAccountSetOrgMapper.insert(enterpriseAccountSetOrg);
CommonTestUtils.initTestAuth();
//dto preparation
EnterpriseAccountSetDto enterpriseAccountSetDto = new EnterpriseAccountSetDto();
enterpriseAccountSetDto.setId("dd424793-46a4-4102-beaa-a7efe161d1ee");
enterpriseAccountSetDto.setName("测试标准科目");
enterpriseAccountSetDto.setEnterpriseAccountSetOrgList(new ArrayList<>());
//setorg2
EnterpriseAccountSetOrgDto enterpriseAccountSetOrgDto = new EnterpriseAccountSetOrgDto();
enterpriseAccountSetOrgDto.setEnterpriseAccountSetId("dd424793-46a4-4102-beaa-a7efe161d1ee");
enterpriseAccountSetOrgDto.setOrganizationId("bd5cfb8c-bc0d-4baf-8fe9-4b55811bf182");
enterpriseAccountSetOrgDto.setEffectiveDateStr("2019-04");
enterpriseAccountSetOrgDto.setExpiredDateStr("2019-10");
enterpriseAccountSetDto.getEnterpriseAccountSetOrgList().add(enterpriseAccountSetOrgDto);
//setorg3
enterpriseAccountSetOrgDto = new EnterpriseAccountSetOrgDto();
enterpriseAccountSetOrgDto.setEnterpriseAccountSetId("dd424793-46a4-4102-beaa-a7efe161d1ee");
enterpriseAccountSetOrgDto.setOrganizationId("bd5cfb8c-bc0d-4baf-8fe9-4b55811bf182");
enterpriseAccountSetOrgDto.setEffectiveDateStr("2020-04");
enterpriseAccountSetOrgDto.setExpiredDateStr(null);
enterpriseAccountSetDto.getEnterpriseAccountSetOrgList().add(enterpriseAccountSetOrgDto);
OperationResultDto<?> result = enterpriseAccountSetService.addEnterpriseAccountSetOrg(enterpriseAccountSetDto);
//check result
Assert.assertEquals(true, result.getResult());
//check data
EnterpriseAccountSetOrgExample example = new EnterpriseAccountSetOrgExample();
example.createCriteria().andEnterpriseAccountSetIdEqualTo("dd424793-46a4-4102-beaa-a7efe161d1ee");
example.setOrderByClause("EffectiveDate ASC");
List<EnterpriseAccountSetOrg> enterpriseAccountSetOrgList = enterpriseAccountSetOrgMapper.selectByExample(example);
Assert.assertEquals(3, enterpriseAccountSetOrgList.size());
EnterpriseAccountSetOrg setOrg2 = enterpriseAccountSetOrgList.get(1);
Assert.assertEquals("dd424793-46a4-4102-beaa-a7efe161d1ee", setOrg2.getEnterpriseAccountSetId());
Assert.assertEquals("bd5cfb8c-bc0d-4baf-8fe9-4b55811bf182", setOrg2.getOrganizationId());
Assert.assertEquals("2019-04-01", new DateTime(setOrg2.getEffectiveDate()).toString("yyyy-MM-dd"));
Assert.assertEquals("2019-10-31", new DateTime(setOrg2.getExpiredDate()).toString("yyyy-MM-dd"));
EnterpriseAccountSetOrg setOrg3 = enterpriseAccountSetOrgList.get(2);
Assert.assertEquals("dd424793-46a4-4102-beaa-a7efe161d1ee", setOrg3.getEnterpriseAccountSetId());
Assert.assertEquals("bd5cfb8c-bc0d-4baf-8fe9-4b55811bf182", setOrg3.getOrganizationId());
Assert.assertEquals("2020-04-01", new DateTime(setOrg3.getEffectiveDate()).toString("yyyy-MM-dd"));
Assert.assertNull(setOrg3.getExpiredDate());
//check operation log
OperationLogEnterPriseExample operationLogEnterPriseExample = new OperationLogEnterPriseExample();
operationLogEnterPriseExample.setOrderByClause("createtime asc");
List<OperationLogEnterPrise> operationLogs = operationLogEnterpriseMapper.selectByExample(operationLogEnterPriseExample);
Assert.assertEquals(2, operationLogs.size());
OperationLogEnterPrise setOrgAddLog1 = operationLogs.get(0);
Assert.assertEquals("通用机构", setOrgAddLog1.getOperationContent());
Assert.assertEquals("测试标准科目", setOrgAddLog1.getOperationObject());
Assert.assertEquals(OperationModule.BasicDataEnterpriceAccount.name(), setOrgAddLog1.getModuleName());
Assert.assertEquals(OperationAction.AddRelevantOrgAction.name(), setOrgAddLog1.getOperationAction());
}
@Test
public void deleteEnterpriseAccountSetOrgTest() {
//data preparation
execSqlFile("sql/enterpriseAccountSet_data.sql");
execSqlFile("sql/enterpriseAccountSetOrg_data.sql");
CommonTestUtils.initTestAuth();
//dto preparation
EnterpriseAccountSetDto enterpriseAccountSetDto = new EnterpriseAccountSetDto();
enterpriseAccountSetDto.setId("2891e3dd-d673-49a2-845d-c759202056c6");
EnterpriseAccountSetOrgDto enterpriseAccountSetOrgDto = new EnterpriseAccountSetOrgDto();
enterpriseAccountSetOrgDto.setId("06430cbf-e177-4f65-9a2a-d650c36cb564");
enterpriseAccountSetOrgDto.setEnterpriseAccountSetId("2891e3dd-d673-49a2-845d-c759202056c6");
enterpriseAccountSetOrgDto.setOrganizationId("bd5cfb8c-bc0d-4baf-8fe9-4b55811bf182");
enterpriseAccountSetOrgDto.setOrganizationName("通用机构");
enterpriseAccountSetDto.setEnterpriseAccountSetOrgList(new ArrayList<>());
enterpriseAccountSetDto.getEnterpriseAccountSetOrgList().add(enterpriseAccountSetOrgDto);
OperationResultDto<?> result = enterpriseAccountSetService.deleteEnterpriseAccountSetOrg(enterpriseAccountSetDto);
//check result
Assert.assertEquals(true, result.getResult());
//check data
EnterpriseAccountSetOrgExample example = new EnterpriseAccountSetOrgExample();
example.createCriteria().andEnterpriseAccountSetIdEqualTo("2891e3dd-d673-49a2-845d-c759202056c6");
Assert.assertEquals(4, enterpriseAccountSetOrgMapper.countByExample(example));
//check operation log
OperationLogEnterPriseExample operationLogEnterPriseExample = new OperationLogEnterPriseExample();
List<OperationLogEnterPrise> operationLogs = operationLogEnterpriseMapper.selectByExample(operationLogEnterPriseExample);
Assert.assertEquals(1, operationLogs.size());
OperationLogEnterPrise setOrgDeleteLog = operationLogs.get(0);
Assert.assertEquals("通用机构", setOrgDeleteLog.getOperationContent());
Assert.assertEquals("指标分析", setOrgDeleteLog.getOperationObject());
Assert.assertEquals(OperationModule.BasicDataEnterpriceAccount.name(), setOrgDeleteLog.getModuleName());
Assert.assertEquals(OperationAction.DeleteRelevantOrg.name(), setOrgDeleteLog.getOperationAction());
}
@Test
public void enterpriseAccountSetOrgValidateTestWithEffectiveDateGreaterThanExpiredDate() {
//data preparation
//e4ffadee-b545-4781-b504-fe686333d4d2, VALERROR, 测试验证错误
//execSqlFile("sql/enterpriseAccountSet_org_validation_data.sql");
EnterpriseAccountSetDto enterpriseAccountSetDto = new EnterpriseAccountSetDto();
enterpriseAccountSetDto.setId("e4ffadee-b545-4781-b504-fe686333d4d2");
EnterpriseAccountSetOrgDto enterpriseAccountSetOrgDto = new EnterpriseAccountSetOrgDto();
Calendar cal = Calendar.getInstance();
cal.set(2018, Calendar.APRIL, 1);
enterpriseAccountSetOrgDto.setEffectiveDate(cal.getTime());
cal.set(2018, Calendar.MARCH, 1);
enterpriseAccountSetOrgDto.setExpiredDate(cal.getTime());
enterpriseAccountSetDto.setEnterpriseAccountSetOrgList(new ArrayList<>());
enterpriseAccountSetDto.getEnterpriseAccountSetOrgList().add(enterpriseAccountSetOrgDto);
OperationResultDto<?> result = enterpriseAccountSetService.enterpriseAccountSetOrgValidate(enterpriseAccountSetDto);
//check result
Assert.assertEquals(false, result.getResult());
Assert.assertEquals(EnterpriseAccountSetOrgMessage.EffectiveDateAreaProblem, result.getResultMsg());
}
@Test
public void enterpriseAccountSetOrgValidateTestWithTimeOverlap() {
//data preparation
execSqlFile("sql/enterpriseAccountSet_org_validation_data.sql");
Calendar cal = Calendar.getInstance();
EnterpriseAccountSetOrg enterpriseAccountSetOrg = new EnterpriseAccountSetOrg();
enterpriseAccountSetOrg.setOrganizationId("bd5cfb8c-bc0d-4baf-8fe9-4b55811bf182");
//setorg1
enterpriseAccountSetOrg.setId(CommonUtils.getUUID());
enterpriseAccountSetOrg.setEnterpriseAccountSetId("e4ffadee-b545-4781-b504-fe686333d4d2");
cal.set(2018, Calendar.MARCH, 1);
enterpriseAccountSetOrg.setEffectiveDate(cal.getTime());
cal.set(2018, Calendar.AUGUST, 1);
enterpriseAccountSetOrg.setExpiredDate(cal.getTime());
enterpriseAccountSetOrgMapper.insert(enterpriseAccountSetOrg);
//setorg2
enterpriseAccountSetOrg.setId(CommonUtils.getUUID());
enterpriseAccountSetOrg.setEnterpriseAccountSetId("37175dae-0b7f-4dc7-ac58-d8b4009ef0be");
cal.set(2018, Calendar.SEPTEMBER, 1);
enterpriseAccountSetOrg.setEffectiveDate(cal.getTime());
cal.set(2018, Calendar.DECEMBER, 1);
enterpriseAccountSetOrg.setExpiredDate(cal.getTime());
enterpriseAccountSetOrgMapper.insert(enterpriseAccountSetOrg);
//dto preparation
EnterpriseAccountSetDto enterpriseAccountSetDto = new EnterpriseAccountSetDto();
enterpriseAccountSetDto.setId("dd424793-46a4-4102-beaa-a7efe161d1ee");
EnterpriseAccountSetOrgDto enterpriseAccountSetOrgDto = new EnterpriseAccountSetOrgDto();
//setorg3
enterpriseAccountSetOrgDto.setEnterpriseAccountSetId("dd424793-46a4-4102-beaa-a7efe161d1ee");
enterpriseAccountSetOrgDto.setOrganizationId("bd5cfb8c-bc0d-4baf-8fe9-4b55811bf182");
cal.set(2018, Calendar.APRIL, 1);
enterpriseAccountSetOrgDto.setEffectiveDate(cal.getTime());
cal.set(2018, Calendar.OCTOBER, 1);
enterpriseAccountSetOrgDto.setExpiredDate(cal.getTime());
enterpriseAccountSetDto.setEnterpriseAccountSetOrgList(new ArrayList<>());
enterpriseAccountSetDto.getEnterpriseAccountSetOrgList().add(enterpriseAccountSetOrgDto);
OperationResultDto<?> result = enterpriseAccountSetService.enterpriseAccountSetOrgValidate(enterpriseAccountSetDto);
Assert.assertEquals(false, result.getResult());
Assert.assertEquals(EnterpriseAccountSetOrgMessage.EnterpriseAccountSetOrgDateTimeOverlap, result.getResultMsg());
}
@Test
public void enterpriseAccountSetOrgValidateTestWithTwicePerYear() {
//data preparation
execSqlFile("sql/enterpriseAccountSet_org_validation_data.sql");
Calendar cal = Calendar.getInstance();
EnterpriseAccountSetOrg enterpriseAccountSetOrg = new EnterpriseAccountSetOrg();
enterpriseAccountSetOrg.setOrganizationId("bd5cfb8c-bc0d-4baf-8fe9-4b55811bf182");
//setorg1
enterpriseAccountSetOrg.setId(CommonUtils.getUUID());
enterpriseAccountSetOrg.setEnterpriseAccountSetId("e4ffadee-b545-4781-b504-fe686333d4d2");
cal.set(2018, Calendar.MARCH, 1);
enterpriseAccountSetOrg.setEffectiveDate(cal.getTime());
cal.set(2018, Calendar.MAY, 1);
enterpriseAccountSetOrg.setExpiredDate(cal.getTime());
enterpriseAccountSetOrgMapper.insert(enterpriseAccountSetOrg);
//dto preparation
EnterpriseAccountSetDto enterpriseAccountSetDto = new EnterpriseAccountSetDto();
enterpriseAccountSetDto.setId("e4ffadee-b545-4781-b504-fe686333d4d2");
EnterpriseAccountSetOrgDto enterpriseAccountSetOrgDto = new EnterpriseAccountSetOrgDto();
//setorg2
enterpriseAccountSetOrgDto.setEnterpriseAccountSetId("e4ffadee-b545-4781-b504-fe686333d4d2");
enterpriseAccountSetOrgDto.setOrganizationId("bd5cfb8c-bc0d-4baf-8fe9-4b55811bf182");
cal.set(2018, Calendar.JULY, 1);
enterpriseAccountSetOrgDto.setEffectiveDate(cal.getTime());
cal.set(2019, Calendar.FEBRUARY, 1);
enterpriseAccountSetOrgDto.setExpiredDate(cal.getTime());
enterpriseAccountSetDto.setEnterpriseAccountSetOrgList(new ArrayList<>());
enterpriseAccountSetDto.getEnterpriseAccountSetOrgList().add(enterpriseAccountSetOrgDto);
OperationResultDto<?> result = enterpriseAccountSetService.enterpriseAccountSetOrgValidate(enterpriseAccountSetDto);
Assert.assertEquals(false, result.getResult());
Assert.assertEquals(EnterpriseAccountSetOrgMessage.EnterpriseAccountSetOrgOnlyOncePerYear, result.getResultMsg());
}
@Test
public void getEnterpriseAccountSetListTest() {
//data preparation
execSqlFile("sql/enterpriseAccountSet_data.sql");
List<EnterpriseAccountSetDto> enterpriseAccountSetList = enterpriseAccountSetService.getEnterpriseAccountSetList();
Assert.assertEquals(7, enterpriseAccountSetList.size());
EnterpriseAccountSetDto aacDemo = enterpriseAccountSetList.get(0);
Assert.assertEquals("885c2ddc-3164-4d57-bab8-12de3d9f83a0", aacDemo.getId());
Assert.assertEquals("518000", aacDemo.getCode());
Assert.assertEquals("AAC Demo", aacDemo.getName());
Assert.assertEquals(true, aacDemo.getIsActive());
}
@Test
public void getEnterpriseAccountSetTestWithNoOrganization() {
//data preparation
execSqlFile("sql/enterpriseAccountSet_data.sql");
execSqlFile("sql/enterpriseAccountSetOrg_data.sql");
execSqlFile("sql/organization_data_for_enterpriseAccountSet_test.sql");
EnterpriseAccountSetDto enterpriseAccountSetDto = enterpriseAccountSetService.getEnterpriseAccountSet("7bba71c9-97a9-4841-b9cb-8140347800ea");
//check dto
//Assert.assertEquals(null, enterpriseAccountSetDto.getEnterpriseAccountSetOrgList());
Assert.assertTrue("Not empty", enterpriseAccountSetDto.getEnterpriseAccountSetOrgList().isEmpty());
Assert.assertEquals("000010", enterpriseAccountSetDto.getCode());
Assert.assertEquals("账套无机构", enterpriseAccountSetDto.getName());
}
@Test
public void getEnterpriseAccountSetTestWithOrganizations() {
//data preparation
execSqlFile("sql/enterpriseAccountSet_data.sql");
execSqlFile("sql/enterpriseAccountSetOrg_data.sql");
execSqlFile("sql/organization_data_for_enterpriseAccountSet_test.sql");
EnterpriseAccountSetDto enterpriseAccountSetDto = enterpriseAccountSetService.getEnterpriseAccountSet("2891e3dd-d673-49a2-845d-c759202056c6");
//check dto
Assert.assertEquals("6A274BB1-4360-4DD0-95C3-A785FFCCDCC2", enterpriseAccountSetDto.getCode());
Assert.assertEquals("指标分析", enterpriseAccountSetDto.getName());
//check organization
Assert.assertEquals(5, enterpriseAccountSetDto.getEnterpriseAccountSetOrgList().size());
List<EnterpriseAccountSetOrgDto> epAccountSetOrgDtoList = enterpriseAccountSetDto.getEnterpriseAccountSetOrgList()
.stream().sorted(Comparator.comparing(epAccountSetOrgDto -> epAccountSetOrgDto.getOrganizationName()))
.collect(Collectors.toList());
Assert.assertEquals("06430cbf-e177-4f65-9a2a-d650c36cb564", epAccountSetOrgDtoList.get(4).getId());
Assert.assertEquals("2891e3dd-d673-49a2-845d-c759202056c6", epAccountSetOrgDtoList.get(4).getEnterpriseAccountSetId());
Assert.assertEquals("2017-01", epAccountSetOrgDtoList.get(4).getEffectiveDateStr());
Assert.assertEquals("2017-06", epAccountSetOrgDtoList.get(4).getExpiredDateStr());
Assert.assertEquals("bd5cfb8c-bc0d-4baf-8fe9-4b55811bf182", epAccountSetOrgDtoList.get(4).getOrganizationId());
Assert.assertEquals("通用机构", epAccountSetOrgDtoList.get(4).getOrganizationName());
}
@Test
public void updateEnterpriseAccountSetOrgTestWithoutUpdateOrganization() {
//data preparation
execSqlFile("sql/enterpriseAccountSet_org_validation_data.sql");
Calendar cal = Calendar.getInstance();
EnterpriseAccountSetOrg enterpriseAccountSetOrg = new EnterpriseAccountSetOrg();
enterpriseAccountSetOrg.setOrganizationId("bd5cfb8c-bc0d-4baf-8fe9-4b55811bf182");
//setorg1
String enterpriseAccountSetOrgId = CommonUtils.getUUID();
enterpriseAccountSetOrg.setId(enterpriseAccountSetOrgId);
enterpriseAccountSetOrg.setEnterpriseAccountSetId("dd424793-46a4-4102-beaa-a7efe161d1ee");
cal.set(2018, Calendar.MARCH, 1);
enterpriseAccountSetOrg.setEffectiveDate(cal.getTime());
cal.set(2018, Calendar.AUGUST, 31);
enterpriseAccountSetOrg.setExpiredDate(cal.getTime());
enterpriseAccountSetOrgMapper.insert(enterpriseAccountSetOrg);
CommonTestUtils.initTestAuth();
//dto preparation
EnterpriseAccountSetOrgDto enterpriseAccountSetOrgDto = new EnterpriseAccountSetOrgDto();
enterpriseAccountSetOrgDto.setId(enterpriseAccountSetOrgId);
enterpriseAccountSetOrgDto.setEnterpriseAccountSetId("dd424793-46a4-4102-beaa-a7efe161d1ee");
enterpriseAccountSetOrgDto.setEnterpriseAccountSetName("测试标准科目");
enterpriseAccountSetOrgDto.setOrganizationId("bd5cfb8c-bc0d-4baf-8fe9-4b55811bf182");
enterpriseAccountSetOrgDto.setOrganizationName("通用机构");
enterpriseAccountSetOrgDto.setEffectiveDateStr("2019-04");
enterpriseAccountSetOrgDto.setExpiredDateStr("2019-10");
OperationResultDto<?> result = enterpriseAccountSetService.updateEnterpriseAccountSetOrg(enterpriseAccountSetOrgDto);
//check result
Assert.assertEquals(true, result.getResult());
//check data
EnterpriseAccountSetOrgExample example = new EnterpriseAccountSetOrgExample();
example.createCriteria().andEnterpriseAccountSetIdEqualTo("dd424793-46a4-4102-beaa-a7efe161d1ee");
example.setOrderByClause("EffectiveDate ASC");
List<EnterpriseAccountSetOrg> enterpriseAccountSetOrgList = enterpriseAccountSetOrgMapper.selectByExample(example);
Assert.assertEquals(1, enterpriseAccountSetOrgList.size());
EnterpriseAccountSetOrg setOrg = enterpriseAccountSetOrgList.get(0);
Assert.assertEquals("dd424793-46a4-4102-beaa-a7efe161d1ee", setOrg.getEnterpriseAccountSetId());
Assert.assertEquals("bd5cfb8c-bc0d-4baf-8fe9-4b55811bf182", setOrg.getOrganizationId());
Assert.assertEquals("2019-04-01", new DateTime(setOrg.getEffectiveDate()).toString("yyyy-MM-dd"));
Assert.assertEquals("2019-10-31", new DateTime(setOrg.getExpiredDate()).toString("yyyy-MM-dd"));
//check operation log
OperationLogEnterPriseExample operationLogEnterPriseExample = new OperationLogEnterPriseExample();
operationLogEnterPriseExample.setOrderByClause("createtime asc");
List<OperationLogEnterPrise> operationLogs = operationLogEnterpriseMapper.selectByExample(operationLogEnterPriseExample);
Assert.assertEquals(1, operationLogs.size());
OperationLogEnterPrise setOrgUpdateLog = operationLogs.get(0);
Assert.assertEquals("通用机构", setOrgUpdateLog.getOperationContent());
Assert.assertEquals("测试标准科目", setOrgUpdateLog.getOperationObject());
Assert.assertEquals("2018-03,2018-08", setOrgUpdateLog.getOriginalState());
Assert.assertEquals("2019-04,2019-10", setOrgUpdateLog.getUpdateState());
Assert.assertEquals(OperationModule.BasicDataEnterpriceAccount.name(), setOrgUpdateLog.getModuleName());
Assert.assertEquals(OperationAction.UpdateRelevantOrg.name(), setOrgUpdateLog.getOperationAction());
}
@Test
public void updateEnterpriseAccountSetOrgTestWithUpdateOrganization() {
//data preparation
execSqlFile("sql/enterpriseAccountSet_org_validation_data.sql");
Calendar cal = Calendar.getInstance();
EnterpriseAccountSetOrg enterpriseAccountSetOrg = new EnterpriseAccountSetOrg();
enterpriseAccountSetOrg.setOrganizationId("bd5cfb8c-bc0d-4baf-8fe9-4b55811bf182");
//setorg1
String enterpriseAccountSetOrgId = CommonUtils.getUUID();
enterpriseAccountSetOrg.setId(enterpriseAccountSetOrgId);
enterpriseAccountSetOrg.setEnterpriseAccountSetId("dd424793-46a4-4102-beaa-a7efe161d1ee");
cal.set(2018, Calendar.MARCH, 1);
enterpriseAccountSetOrg.setEffectiveDate(cal.getTime());
cal.set(2018, Calendar.AUGUST, 31);
enterpriseAccountSetOrg.setExpiredDate(cal.getTime());
enterpriseAccountSetOrgMapper.insert(enterpriseAccountSetOrg);
CommonTestUtils.initTestAuth();
//dto preparation
EnterpriseAccountSetOrgDto enterpriseAccountSetOrgDto = new EnterpriseAccountSetOrgDto();
enterpriseAccountSetOrgDto.setId(enterpriseAccountSetOrgId);
enterpriseAccountSetOrgDto.setEnterpriseAccountSetId("dd424793-46a4-4102-beaa-a7efe161d1ee");
enterpriseAccountSetOrgDto.setEnterpriseAccountSetName("测试标准科目");
enterpriseAccountSetOrgDto.setOrganizationId("0db8caa7-2e15-4f83-89f3-221da79625d1");
enterpriseAccountSetOrgDto.setOrganizationName("华天证券有限公司");
enterpriseAccountSetOrgDto.setEffectiveDateStr("2019-04");
enterpriseAccountSetOrgDto.setExpiredDateStr("2019-10");
OperationResultDto<?> result = enterpriseAccountSetService.updateEnterpriseAccountSetOrg(enterpriseAccountSetOrgDto);
//check result
Assert.assertEquals(true, result.getResult());
//check data
EnterpriseAccountSetOrgExample example = new EnterpriseAccountSetOrgExample();
example.createCriteria().andEnterpriseAccountSetIdEqualTo("dd424793-46a4-4102-beaa-a7efe161d1ee");
example.setOrderByClause("EffectiveDate ASC");
List<EnterpriseAccountSetOrg> enterpriseAccountSetOrgList = enterpriseAccountSetOrgMapper.selectByExample(example);
Assert.assertEquals(1, enterpriseAccountSetOrgList.size());
EnterpriseAccountSetOrg setOrg = enterpriseAccountSetOrgList.get(0);
Assert.assertEquals("dd424793-46a4-4102-beaa-a7efe161d1ee", setOrg.getEnterpriseAccountSetId());
Assert.assertEquals("0db8caa7-2e15-4f83-89f3-221da79625d1", setOrg.getOrganizationId());
Assert.assertEquals("2019-04-01", new DateTime(setOrg.getEffectiveDate()).toString("yyyy-MM-dd"));
Assert.assertEquals("2019-10-31", new DateTime(setOrg.getExpiredDate()).toString("yyyy-MM-dd"));
//check operation log
OperationLogEnterPriseExample operationLogEnterPriseExample = new OperationLogEnterPriseExample();
operationLogEnterPriseExample.setOrderByClause("createtime asc");
List<OperationLogEnterPrise> operationLogs = operationLogEnterpriseMapper.selectByExample(operationLogEnterPriseExample);
Assert.assertEquals(1, operationLogs.size());
OperationLogEnterPrise setOrgUpdateLog = operationLogs.get(0);
Assert.assertEquals("通用机构", setOrgUpdateLog.getOperationContent());
Assert.assertEquals("测试标准科目", setOrgUpdateLog.getOperationObject());
Assert.assertEquals("通用机构:2018-03,2018-08", setOrgUpdateLog.getOriginalState());
Assert.assertEquals("华天证券有限公司:2019-04,2019-10", setOrgUpdateLog.getUpdateState());
Assert.assertEquals(OperationModule.BasicDataEnterpriceAccount.name(), setOrgUpdateLog.getModuleName());
Assert.assertEquals(OperationAction.UpdateRelevantOrg.name(), setOrgUpdateLog.getOperationAction());
}
@Test
public void updateEnterpriseAccountSetTest() {
//data preparation
execSqlFile("sql/enterpriseAccountSet_data.sql");
CommonTestUtils.initTestAuth();
EnterpriseAccountSetDto enterpriseAccountSetDto = new EnterpriseAccountSetDto();
enterpriseAccountSetDto.setId("885c2ddc-3164-4d57-bab8-12de3d9f83a0");
enterpriseAccountSetDto.setName("NameUpdate");
enterpriseAccountSetDto.setCode("CodeUpdate");
OperationResultDto<?> result = enterpriseAccountSetService.updateEnterpriseAccountSet(enterpriseAccountSetDto);
//check result
Assert.assertEquals(true, result.getResult());
//check data
EnterpriseAccountSet updateEntity = enterpriseAccountSetMapper.selectByPrimaryKey("885c2ddc-3164-4d57-bab8-12de3d9f83a0");
Assert.assertEquals("NameUpdate", updateEntity.getName());
Assert.assertEquals("CodeUpdate", updateEntity.getCode());
//check operation Log
OperationLogEnterPriseExample operationLogEnterPriseExample = new OperationLogEnterPriseExample();
operationLogEnterPriseExample.setOrderByClause("createtime asc");
List<OperationLogEnterPrise> operationLogs = operationLogEnterpriseMapper.selectByExample(operationLogEnterPriseExample);
Assert.assertEquals(2, operationLogs.size());
assertThat(operationLogs).extracting("operationObject").contains("518000");
assertThat(operationLogs).extracting("originalState").contains("518000", "AAC Demo");
assertThat(operationLogs).extracting("updateState").contains("CodeUpdate", "NameUpdate");
/*OperationLogEnterPrise codeChangeLog = operationLogs.get(0);
Assert.assertEquals("518000", codeChangeLog.getOperationObject());
Assert.assertEquals("518000", codeChangeLog.getOriginalState());
Assert.assertEquals("CodeUpdate", codeChangeLog.getUpdateState());
OperationLogEnterPrise nameChangeLog = operationLogs.get(1);
Assert.assertEquals("518000", nameChangeLog.getOperationObject());
Assert.assertEquals("AAC Demo", nameChangeLog.getOriginalState());
Assert.assertEquals("NameUpdate", nameChangeLog.getUpdateState());*/
}
@Test
public void updateEnterpriseAccountSetTestWithCodeDuplicate() {
//data preparation
execSqlFile("sql/enterpriseAccountSet_data.sql");
CommonTestUtils.initTestAuth();
EnterpriseAccountSetDto enterpriseAccountSetDto = new EnterpriseAccountSetDto();
enterpriseAccountSetDto.setId("885c2ddc-3164-4d57-bab8-12de3d9f83a0");
enterpriseAccountSetDto.setName("NameUpdate");
enterpriseAccountSetDto.setCode("6A274BB1-4360-4DD0-95C3-A785FFCCDCC2");
OperationResultDto<?> result = enterpriseAccountSetService.updateEnterpriseAccountSet(enterpriseAccountSetDto);
//check result
Assert.assertEquals(false, result.getResult());
Assert.assertEquals(EnterpriseAccountSetMessage.EnterpriseAccountSetCodeRepeat, result.getResultMsg());
}
@Test
public void updateEnterpriseAccountSetTestWithNameDuplicate() {
//data preparation
execSqlFile("sql/enterpriseAccountSet_data.sql");
CommonTestUtils.initTestAuth();
EnterpriseAccountSetDto enterpriseAccountSetDto = new EnterpriseAccountSetDto();
enterpriseAccountSetDto.setId("885c2ddc-3164-4d57-bab8-12de3d9f83a0");
enterpriseAccountSetDto.setName("指标分析");
enterpriseAccountSetDto.setCode("CodeUpdate");
OperationResultDto<?> result = enterpriseAccountSetService.updateEnterpriseAccountSet(enterpriseAccountSetDto);
//check result
Assert.assertEquals(false, result.getResult());
Assert.assertEquals(EnterpriseAccountSetMessage.EnterpriseAccountSetNameRepeat, result.getResultMsg());
}
}
package pwc.taxtech.atms.service.impl;
import static org.assertj.core.api.Assertions.assertThat;
import java.io.IOException;
import java.io.InputStream;
import java.util.Collection;
import java.util.Map;
import org.apache.commons.io.FileUtils;
import org.junit.Assert;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.core.io.ClassPathResource;
import pwc.taxtech.atms.dto.OperationResultDto;
public class FileServiceTest {
private FileService fileService = new FileService();
private static final Logger logger = LoggerFactory.getLogger(FileServiceTest.class);
@Test
public void saveTempFile() throws IOException {
ClassPathResource res = new ClassPathResource("excel/customer-atms.xlsx");
logger.debug("print input file url:" + res.getURL());
InputStream inputStream = res.getInputStream();
// String.format("%s/unit_test/testfile.xlsx",
// FileUtils.getTempDirectory().getAbsolutePath());
String filePath = FileUtils.getTempDirectory().getAbsolutePath() + "/unit_test/testfile_"
+ System.currentTimeMillis() + ".xlsx";
// System.out.println("target filePath:" + filePath);
OperationResultDto<Object> result = fileService.saveFile(inputStream, filePath);
Assert.assertTrue(result.getResult());
}
@Test
public void importFileThenGetMap() throws IOException {
ClassPathResource res = new ClassPathResource("excel/customer-atms.xlsx");
Collection<Map> collection = fileService.readExcelAndClose(res.getInputStream());
assertThat(collection).isNotEmpty();
// System.out.println(JSON.toJSONString(collection, true));
}
}
package pwc.taxtech.atms.service.impl;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import pwc.taxtech.atms.CommonIT;
import pwc.taxtech.atms.dao.MailQueueMapper;
import pwc.taxtech.atms.dto.MailMto;
import pwc.taxtech.atms.entity.MailQueue;
import pwc.taxtech.atms.service.CommonService;
import java.util.Date;
public class MailServiceIT extends CommonIT {
private static final Logger logger = LoggerFactory.getLogger(MailServiceIT.class);
@Autowired
private CommonService commonService;
@Autowired
private MailQueueMapper mailQueueMapper;
@Before
public void setUp() {
mailQueueMapper.deleteByExample(null);
}
@Test
public void sendMail() {
MailMto mailmto = new MailMto();
mailmto.setTo("test@test.com");
mailmto.setSubject("sub1");
mailmto.setContent("content1");
commonService.sendMail(mailmto);
long count = mailQueueMapper.countByExample(null);
Assert.assertTrue(count > 0);
}
@Test
public void insertThenCount() {
MailQueue record = new MailQueue();
record.setAppcode("appcode1");
record.setMto("a@a.com");
record.setMfrom("from@a.com");
record.setReplyto("from@a.com");
record.setSubject("subject1中文");
record.setContent("aaabbb");
record.setSubmitby("by1");
record.setSubmitdate(new Date());
record.setPostedflag("N");
record.setSenddate(new Date());
record.setImmediateflag("N");
Assert.assertNull(record.getMailseq());
int inserted = mailQueueMapper.insert(record);
// logger.debug("inserted:{}", inserted);
Assert.assertTrue(inserted > 0);
// logger.debug("record.getMailseq():{}", record.getMailseq());
Assert.assertNotNull(record.getMailseq());
long count = mailQueueMapper.countByExample(null);
// logger.debug("MailQueue count:{}", count);
Assert.assertTrue(count > 0);
}
}
package pwc.taxtech.atms.service.impl;
import java.util.List;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import pwc.taxtech.atms.CommonIT;
import pwc.taxtech.atms.dto.MenuDisplayDto;
import pwc.taxtech.atms.dto.MenuDto;
import pwc.taxtech.atms.security.JwtAuthenticationProvider;
import pwc.taxtech.atms.security.JwtAuthenticationToken;
import pwc.taxtech.atms.service.MenuService;
public class MenuServiceIT extends CommonIT {
private static Logger logger = LoggerFactory.getLogger(MenuServiceIT.class);
@Autowired
private MenuService menuService;
@Autowired
private JwtAuthenticationProvider jwtAuthenticationProvider;
@Before
public void init() {
execSqlFile("sql/menu.sql");
// get current user name
Authentication request = new JwtAuthenticationToken("xxxx");
Authentication authenticaiton = jwtAuthenticationProvider.authenticate(request);
SecurityContextHolder.getContext().setAuthentication(authenticaiton);
}
@Test
public void getMenusForDisplayTest() {
logger.debug("Start to test getMenusForDisplay");
Integer serviceId = 1;
List<MenuDisplayDto> menuDisplayDtos = menuService.getMenusForDisplay(serviceId);
Assert.assertNotNull(menuDisplayDtos);
Assert.assertEquals(2, menuDisplayDtos.size());
for (MenuDisplayDto menuDisplayDto : menuDisplayDtos) {
assertSubDisplayMenus("apps", menuDisplayDto, 2);
assertSubDisplayMenus("assignment", menuDisplayDto, 4);
for (MenuDisplayDto subMenuDto : menuDisplayDto.getSubMenus()) {
assertSubDisplayMenus("dns", subMenuDto, 4);
assertSubDisplayMenus("local_atm", subMenuDto, 2);
}
}
}
@Test
public void getMenusTest() {
logger.debug("Start to test getMenus");
Integer serviceId = 1;
List<MenuDto> menuDtos = menuService.getMenus(serviceId);
Assert.assertNotNull(menuDtos);
Assert.assertEquals(2, menuDtos.size());
for (MenuDto menuDto : menuDtos) {
assertSubMenus("apps", menuDto, 2);
assertSubMenus("assignment", menuDto, 5);
for (MenuDto subMenuDto : menuDto.getSubMenus()) {
assertSubMenus("dns", subMenuDto, 4);
assertSubMenus("local_atm", subMenuDto, 2);
}
}
}
private void assertSubDisplayMenus(String iconClassName, MenuDisplayDto menuDisplayDto, int menuSize) {
if (menuDisplayDto.getIconClassName().equals(iconClassName)) {
Assert.assertNotNull(menuDisplayDto.getSubMenus());
Assert.assertEquals(menuDisplayDto.getSubMenus().size(), menuSize);
}
}
private void assertSubMenus(String iconClassName, MenuDto menuDto, int menuSize) {
if (menuDto.getIconClassName().equals(iconClassName)) {
Assert.assertNotNull(menuDto.getSubMenus());
Assert.assertEquals(menuDto.getSubMenus().size(), menuSize);
}
}
@After
public void clean() {
cleanUpMenuTable();
}
}
package pwc.taxtech.atms.service.impl;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import pwc.taxtech.atms.CommonIT;
import pwc.taxtech.atms.dpo.OrgBasicDto;
import pwc.taxtech.atms.dpo.OrganizationDto;
import pwc.taxtech.atms.dto.IndustryDto;
import pwc.taxtech.atms.dto.OrganizationValidateDto;
import pwc.taxtech.atms.dto.dimension.DimensionOrgDtoDashboard;
import pwc.taxtech.atms.dto.navtree.NavTreeDto;
import pwc.taxtech.atms.security.JwtAuthenticationProvider;
import pwc.taxtech.atms.security.JwtAuthenticationToken;
import pwc.taxtech.atms.service.OrganizationService;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
public class OrganizationServiceIT extends CommonIT {
private static Logger logger = LoggerFactory.getLogger(MenuServiceIT.class);
@Autowired
OrganizationService organizationService;
@Autowired
ObjectMapper objectMapper;
@Autowired
private JwtAuthenticationProvider jwtAuthenticationProvider;
@Before
public void setUp() {
cleanUpAllTables();
}
@Test
public void getOrganizationFilterListTest() {
// data preparation
execSqlFile("sql/organization_filter_list_data.sql");
List<OrganizationDto> organizationDtoList = organizationService.getOrganizationFilterList();
// check data
Assert.assertEquals(8, organizationDtoList.size());
OrganizationDto organizationDto = organizationDtoList.get(0);
Assert.assertEquals("50eb2234-2135-4109-b9f8-66ef81106d26", organizationDto.getId());
Assert.assertEquals("pwc", organizationDto.getClientCode());
Assert.assertEquals("Emily 0712", organizationDto.getName());
Assert.assertEquals("070712", organizationDto.getCode());
Assert.assertEquals("1f8daeeb-6b44-415d-916b-a19159356d81", organizationDto.getParentId());
Assert.assertEquals("070712", organizationDto.getTaxPayerNumber());
Assert.assertEquals("2542b106-66a6-4135-85d3-a90ca58ba058", organizationDto.getBusinessUnitId());
Assert.assertEquals("事业部1", organizationDto.getBusinessUnitName());
Assert.assertEquals("a6bcc4a2-586d-468b-8802-a93c4a434b22", organizationDto.getAreaId());
Assert.assertEquals("Emily 测试新增区域", organizationDto.getAreaName());
}
@Test
public void getOrgListToJsonTest() {
execSqlFile("sql/organization_data_for_enterpriseAccountSet_test.sql");
List<NavTreeDto> navTreeDtos = organizationService.getOrgListToJson(0);
Assert.assertNotNull(navTreeDtos);
Assert.assertEquals(5, navTreeDtos.size());
List<NavTreeDto> newNavTreeDtos = navTreeDtos.stream().filter(nav -> nav.getLabel().equals("lbFixBug4"))
.collect(Collectors.toList());
Assert.assertTrue(!newNavTreeDtos.isEmpty());
NavTreeDto navTreeDto = newNavTreeDtos.get(0);
Assert.assertNotNull(navTreeDto.getData());
OrganizationDto organization = (OrganizationDto) navTreeDto.getData();
Assert.assertEquals("pwc", organization.getClientCode());
Assert.assertEquals("lbFixBug4", organization.getName());
Assert.assertEquals("310100", organization.getRegionId());
Assert.assertEquals("029217e9-ee88-9f51-eb74-806734d7f013", organization.getStructureId());
Assert.assertEquals("0bae00f7-96dc-46c8-b6f5-a427616c5bcf", organization.getAreaId());
}
@Test
public void getOrgListTest() {
execSqlFile("sql/organization_data_for_enterpriseAccountSet_test.sql");
List<OrganizationDto> organizationDtos = organizationService.getOrgList(0);
Assert.assertNotNull(organizationDtos);
Assert.assertEquals(5, organizationDtos.size());
List<OrganizationDto> newOrganizationDtos = organizationDtos.stream()
.filter(nav -> nav.getName().equals("lbFixBug4")).collect(Collectors.toList());
Assert.assertTrue(!newOrganizationDtos.isEmpty());
OrganizationDto organizationDto = newOrganizationDtos.get(0);
Assert.assertEquals("pwc", organizationDto.getClientCode());
Assert.assertEquals("lbFixBug4", organizationDto.getName());
Assert.assertEquals("310100", organizationDto.getRegionId());
Assert.assertEquals("029217e9-ee88-9f51-eb74-806734d7f013", organizationDto.getStructureId());
Assert.assertEquals("0bae00f7-96dc-46c8-b6f5-a427616c5bcf", organizationDto.getAreaId());
}
@Test
public void getProjectIndustrysTest() {
execSqlFile("sql/industry_data_test.sql");
List<IndustryDto> industryDto = organizationService.getProjectIndustryList();
Assert.assertEquals(36, industryDto.size());
Assert.assertEquals("通用行业", industryDto.get(0).getName());
}
@Test
public void testForNVARCHAR() {
execSqlFile("sql/Area_bu_ind_org_os_reg.sql");
List<OrgBasicDto> orgListLevel = organizationService.getOrgListLevel();
OrgBasicDto testNVARCHAR = orgListLevel.stream()
.filter(org -> "0e03a92d-11e0-4b1a-a5ad-3f71dace6ff9".equals(org.getId())).collect(Collectors.toList())
.get(0);
logger.debug("print testNVARCHAR : name = {}", testNVARCHAR.getName());
}
@Test
public void taxPayerNumberUniqueValidateTest() {
execSqlFile("sql/organization_data_for_enterpriseAccountSet_test.sql");
OrganizationValidateDto organizationValidateDto = new OrganizationValidateDto();
organizationValidateDto.setId("bd5cfb8c-bc0d-4baf-8fe9-4b55811bf182");
organizationValidateDto.setValue("0710");
Assert.assertTrue(organizationService.taxPayerNumberUniqueValidate(organizationValidateDto));
organizationValidateDto.setId("bd5cfb8c-bc0d-4baf-8fe9-4b55811bf183");
organizationValidateDto.setValue("");
Assert.assertTrue(organizationService.taxPayerNumberUniqueValidate(organizationValidateDto));
organizationValidateDto.setId("bd5cfb8c-bc0d-4baf-8fe9-4b55811bf183");
organizationValidateDto.setValue(null);
Assert.assertTrue(organizationService.taxPayerNumberUniqueValidate(organizationValidateDto));
organizationValidateDto.setId("bd5cfb8c-bc0d-4baf-8fe9-4b55811bf183");
organizationValidateDto.setValue("0710");
Assert.assertFalse(organizationService.taxPayerNumberUniqueValidate(organizationValidateDto));
organizationValidateDto.setId("");
organizationValidateDto.setValue("testNotMatch");
Assert.assertTrue(organizationService.taxPayerNumberUniqueValidate(organizationValidateDto));
organizationValidateDto.setId("");
organizationValidateDto.setValue("0710");
Assert.assertFalse(organizationService.taxPayerNumberUniqueValidate(organizationValidateDto));
}
@Test
public void getOrgListLevelTest() {
execSqlFile("sql/Area_bu_ind_org_os_reg.sql");
List<OrgBasicDto> orgListLevel = organizationService.getOrgListLevel();
OrgBasicDto test1 = orgListLevel.stream()
.filter(org -> "007e9946-6217-4756-bee3-023d1e4e583f".equals(org.getId())).collect(Collectors.toList())
.get(0);
OrgBasicDto test2 = orgListLevel.stream()
.filter(org -> "0fd4a62c-6ab2-4d34-a27c-f1e59a6ea576".equals(org.getId())).collect(Collectors.toList())
.get(0);
OrgBasicDto test3 = orgListLevel.stream()
.filter(org -> "0e03a92d-11e0-4b1a-a5ad-3f71dace6ff9".equals(org.getId())).collect(Collectors.toList())
.get(0);
OrgBasicDto test4 = orgListLevel.stream()
.filter(org -> "0d0d8fb5-3582-4001-bc0c-c223e136f533".equals(org.getId())).collect(Collectors.toList())
.get(0);
Assert.assertEquals("月球事业部", test1.getBusinessUnitName());
Assert.assertEquals("通用行业", test2.getIndustryName());
Assert.assertEquals("中国,上海,上海市", test3.getRegionName());
Assert.assertEquals("juliusceshi", test4.getName());
}
@Test
public void getAreaStatistics() {
try {
// TODO working on it
organizationService.getAreaStatistics();
} catch (Exception e) {
// TODO: handle exception
}
}
@Test
public void disableOrgsTest() {
Authentication request = new JwtAuthenticationToken("xxxx");
Authentication authenticaiton = jwtAuthenticationProvider.authenticate(request);
SecurityContextHolder.getContext().setAuthentication(authenticaiton);
execSqlFile("sql/organization_for_disable_enable_org.sql");
List<String> orgIdList = new ArrayList<>();
orgIdList.add("007e9946-6217-4756-bee3-023d1e4e583f");
orgIdList.add("05f7c09b-8711-4320-be25-89ba438d20c4");
Assert.assertTrue("disableOrgsTest assert True", organizationService.disableOrgs(orgIdList).getResult());
}
@Test
public void enableOrgsTest() {
Authentication request = new JwtAuthenticationToken("xxxx");
Authentication authenticaiton = jwtAuthenticationProvider.authenticate(request);
SecurityContextHolder.getContext().setAuthentication(authenticaiton);
execSqlFile("sql/organization_for_disable_enable_org.sql");
Assert.assertTrue("enableOrgsTest assert True",
organizationService.enableOrgs("007e9946-6217-4756-bee3-023d1e4e583f").getResult());
Assert.assertTrue("enableOrgsTest assert True",
organizationService.enableOrgs("05f7c09b-8711-4320-be25-89ba438d20c4").getResult());
}
@Test
public void displaySingleTest() {
execSqlFile("sql/test_org_display_single.sql");
OrganizationDto orgDto1 = organizationService.getSingleOrgByOrgId("007e9946-6217-4756-bee3-023d1e4e583f");
Assert.assertEquals("test1234567788", orgDto1.getName());
Assert.assertEquals("EDMOND12345678", orgDto1.getCode());
Assert.assertEquals("5064297b-5a34-4dc3-a0fe-2ab5cdf18c1d", orgDto1.getBusinessUnitId());
Assert.assertEquals("110100", orgDto1.getRegionId());
Assert.assertEquals("通用行业", orgDto1.getIndustryName());
Assert.assertEquals("月球事业部", orgDto1.getBusinessUnitName());
OrganizationDto orgDto2 = organizationService.getSingleOrgByOrgId("05f7c09b-8711-4320-be25-89ba438d20c4");
Assert.assertEquals("ida测试报表001", orgDto2.getName());
Assert.assertEquals("0111001", orgDto2.getCode());
Assert.assertEquals(null, orgDto2.getBusinessUnitId());
Assert.assertEquals("110100", orgDto2.getRegionId());
Assert.assertEquals("房地产业", orgDto2.getIndustryName());
Assert.assertEquals(null, orgDto2.getBusinessUnitName());
}
@Test
public void getOrgDashboardTest() {
// TODO: to be finished
// execSqlFile("sql/get_dashboard_test.sql");
// c61a5bd6-a996-4952-9869-d053995237e7 OrgSubChildrenId 机构维度展现
List<DimensionOrgDtoDashboard> testDashboardList1 = organizationService
.getOrgDashboard("c61a5bd6-a996-4952-9869-d053995237e7", "", null);
// c61a5bd6-a996-4952-9869-d053995237e5 事业部维度展现
List<DimensionOrgDtoDashboard> testDashboardList2 = organizationService
.getOrgDashboard("c61a5bd6-a996-4952-9869-d053995237e5", "", null);
// be15c132-e634-4b20-beff-0691ee35dcdb 自定义维度展现(产品线)
List<DimensionOrgDtoDashboard> testDashboardList3 = organizationService
.getOrgDashboard("be15c132-e634-4b20-beff-0691ee35dcdb", "", null);
}
@Test
public void codeUniqueValidateTest() {
execSqlFile("sql/organization_for_code_unique_validate.sql");
// 空DTO
OrganizationValidateDto validateDto1 = new OrganizationValidateDto();
Assert.assertTrue("空DTO, Assert True", organizationService.codeUniqueValidate(validateDto1));
// Code重复,OrgId不重复
OrganizationValidateDto validateDto2 = new OrganizationValidateDto();
validateDto2.setId("testId323");
validateDto2.setValue("EDMOND12345678");
Assert.assertFalse("code重复,OrgId不重复,Assert False ", organizationService.codeUniqueValidate(validateDto2));
// Code重复,OrgId重复
OrganizationValidateDto validateDto3 = new OrganizationValidateDto();
validateDto3.setId("007e9946-6217-4756-bee3-023d1e4e583f");
validateDto3.setValue("EDMOND12345678");
Assert.assertTrue("ode重复,OrgId重复, Assert True", organizationService.codeUniqueValidate(validateDto3));
// Code不重复,OrgId重复
OrganizationValidateDto validateDto4 = new OrganizationValidateDto();
validateDto4.setId("007e9946-6217-4756-bee3-023d1e4e583f");
validateDto4.setValue("testCode323");
Assert.assertTrue("Code不重复,OrgId重复, Assert True", organizationService.codeUniqueValidate(validateDto4));
// Code不重复,OrgId不重复
OrganizationValidateDto validateDto5 = new OrganizationValidateDto();
validateDto5.setId("testId323");
validateDto5.setValue("testCode323");
Assert.assertTrue("code不重复,OrgId不重复, Assert True", organizationService.codeUniqueValidate(validateDto5));
// Code为空,OrgId不重复
OrganizationValidateDto validateDto6 = new OrganizationValidateDto();
validateDto6.setId("testId323");
Assert.assertTrue("code为空,OrgId不重复, Assert True", organizationService.codeUniqueValidate(validateDto6));
// Code重复,OrgId为空
OrganizationValidateDto validateDto7 = new OrganizationValidateDto();
validateDto7.setValue("EDMOND12345678");
Assert.assertFalse("Code重复,OrgId为空, Assert False", organizationService.codeUniqueValidate(validateDto7));
}
}
package pwc.taxtech.atms.service.impl;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Date;
import java.util.List;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.nutz.lang.Strings;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import pwc.taxtech.atms.CommonIT;
import pwc.taxtech.atms.common.AuthUserHelper;
import pwc.taxtech.atms.common.CommonUtils;
import pwc.taxtech.atms.common.OperationAction;
import pwc.taxtech.atms.common.OperationModule;
import pwc.taxtech.atms.dao.OperationLogBasicDataMapper;
import pwc.taxtech.atms.dao.OrganizationStructureMapper;
import pwc.taxtech.atms.dto.OrganizationStructureDto;
import pwc.taxtech.atms.dto.OrganizationStructureInputDto;
import pwc.taxtech.atms.entity.OperationLogBasicData;
import pwc.taxtech.atms.entity.OperationLogBasicDataExample;
import pwc.taxtech.atms.entity.OrganizationStructure;
import pwc.taxtech.atms.entity.OrganizationStructureExample;
import pwc.taxtech.atms.entity.OrganizationStructureExample.Criteria;
import pwc.taxtech.atms.security.JwtAuthenticationProvider;
import pwc.taxtech.atms.security.JwtAuthenticationToken;
import pwc.taxtech.atms.service.OrganizationStructureService;
public class OrganizationStructureServiceIT extends CommonIT {
private static Logger logger = LoggerFactory.getLogger(OrganizationStructureServiceIT.class);
private static final String UUID1 = CommonUtils.getUUID();
private static final String UUID2 = CommonUtils.getUUID();
private static final String UUID3 = CommonUtils.getUUID();
private static final String UUID4 = CommonUtils.getUUID();
@Autowired
private OrganizationStructureService organizationStructureService;
@Autowired
private OrganizationStructureMapper organizationStructureMapper;
@Autowired
private JwtAuthenticationProvider jwtAuthenticationProvider;
@Autowired
private OperationLogBasicDataMapper operationLogBasicDataMapper;
@Autowired
private AuthUserHelper authUserHelper;
private OrganizationStructure organizationStructure1;
private OrganizationStructure organizationStructure2;
private OrganizationStructure organizationStructure3;
private OrganizationStructureInputDto organizationStructureDto1;
private OrganizationStructureInputDto organizationStructureDto2;
@Before
public void init() {
organizationStructure1 = new OrganizationStructure();
organizationStructure1.setId(UUID1);
organizationStructure1.setIsActive(true);
organizationStructure1.setName("test-name1");
organizationStructure1.setCreateTime(new Date());
organizationStructure1.setUpdateTime(new Date());
organizationStructureMapper.insert(organizationStructure1);
organizationStructure2 = new OrganizationStructure();
organizationStructure2.setId(UUID2);
organizationStructure2.setIsActive(true);
organizationStructure2.setName("test-name2");
organizationStructure2.setCreateTime(new Date());
organizationStructure2.setUpdateTime(new Date());
organizationStructureMapper.insert(organizationStructure2);
organizationStructureDto1 = new OrganizationStructureInputDto();
organizationStructureDto1.setId(UUID3);
organizationStructureDto1.setIsActive(true);
organizationStructureDto1.setName("test-name3");
organizationStructureDto2 = new OrganizationStructureInputDto();
organizationStructureDto2.setId(UUID4);
organizationStructureDto2.setIsActive(true);
organizationStructureDto2.setName("test-name4");
organizationStructure3 = new OrganizationStructure();
organizationStructure3.setId(organizationStructureDto2.getId());
organizationStructure3.setIsActive(organizationStructureDto2.getIsActive());
organizationStructure3.setName(organizationStructureDto2.getName());
organizationStructure3.setCreateTime(new Date());
organizationStructure3.setUpdateTime(new Date());
organizationStructureMapper.insert(organizationStructure3);
// get current user name
Authentication request = new JwtAuthenticationToken("xxxx");
Authentication authenticaiton = jwtAuthenticationProvider.authenticate(request);
SecurityContextHolder.getContext().setAuthentication(authenticaiton);
}
@Test
public void getOrganizationStructuresTest() {
logger.debug("enter getOrganizationStructuresTest");
List<OrganizationStructureDto> organizationStructureDtoList = organizationStructureService
.getOrganizationStructures();
logger.debug("get organizationStructureDtoList: {}", organizationStructureDtoList);
Assert.assertNotNull(organizationStructureDtoList);
Assert.assertTrue(!organizationStructureDtoList.isEmpty());
}
@Test
public void addOrganizationStructureTest() {
logger.debug("enter addOrganizationStructureTest");
List<OrganizationStructureInputDto> organizationStructureDtoList = new ArrayList<>();
organizationStructureDtoList.add(organizationStructureDto1);
organizationStructureService.addOrganizationStructures(organizationStructureDtoList);
OrganizationStructure actualOrganizationStructure = findByNameAndIsActive(organizationStructureDto1);
Assert.assertEquals(organizationStructureDto1.getName(), actualOrganizationStructure.getName());
Assert.assertEquals(organizationStructureDto1.getIsActive(), actualOrganizationStructure.getIsActive());
logger.debug("expected OrganizationStructureDto: {}", organizationStructureDto1);
logger.debug("actual OrganizationStructure: {}", actualOrganizationStructure);
logger.debug("basic data operation log for add");
List<OperationLogBasicData> operationLogBasicDataList = findOperationLogBasicData(organizationStructureDto1);
OperationLogBasicData operationLogBasicData = operationLogBasicDataList.get(0);
Assert.assertEquals(organizationStructureDto1.getName(), operationLogBasicData.getOperationObject());
Assert.assertEquals(authUserHelper.getCurrentAuditor(), operationLogBasicData.getOperationUser());
Assert.assertEquals(OperationModule.BasicDataOrganizationStructure.toString(),
operationLogBasicData.getModuleName());
Assert.assertEquals(OperationAction.New.toString(), operationLogBasicData.getOperationAction());
}
@Test
public void updateOrganizationStructuresTest() {
logger.debug("enter updateOrganizationStructuresTest");
OrganizationStructure originOrganizationStructure = findByNameAndIsActive(organizationStructureDto2);
OrganizationStructureInputDto updateOrganizationStructureDto = new OrganizationStructureInputDto();
CommonUtils.copyProperties(organizationStructureDto2, updateOrganizationStructureDto);
String originName = originOrganizationStructure.getName();
boolean originIsActive = originOrganizationStructure.getIsActive();
updateOrganizationStructureDto.setName("tmp-name");
updateOrganizationStructureDto.setIsActive(false);
Assert.assertFalse(originName.equals(updateOrganizationStructureDto.getName()));
Assert.assertFalse(originIsActive == updateOrganizationStructureDto.getIsActive());
List<OrganizationStructureInputDto> organizationStructureDtoList = new ArrayList<>();
organizationStructureDtoList.add(updateOrganizationStructureDto);
boolean result = organizationStructureService.updateOrganizationStructures(organizationStructureDtoList);
Assert.assertTrue(result);
OrganizationStructure updateOrganizationStructure = findByNameAndIsActive(updateOrganizationStructureDto);
compareOrganizationStructure(updateOrganizationStructure, updateOrganizationStructureDto);
logger.debug("expected OrganizationStructureDto: {}", updateOrganizationStructure);
logger.debug("actual OrganizationStructure: {}", updateOrganizationStructureDto);
logger.debug("basic data operation log for add");
OperationLogBasicDataExample example = new OperationLogBasicDataExample();
pwc.taxtech.atms.entity.OperationLogBasicDataExample.Criteria criteria = example.createCriteria();
criteria.andOperationObjectEqualTo(organizationStructureDto2.getName());
criteria.andOperationUserEqualTo(authUserHelper.getCurrentAuditor());
criteria.andModuleNameEqualTo(OperationModule.BasicDataOrganizationStructure.toString());
criteria.andOperationActionEqualTo(OperationAction.Update.toString());
List<OperationLogBasicData> operationLogBasicDataList = operationLogBasicDataMapper.selectByExample(example);
Assert.assertNotNull(operationLogBasicDataList);
Assert.assertTrue(!operationLogBasicDataList.isEmpty());
// update both name and isAcitve, there should be two records in operaiton log
Assert.assertTrue(operationLogBasicDataList.size() > 1);
operationLogBasicDataList.sort(new Comparator<OperationLogBasicData>() {
@Override
public int compare(OperationLogBasicData o1, OperationLogBasicData o2) {
return o1.getOperationContent().compareTo(o2.getOperationContent());
}
});
// for isActive
OperationLogBasicData logForFieldIsActive = operationLogBasicDataList.get(0);
Assert.assertEquals("ISACTIVE", logForFieldIsActive.getOperationContent().toUpperCase());
Assert.assertEquals(OperationModule.BasicDataOrganizationStructure.toString(),
logForFieldIsActive.getModuleName());
Assert.assertEquals(organizationStructureDto2.getName(), logForFieldIsActive.getOperationObject());
Assert.assertEquals(OperationAction.Update.toString(), logForFieldIsActive.getOperationAction());
Assert.assertEquals(authUserHelper.getCurrentAuditor(), logForFieldIsActive.getOperationUser());
Assert.assertEquals(Strings.upperFirst(organizationStructureDto2.getIsActive().toString()), logForFieldIsActive.getOriginalState());
Assert.assertEquals(Strings.upperFirst(updateOrganizationStructureDto.getIsActive().toString()),
logForFieldIsActive.getUpdateState());
// for name
OperationLogBasicData logForFieldName = operationLogBasicDataList.get(1);
Assert.assertEquals("NAME", logForFieldName.getOperationContent().toUpperCase());
Assert.assertEquals(OperationModule.BasicDataOrganizationStructure.toString(), logForFieldName.getModuleName());
Assert.assertEquals(organizationStructureDto2.getName(), logForFieldName.getOperationObject());
Assert.assertEquals(OperationAction.Update.toString(), logForFieldName.getOperationAction());
Assert.assertEquals(authUserHelper.getCurrentAuditor(), logForFieldName.getOperationUser());
Assert.assertEquals(organizationStructureDto2.getName(), logForFieldName.getOriginalState());
Assert.assertEquals(updateOrganizationStructureDto.getName(), logForFieldName.getUpdateState());
}
private List<OperationLogBasicData> findOperationLogBasicData(OrganizationStructureInputDto organizationStructureDto) {
OperationLogBasicDataExample example = new OperationLogBasicDataExample();
pwc.taxtech.atms.entity.OperationLogBasicDataExample.Criteria criteria = example.createCriteria();
criteria.andOperationObjectEqualTo(organizationStructureDto.getName());
criteria.andOperationUserEqualTo(authUserHelper.getCurrentAuditor());
criteria.andModuleNameEqualTo(OperationModule.BasicDataOrganizationStructure.toString());
criteria.andOperationActionEqualTo(OperationAction.New.toString());
List<OperationLogBasicData> operationLogBasicDataList = operationLogBasicDataMapper.selectByExample(example);
Assert.assertNotNull(operationLogBasicDataList);
Assert.assertTrue(!operationLogBasicDataList.isEmpty());
return operationLogBasicDataList;
}
private void compareOrganizationStructure(OrganizationStructure organizationStructure,
OrganizationStructureInputDto organizationStructureDto) {
Assert.assertEquals(organizationStructure.getId(), organizationStructureDto.getId());
Assert.assertEquals(organizationStructure.getIsActive(), organizationStructureDto.getIsActive());
Assert.assertEquals(organizationStructure.getName(), organizationStructureDto.getName());
}
private OrganizationStructure findByNameAndIsActive(OrganizationStructureInputDto organizationStructureDto) {
OrganizationStructureExample example = new OrganizationStructureExample();
Criteria criteria = example.createCriteria();
criteria.andNameEqualTo(organizationStructureDto.getName());
criteria.andIsActiveEqualTo(organizationStructureDto.getIsActive());
List<OrganizationStructure> actualOrganizationStructures = organizationStructureMapper.selectByExample(example);
Assert.assertNotNull(actualOrganizationStructures);
Assert.assertTrue(!actualOrganizationStructures.isEmpty());
OrganizationStructure organizationStructure = actualOrganizationStructures.get(0);
return organizationStructure;
}
@After
public void clean() {
organizationStructureMapper.deleteByExample(null);
operationLogBasicDataMapper.deleteByExample(null);
}
}
package pwc.taxtech.atms.service.impl;
import java.util.Arrays;
import java.util.List;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import com.fasterxml.jackson.core.JsonProcessingException;
import pwc.taxtech.atms.CommonIT;
import pwc.taxtech.atms.dto.navtree.DevTreeDto;
import pwc.taxtech.atms.dto.navtree.RolePermissionDisplayDto;
import pwc.taxtech.atms.service.PermissionService;
public class PermissionServiceIT extends CommonIT {
private static final Logger logger = LoggerFactory.getLogger(PermissionServiceIT.class);
@Autowired private PermissionService permissionService;
@Before
public void setUp() {
cleanUpAllTables();
}
/*@Test
public void test() {
rolePermissionMapper.selectByRoleListAndServiceTypeWithAssociation(
Arrays.asList("1", "2"), "2");
}*/
@Test
public void getIvhTreePermissionsByRoleIdTest() throws JsonProcessingException {
/*
* role: id=07CCEC5C-F059-4864-8009-D460689F1007
*/
//data preparation
execSqlFile("sql/permission_data.sql");
execSqlFile("sql/user_role_permission_data.sql");
RolePermissionDisplayDto rolePermissionDisplayDto = permissionService.getIvhTreePermissionsByRoleId("07CCEC5C-F059-4864-8009-D460689F1007", "2");
logger.debug("print result json:{}", objectMapper.writeValueAsString(rolePermissionDisplayDto));
//check dto
Assert.assertEquals(2, rolePermissionDisplayDto.getRolePermissionList().size());
Assert.assertEquals(1, rolePermissionDisplayDto.getPermissionDevTreeList().size());
}
@Test
public void getIvhTreePermissionsByRoleIdListTest() throws JsonProcessingException {
/*
* 07CCEC5C-F059-4864-8009-D460689F1007,36FB1BA2-EBFA-4FDF-9B8F-0E04E9DBCB97
*/
//data preparation
execSqlFile("sql/permission_data.sql");
execSqlFile("sql/user_role_permission_data.sql");
List<DevTreeDto> tree = permissionService.getIvhTreePermissionsByRoleIdList(Arrays.asList("07CCEC5C-F059-4864-8009-D460689F1007" ,"36FB1BA2-EBFA-4FDF-9B8F-0E04E9DBCB97"), "2");
logger.debug("print result json:{}", objectMapper.writeValueAsString(tree));
Assert.assertEquals(1, tree.size());
}
@Test
public void getAllPermissionsTest() throws JsonProcessingException {
//data preparation
execSqlFile("sql/permission_data.sql");
List<DevTreeDto> tree = permissionService.getAllPermissions("2");
logger.debug("print result json:{}", objectMapper.writeValueAsString(tree));
Assert.assertEquals(1, tree.size());
}
}
package pwc.taxtech.atms.service.impl;
import java.util.ArrayList;
import java.util.List;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import pwc.taxtech.atms.CommonIT;
import pwc.taxtech.atms.CommonTestUtils;
import pwc.taxtech.atms.dto.ProjectClientDto;
import pwc.taxtech.atms.dto.ServiceTypeDto;
import pwc.taxtech.atms.service.ProjectService;
public class ProjectServiceIT extends CommonIT {
private static final Logger logger = LoggerFactory.getLogger(ProjectServiceIT.class);
@Autowired
private ProjectService projectService;
@Before
public void setUp() {
cleanUpAllTables();
CommonTestUtils.initTestAuth();
}
@Test
public void getServiceListOk() {
logger.debug("Start excute sql/templateGroup_test_data.sql");
execSqlFile("sql/templateGroup_test_data.sql");
logger.debug("Start excute sql/serviceType_test_data.sql");
execSqlFile("sql/serviceType_test_data.sql");
List<ServiceTypeDto> result = new ArrayList<ServiceTypeDto>();
result = projectService.getServiceList();
Assert.assertEquals(8, result.size());
Assert.assertEquals(1, result.get(0).getTemplateGroupList().size());
}
@Test
public void getProjectClientListOk() {
logger.debug("Start excute sql/projectClient_test_data.sql");
execSqlFile("sql/projectClient_test_data.sql");
List<ProjectClientDto> result = new ArrayList<ProjectClientDto>();
result = projectService.getProjectClientList();
Assert.assertTrue("find client 'pwc' in db", result.stream().anyMatch(res -> "pwc".equals(res.getName())));
}
}
package pwc.taxtech.atms.service.impl;
import static org.junit.Assert.assertEquals;
import java.util.List;
import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import pwc.taxtech.atms.CommonIT;
import pwc.taxtech.atms.dto.VMRegionDevTreeData;
import pwc.taxtech.atms.dto.navtree.DevTreeDto;
import pwc.taxtech.atms.dto.navtree.IvhTreeDto;
import pwc.taxtech.atms.entity.Region;
import pwc.taxtech.atms.service.RegionService;
public class RegionServiceIT extends CommonIT {
@Autowired
private RegionService regionService;
@Before
public void setUp() {
cleanUpAllTables();
}
@Test
public void getRegionAreaTreeTest() {
// data preparatino
execSqlFile("sql/area_data.sql");
execSqlFile("sql/areaRegion_data.sql");
execSqlFile("sql/region_data.sql");
List<DevTreeDto<VMRegionDevTreeData>> tree = regionService.getRegionAreaTree();
assertEquals(31, tree.size());
DevTreeDto<VMRegionDevTreeData> firstArea = tree.get(0);
assertEquals("7c360a44-7a17-4ca0-9c2a-a88cde7670d5", firstArea.getId());
assertEquals("1111", firstArea.getText());
List<DevTreeDto<VMRegionDevTreeData>> itemsOfFirstArea = firstArea.getItems();
assertEquals(8, itemsOfFirstArea.size());
DevTreeDto<VMRegionDevTreeData> secondSubAreaOfFirstArea = itemsOfFirstArea.get(1);
assertEquals("65476f34-58b2-40b7-865f-8a12b8b0a5e6", secondSubAreaOfFirstArea.getId());
assertEquals("top", secondSubAreaOfFirstArea.getText());
DevTreeDto<VMRegionDevTreeData> firstRegionOfFirstArea = itemsOfFirstArea.get(6);
assertEquals("110000", firstRegionOfFirstArea.getId());
assertEquals("北京市", firstRegionOfFirstArea.getText());
assertEquals(1, firstRegionOfFirstArea.getItems().size());
assertEquals("110000", firstRegionOfFirstArea.getItems().get(0).getParentId());
}
@Test
public void getProvinceAndCityTreeListTest() {
// data preparatino
execSqlFile("sql/region_data.sql");
List<DevTreeDto<IvhTreeDto<Region>>> tree = regionService.getProvinceAndCityTreeList();
assertEquals(35, tree.size());
DevTreeDto<IvhTreeDto<Region>> hebeiRegion = tree.get(2);
assertEquals(11, hebeiRegion.getData().getChildren().size());
assertEquals(11, hebeiRegion.getItems().size());
}
@Test
public void getAreRegionTreeByNodeIdTest() {
// TODO
}
}
package pwc.taxtech.atms.service.impl;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import pwc.taxtech.atms.CommonIT;
import pwc.taxtech.atms.CommonTestUtils;
import pwc.taxtech.atms.common.CommonUtils;
import pwc.taxtech.atms.common.OperationAction;
import pwc.taxtech.atms.dpo.UserRoleInfo;
import pwc.taxtech.atms.dto.OperationResultDto;
import pwc.taxtech.atms.dto.RoleCategoryDto;
import pwc.taxtech.atms.dto.navtree.NavTreeDto;
import pwc.taxtech.atms.dto.role.RoleDisplayDto;
import pwc.taxtech.atms.dto.role.RoleDto;
import pwc.taxtech.atms.dto.role.RoleDtoTree;
import pwc.taxtech.atms.dto.role.RolePermissionDto;
import pwc.taxtech.atms.dto.role.UpdateRoleInfo;
import pwc.taxtech.atms.dto.role.UpdateRolePermissionDto;
import pwc.taxtech.atms.dto.user.UserRoleDimensionValueDto;
import pwc.taxtech.atms.dto.user.UserRoleDto;
import pwc.taxtech.atms.dto.user.UserRoleUpdateDto;
import pwc.taxtech.atms.entity.OperationLogRole;
import pwc.taxtech.atms.entity.OperationLogRoleExample;
import pwc.taxtech.atms.entity.Role;
import pwc.taxtech.atms.entity.RoleCategory;
import pwc.taxtech.atms.entity.RolePermission;
import pwc.taxtech.atms.entity.RolePermissionExample;
import pwc.taxtech.atms.entity.UserRole;
import pwc.taxtech.atms.entity.UserRoleExample;
import pwc.taxtech.atms.service.RoleService;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
import static org.assertj.core.api.Assertions.assertThat;
public class RoleServiceIT extends CommonIT {
@Autowired
private RoleService roleService;
@Autowired
ObjectMapper objectMapper;
@Before
public void setUp() {
cleanUpAllTables();
CommonTestUtils.initTestAuth();
}
@Test
public void getRoleTreeListTest() {
execSqlFile("sql/user_data.sql");
execSqlFile("sql/role_related_data.sql");
List<NavTreeDto> navTreeDtos = roleService.getRoleTreeList();
Assert.assertNotNull(navTreeDtos);
Assert.assertEquals(13, navTreeDtos.size());
List<NavTreeDto> navTreeDtoList = navTreeDtos.stream().filter(nav -> nav.getLabel().equals("自定义角色"))
.collect(Collectors.toList());
Assert.assertTrue(!navTreeDtoList.isEmpty());
NavTreeDto navTreeDto = navTreeDtoList.get(0);
RoleCategoryDto roleCategoryDto = (RoleCategoryDto) navTreeDto.getData();
Short isActive = 1;
Assert.assertEquals(isActive, roleCategoryDto.getIsActive());
Assert.assertEquals(8, navTreeDto.getChildren().size());
List<NavTreeDto> children = navTreeDto.getChildren().stream().filter(ch -> ch.getLabel().equals("查看纳税识别"))
.collect(Collectors.toList());
Assert.assertTrue(!children.isEmpty());
NavTreeDto childrenNavTreeDto = children.get(0);
Role role = (Role) childrenNavTreeDto.getData();
Assert.assertEquals("查看纳税识别", role.getName());
Assert.assertEquals("09243bce-1994-4d92-b849-30da2cf35eaf", role.getRoleCategoryId());
Assert.assertEquals("05D40C22-03F5-4A0F-A4B3-CEB1D7E6B9DC", role.getId());
}
@Test
public void getAllOwnUserRoleListTest() {
execSqlFile("sql/user_data.sql");
execSqlFile("sql/role_related_data.sql");
List<UserRoleInfo> userRoleInfos = roleService.getAllOwnUserRoleList();
Assert.assertNotNull(userRoleInfos);
Assert.assertEquals(2, userRoleInfos.size());
List<UserRoleInfo> userRoleInfoList = userRoleInfos.stream().filter(us -> us.getUserName().equals("Admin"))
.collect(Collectors.toList());
Assert.assertTrue(!userRoleInfoList.isEmpty());
UserRoleInfo userRoleInfo = userRoleInfoList.get(0);
Assert.assertEquals("a@a.aaxx", userRoleInfo.getEmail());
Integer status = 1;
Assert.assertEquals(status, userRoleInfo.getStatus());
Assert.assertEquals("2d87ff73-2d13-43aa-851c-efe7b59e21af", userRoleInfo.getOrganizationId());
Assert.assertEquals("0bae00f7-96dc-46c8-b6f5-a427616c5bcf", userRoleInfo.getBusinessUnitId());
Assert.assertEquals("0A5602E0-5A7C-4E26-9AEB-208EDADE19FB", userRoleInfo.getAreaId());
Assert.assertEquals("66933E7B-DA75-4B2E-B7D6-AB65DCA20D50", userRoleInfo.getId());
Assert.assertTrue(userRoleInfo.getIsAccessible());
Assert.assertEquals(7, userRoleInfo.getRoleInfoList().size());
}
@Test
public void getAllUserRoleListTest() {
execSqlFile("sql/user_data.sql");
execSqlFile("sql/role_related_data.sql");
List<UserRoleInfo> userRoleInfos = roleService.getAllUserRoleList();
Assert.assertNotNull(userRoleInfos);
Assert.assertEquals(4, userRoleInfos.size());
List<UserRoleInfo> userRoleInfoList = userRoleInfos.stream().filter(us -> us.getUserName().equals("Admin"))
.collect(Collectors.toList());
Assert.assertTrue(!userRoleInfoList.isEmpty());
UserRoleInfo userRoleInfo = userRoleInfoList.get(0);
Integer status = 1;
Assert.assertEquals(status, userRoleInfo.getStatus());
Assert.assertEquals("1da41048-36dc-4cb3-aa4f-d3beb1a8c86c", userRoleInfo.getOrganizationId());
Assert.assertEquals("2542b106-66a6-4135-85d3-a90ca58ba058", userRoleInfo.getBusinessUnitId());
Assert.assertEquals("e0d0dca4-10d5-455d-9b9f-b8ef0de57c96", userRoleInfo.getAreaId());
Assert.assertEquals("66933E7B-DA75-4B2E-B7D6-AB65DCA20D50", userRoleInfo.getId());
Assert.assertTrue(userRoleInfo.getIsAccessible());
Assert.assertEquals(8, userRoleInfo.getRoleInfoList().size());
}
@Test
public void getAllRoleListByUserIdTest() {
execSqlFile("sql/role_related_data.sql");
List<UserRoleDto> userRoleDtos = roleService.getAllRoleListByUserId("d0665e84-ab6e-4393-8b3c-666cff461efe",
"2");
Assert.assertNotNull(userRoleDtos);
Assert.assertEquals(8, userRoleDtos.size());
List<UserRoleDto> filterList = userRoleDtos.stream()
.filter(u -> "07CCEC5C-F059-4864-8009-D460689F1007".equals(u.getRoleId())).collect(Collectors.toList());
Assert.assertEquals(1, filterList.size());
UserRoleDto userDto = filterList.get(0);
Assert.assertEquals("d0665e84-ab6e-4393-8b3c-666cff461efe", userDto.getUserId());
Assert.assertEquals("新增/复制工作流", userDto.getRoleName());
Assert.assertNull(userDto.getId());
}
@Test
public void getRoleListTest() {
execSqlFile("sql/role_related_data.sql");
List<RoleDtoTree> roleDtoTrees = roleService.getRoleList();
Assert.assertNotNull(roleDtoTrees);
Assert.assertEquals(13, roleDtoTrees.size());
RoleDtoTree roleDtoTree = roleDtoTrees.get(0);
Assert.assertEquals("公共角色", roleDtoTree.getName());
Assert.assertEquals("f21d950a-cc4d-4d65-b2cf-42554f281854", roleDtoTree.getRoleCategoryId());
Assert.assertTrue(roleDtoTree.getIsRoleCategory());
Assert.assertEquals("f21d950a-cc4d-4d65-b2cf-42554f281854", roleDtoTree.getId());
Assert.assertEquals(39, roleDtoTree.getSubRoles().size());
}
@Test
public void getUsersByRoleIdTest() {
/*
* role: 07CCEC5C-F059-4864-8009-D460689F1007 新增/复制工作流
*/
// data preparation
execSqlFile("sql/user_role_permission_data.sql");
List<UserRoleDto> userList = roleService.getUsersByRoleId("07CCEC5C-F059-4864-8009-D460689F1007");
// check result
Assert.assertEquals(4, userList.size());
UserRoleDto xiaoxiaoLiu = userList.stream()
.filter(sa -> sa.getUserId().equals("3489e836-06b7-41fa-8475-bf741d627613")).findFirst().get();
Assert.assertEquals("Xiaoxiao Liu", xiaoxiaoLiu.getUserName());
Assert.assertEquals("07132bf9-ade4-4a96-a6a8-9a209c02bf58", xiaoxiaoLiu.getOrgId());
Assert.assertEquals("增值税申报表测试", xiaoxiaoLiu.getOrgName());
}
@Test
public void getExtraUsersByRoleIdTest() {
/*
* role: 07CCEC5C-F059-4864-8009-D460689F1007 新增/复制工作流
*/
// data preparation
execSqlFile("sql/user_role_permission_data.sql");
List<UserRoleDto> userList = roleService.getExtraUsersByRoleId("07CCEC5C-F059-4864-8009-D460689F1007");
// check result
Assert.assertEquals(2, userList.size());
UserRoleDto user123123 = userList.stream()
.filter(sa -> sa.getUserId().equals("d0665e84-ab6e-4393-8b3c-666cff461efe")).findFirst().get();
Assert.assertEquals("123123", user123123.getUserName());
Assert.assertEquals("299a6736-c7d3-4bc3-95fb-96b4b750d245", user123123.getOrgId());
Assert.assertEquals("a0001", user123123.getOrgName());
}
@Test
public void addUsersToRoleTest() {
/*
* role: 07CCEC5C-F059-4864-8009-D460689F1007 新增/复制工作流
*/
// data preparation
execSqlFile("sql/user_role_permission_data.sql");
/*
* add users 0906913f-f8c3-423c-b9b1-9ae1be647087 Emily
* 0953f903-95cf-4610-954f-088943e08b6b Lear
*/
roleService.addUsersToRole("07CCEC5C-F059-4864-8009-D460689F1007", "2",
Arrays.asList("0906913f-f8c3-423c-b9b1-9ae1be647087", "0953f903-95cf-4610-954f-088943e08b6b"));
// check data
UserRoleExample example = new UserRoleExample();
example.createCriteria().andRoleIdIn(Arrays.asList("07CCEC5C-F059-4864-8009-D460689F1007"))
.andServiceTypeIdEqualTo("2");
List<UserRole> userRoleList = userRoleMapper.selectByExample(example);
Assert.assertEquals(6, userRoleList.size());
// check operationlog
List<OperationLogRole> OperationLogRoleList = operationLogRoleMapper.selectByExample(null);
Assert.assertEquals(2, OperationLogRoleList.size());
assertThat(OperationLogRoleList).extracting("operationAction").contains(OperationAction.New.name());
assertThat(OperationLogRoleList).extracting("operationContent").contains("Emily", "Lear");
assertThat(OperationLogRoleList).extracting("operationObject").contains("新增/复制工作流");
}
@Test
public void removeUserRoleTest() {
/*
* role: 07CCEC5C-F059-4864-8009-D460689F1007 新增/复制工作流
*/
// data preparation
execSqlFile("sql/user_role_permission_data.sql");
// delete record
/*
* userid = "d0665e84-ab6e-4393-8b3c-666cff461efe" 123123
*/
roleService.removeUserRole("d0665e84-ab6e-4393-8b3c-666cff461efe",
Arrays.asList("07CCEC5C-F059-4864-8009-D460689F1007"), "2");
// check data
UserRoleExample example = new UserRoleExample();
example.createCriteria().andRoleIdIn(Arrays.asList("07CCEC5C-F059-4864-8009-D460689F1007"))
.andServiceTypeIdEqualTo("2");
List<UserRole> userRoleList = userRoleMapper.selectByExample(example);
Assert.assertEquals(3, userRoleList.size());
Assert.assertEquals(false,
userRoleList.stream().anyMatch(sa -> sa.getUserId().equals("299a6736-c7d3-4bc3-95fb-96b4b750d245")));
// check operationlog
List<OperationLogRole> OperationLogRoleList = operationLogRoleMapper.selectByExample(null);
Assert.assertEquals(1, OperationLogRoleList.size());
assertThat(OperationLogRoleList).extracting("operationAction").contains(OperationAction.DeleteUser.name());
assertThat(OperationLogRoleList).extracting("operationContent").contains("123123");
assertThat(OperationLogRoleList).extracting("operationObject").contains("新增/复制工作流");
}
@Test
public void getRoleListByRoleTypeTest() {
// data preparation
execSqlFile("sql/user_role_permission_data.sql");
List<RoleDto> roleDtoList = roleService.getRoleListByRoleType("2");
Assert.assertEquals(2, roleDtoList.size());
}
@Test
public void addRoleCategoryTest() {
String id = CommonUtils.getUUID();
roleService.addRoleCategory("RoleCategoryName", id);
// check role category
RoleCategory roleCategory = roleCategoryMapper.selectByPrimaryKey(id);
Assert.assertEquals("RoleCategoryName", roleCategory.getName());
// check operation log
List<OperationLogRole> OperationLogRoleList = operationLogRoleMapper.selectByExample(null);
Assert.assertEquals(1, OperationLogRoleList.size());
assertThat(OperationLogRoleList).extracting("operationObject").contains("RoleCategoryName");
assertThat(OperationLogRoleList).extracting("operationAction").contains(OperationAction.New.name());
}
@Test
public void addRoleCategoryTestWithNameDuplicate() {
String id1 = CommonUtils.getUUID();
String id2 = CommonUtils.getUUID();
roleService.addRoleCategory("RoleCategoryName", id1);
roleService.addRoleCategory("RoleCategoryName", id2);
List<RoleCategory> roleCategoryList = roleCategoryMapper.selectByExample(null);
Assert.assertEquals(1, roleCategoryList.size());
}
@Test
public void updateRoleCategoryTest() {
// data preparation
String id = CommonUtils.getUUID();
roleService.addRoleCategory("RoleCategoryName", id);
operationLogRoleMapper.deleteByExample(null);
roleService.updateRoleCategory("RoleCategoryNameUpdate", id);
RoleCategory roleCategory = roleCategoryMapper.selectByPrimaryKey(id);
Assert.assertEquals("RoleCategoryNameUpdate", roleCategory.getName());
// check operation log
List<OperationLogRole> OperationLogRoleList = operationLogRoleMapper.selectByExample(null);
Assert.assertEquals(1, OperationLogRoleList.size());
assertThat(OperationLogRoleList).extracting("operationObject").contains("RoleCategoryName");
assertThat(OperationLogRoleList).extracting("operationContent").contains("Name");
assertThat(OperationLogRoleList).extracting("originalState").contains("RoleCategoryName");
assertThat(OperationLogRoleList).extracting("updateState").contains("RoleCategoryNameUpdate");
assertThat(OperationLogRoleList).extracting("operationAction").contains(OperationAction.Update.name());
}
@Test
public void deleteRoleCategoryTest() {
// data preparation
String id = CommonUtils.getUUID();
roleService.addRoleCategory("RoleCategoryName", id);
operationLogRoleMapper.deleteByExample(null);
OperationResultDto<?> result = roleService.deleteRoleCategory(id);
// check result
Assert.assertEquals(true, result.getResult());
// check role category
RoleCategory roleCategory = roleCategoryMapper.selectByPrimaryKey(id);
Assert.assertNull(roleCategory);
// check operation log
List<OperationLogRole> OperationLogRoleList = operationLogRoleMapper.selectByExample(null);
Assert.assertEquals(1, OperationLogRoleList.size());
assertThat(OperationLogRoleList).extracting("operationObject").contains("RoleCategoryName");
assertThat(OperationLogRoleList).extracting("operationAction").contains(OperationAction.Delete.name());
}
@Test
public void deleteRoleCategoryTestRoleCategoryNotExist() {
// data preparation
String id = CommonUtils.getUUID();
roleService.addRoleCategory("RoleCategoryName", id);
operationLogRoleMapper.deleteByExample(null);
OperationResultDto<?> result = roleService.deleteRoleCategory("id");
// check result
Assert.assertEquals(false, result.getResult());
Assert.assertEquals("RoleCategoryNotFound", result.getResultMsg());
}
@Test
public void deleteRoleCategoryTestWithRolesAssociated() {
// data preparation
String id = "f21d950a-cc4d-4d65-b2cf-42554f281854";
roleService.addRoleCategory("RoleCategoryName", id);
execSqlFile("sql/user_role_permission_data.sql");
operationLogRoleMapper.deleteByExample(null);
OperationResultDto<?> result = roleService.deleteRoleCategory(id);
// check result
Assert.assertEquals(false, result.getResult());
Assert.assertEquals("hasSubRolesWarn", result.getResultMsg());
}
@Test
public void addRoleTest() {
// data preparation
execSqlFile("sql/permission_data.sql");
execSqlFile("sql/user_role_permission_data.sql");
// prepare dto
RoleDisplayDto roleDisplayDto = new RoleDisplayDto();
roleDisplayDto.setName("RoleToAdd");
roleDisplayDto.setDescription("RoleToAdd Description");
roleDisplayDto.setRoleCategoryId("RoleCategoryId");
roleDisplayDto.setServiceTypeId("2");
roleDisplayDto.setPermissionIds(Arrays.asList("c47aa78d-5256-4070-8cc4-7d786ca08cf5",
"08cb9f7f-b3c7-4306-9d34-627b8823115e", "19927484-d350-42b0-8f04-c418aabd82e8",
"4a27b017-f1eb-4c1f-83a3-047df810285a", "61e0b2f8-b6ca-4139-9e0a-f879e3b5155a",
"1b78cbc2-4179-4486-ba95-5e576660fc54", "765065ab-02eb-434e-a37b-d890be541de9",
"e7323ddc-d5a4-40b6-8646-55f7fbcdfe7b", "2b6945c2-5189-4b73-b255-6d4f957ed3af"));
String roleId = roleService.addRole(roleDisplayDto);
// check role
Role role = roleMapper.selectByPrimaryKey(roleId);
Assert.assertEquals("RoleToAdd", role.getName());
Assert.assertEquals("RoleToAdd Description", role.getDescription());
Assert.assertEquals("RoleCategoryId", role.getRoleCategoryId());
// check role permission
RolePermissionExample example = new RolePermissionExample();
example.createCriteria().andRoleIdEqualTo(roleId);
List<RolePermission> rolePermissionList = rolePermissionMapper.selectByExample(example);
Assert.assertEquals(9, rolePermissionList.size());
// check operationLog
List<OperationLogRole> logs = operationLogRoleMapper.selectByExample(null);
Assert.assertEquals(10, logs.size());
}
@Test
public void addRoleTestNameDuplicated() {
// data preparation
execSqlFile("sql/permission_data.sql");
execSqlFile("sql/user_role_permission_data.sql");
// prepare dto
RoleDisplayDto roleDisplayDto = new RoleDisplayDto();
roleDisplayDto.setName("新增/复制工作流");
roleDisplayDto.setDescription("RoleToAdd Description");
roleDisplayDto.setRoleCategoryId("RoleCategoryId");
roleDisplayDto.setServiceTypeId("2");
roleDisplayDto.setPermissionIds(Arrays.asList("c47aa78d-5256-4070-8cc4-7d786ca08cf5",
"08cb9f7f-b3c7-4306-9d34-627b8823115e", "19927484-d350-42b0-8f04-c418aabd82e8", // 修改企业账套
"4a27b017-f1eb-4c1f-83a3-047df810285a", // 查看客户列表
"61e0b2f8-b6ca-4139-9e0a-f879e3b5155a", "1b78cbc2-4179-4486-ba95-5e576660fc54",
"765065ab-02eb-434e-a37b-d890be541de9", "e7323ddc-d5a4-40b6-8646-55f7fbcdfe7b",
"2b6945c2-5189-4b73-b255-6d4f957ed3af"));
String roleId = roleService.addRole(roleDisplayDto);
Assert.assertEquals("-1", roleId);
}
@Test
public void validateRoleNameUniqueTest() {
// data preparation
execSqlFile("sql/permission_data.sql");
execSqlFile("sql/user_role_permission_data.sql");
Assert.assertEquals(true, roleService.validateRoleNameUnique("新增/复制工作流", "新增/复制工作流"));
Assert.assertEquals(false, roleService.validateRoleNameUnique("查看机构", "新增/复制工作流"));
Assert.assertEquals(true, roleService.validateRoleNameUnique("查看机构1", "新增/复制工作流"));
}
@Test
public void updateRoleTest() {
// data preparation
execSqlFile("sql/permission_data.sql");
execSqlFile("sql/user_role_permission_data.sql");
/*
* Role: id=07CCEC5C-F059-4864-8009-D460689F1007 name=新增/复制工作流
* description=1111111111111111111
* permissions[c47aa78d-5256-4070-8cc4-7d786ca08cf5 查看企业账套,
* 08cb9f7f-b3c7-4306-9d34-627b8823115e 新增企业账套] updated permissions
* [c47aa78d-5256-4070-8cc4-7d786ca08cf5 查看企业账套,
* 19927484-d350-42b0-8f04-c418aabd82e8 修改企业账套,
* 4a27b017-f1eb-4c1f-83a3-047df810285a 查看客户列表]
*/
// prepare dto
UpdateRoleInfo updateRoleInfo = new UpdateRoleInfo();
updateRoleInfo.setRoleName("新增/复制工作流 更新");
updateRoleInfo.setRoleDescription("新增/复制工作流 描述");
List<UpdateRolePermissionDto> updateRolePermissionDtoList = new ArrayList<>();
UpdateRolePermissionDto permission1 = new UpdateRolePermissionDto();
permission1.setId("c47aa78d-5256-4070-8cc4-7d786ca08cf5");
updateRolePermissionDtoList.add(permission1);
UpdateRolePermissionDto permission2 = new UpdateRolePermissionDto();
permission2.setId("19927484-d350-42b0-8f04-c418aabd82e8"); // 修改企业账套
updateRolePermissionDtoList.add(permission2);
UpdateRolePermissionDto permission3 = new UpdateRolePermissionDto();
permission3.setId("4a27b017-f1eb-4c1f-83a3-047df810285a"); // 查看客户列表
updateRolePermissionDtoList.add(permission3);
updateRoleInfo.setUpdateRolePermissionDtoList(updateRolePermissionDtoList);
roleService.updateRole(updateRoleInfo, "07CCEC5C-F059-4864-8009-D460689F1007");
// check role
Role role = roleMapper.selectByPrimaryKey("07CCEC5C-F059-4864-8009-D460689F1007");
Assert.assertEquals("新增/复制工作流 更新", role.getName());
Assert.assertEquals("新增/复制工作流 描述", role.getDescription());
// check rolePermissions
RolePermissionExample rolePermissionExample = new RolePermissionExample();
rolePermissionExample.createCriteria().andRoleIdEqualTo("07CCEC5C-F059-4864-8009-D460689F1007");
List<RolePermission> rolePermissions = rolePermissionMapper.selectByExample(rolePermissionExample);
Assert.assertEquals(3, rolePermissions.size());
RolePermission rolePermission1 = rolePermissions.stream()
.filter(sa -> sa.getPermissionId().equals("c47aa78d-5256-4070-8cc4-7d786ca08cf5")).findFirst().get();
RolePermission rolePermission2 = rolePermissions.stream()
.filter(sa -> sa.getPermissionId().equals("19927484-d350-42b0-8f04-c418aabd82e8")).findFirst().get();
RolePermission rolePermission3 = rolePermissions.stream()
.filter(sa -> sa.getPermissionId().equals("4a27b017-f1eb-4c1f-83a3-047df810285a")).findFirst().get();
Assert.assertNotNull(rolePermission1);
Assert.assertNotNull(rolePermission2);
Assert.assertNotNull(rolePermission3);
// check operation log
OperationLogRoleExample example = new OperationLogRoleExample();
example.createCriteria().andOperationActionEqualTo(OperationAction.Update.name());
List<OperationLogRole> updateRoleLogs = operationLogRoleMapper.selectByExample(example);
Assert.assertEquals(2, updateRoleLogs.size());
assertThat(updateRoleLogs).extracting("operationContent").contains("Name", "Description");
assertThat(updateRoleLogs).extracting("originalState").contains("新增/复制工作流", "1111111111111111111");
assertThat(updateRoleLogs).extracting("updateState").contains("新增/复制工作流 更新", "新增/复制工作流 描述");
example = new OperationLogRoleExample();
example.createCriteria().andOperationActionEqualTo(OperationAction.Delete.name());
List<OperationLogRole> deleteRolePermissionLogs = operationLogRoleMapper.selectByExample(example);
Assert.assertEquals(1, deleteRolePermissionLogs.size());
assertThat(deleteRolePermissionLogs).extracting("operationContent").contains("新增企业账套");
example = new OperationLogRoleExample();
example.createCriteria().andOperationActionEqualTo(OperationAction.New.name());
List<OperationLogRole> addRolePermissionLogs = operationLogRoleMapper.selectByExample(example);
Assert.assertEquals(2, addRolePermissionLogs.size());
assertThat(addRolePermissionLogs).extracting("operationContent").contains("修改企业账套", "查看客户列表");
}
@Test
public void checkUserRoleTest() {
// data preparation
execSqlFile("sql/user_role_permission_data.sql");
/*
* Role: id=07CCEC5C-F059-4864-8009-D460689F1007
*/
Assert.assertEquals(false, roleService.checkUserRole("07CCEC5C-F059-4864-8009-D460689F1007"));
}
@Test
public void deleteRoleTest() {
// data preparation
execSqlFile("sql/user_role_permission_data.sql");
/*
* Role: id=36FB1BA2-EBFA-4FDF-9B8F-0E04E9DBCB97
*/
// prepare dto
RoleDto roleDto = new RoleDto();
roleDto.setId("36FB1BA2-EBFA-4FDF-9B8F-0E04E9DBCB97");
roleDto.setName("查看机构");
roleService.deleteRole(roleDto);
// check role
Assert.assertNull(roleMapper.selectByPrimaryKey("36FB1BA2-EBFA-4FDF-9B8F-0E04E9DBCB97"));
// check rolePermission
RolePermissionExample example = new RolePermissionExample();
example.createCriteria().andRoleIdEqualTo("36FB1BA2-EBFA-4FDF-9B8F-0E04E9DBCB97");
Assert.assertEquals(0, rolePermissionMapper.selectByExample(example).size());
// check operation log
List<OperationLogRole> logs = operationLogRoleMapper.selectByExample(null);
Assert.assertEquals(1, logs.size());
assertThat(logs).extracting("operationContent").contains("查看机构");
assertThat(logs).extracting("operationAction").contains(OperationAction.Delete.name());
}
@Test
public void getUserRoleListTest() throws JsonProcessingException {
// data preparation
execSqlFile("sql/user_role_permission_data.sql");
UserRoleDimensionValueDto userRoleDimensionValueDto = new UserRoleDimensionValueDto();
userRoleDimensionValueDto.setOrganizationId("5c2b864b-738d-4843-a5fa-1a83da5a2a81");
List<UserRoleInfo> list = roleService.getUserRoleList(userRoleDimensionValueDto);
System.out.println(objectMapper.writeValueAsString(list));
}
@Test
public void getAllRolePermissionTest() {
// data preparation
execSqlFile("sql/user_role_permission_data.sql");
List<RolePermissionDto> rolePermissionDtoList = roleService.getAllRolePermission("2");
Assert.assertEquals(2, rolePermissionDtoList.size());
}
@Test
public void updateUserRoleTest() {
// data preparation
execSqlFile("sql/user_role_permission_data.sql");
/*
* user: 5f20da44-163b-44cb-974e-4b5415175026 Aimee role to delete:
* 07CCEC5C-F059-4864-8009-D460689F1007 新增/复制工作流 role to
* add:36FB1BA2-EBFA-4FDF-9B8F-0E04E9DBCB97 查看机构
*/
// dto preparation
UserRoleUpdateDto userRoleUpdateDto = new UserRoleUpdateDto();
userRoleUpdateDto.setUserId("5f20da44-163b-44cb-974e-4b5415175026");
userRoleUpdateDto.setRemovedRoles(Arrays.asList("07CCEC5C-F059-4864-8009-D460689F1007"));
userRoleUpdateDto.setAddedRoles(Arrays.asList("36FB1BA2-EBFA-4FDF-9B8F-0E04E9DBCB97"));
roleService.updateUserRole(userRoleUpdateDto);
// check db
UserRoleExample userRoleExample = new UserRoleExample();
userRoleExample.createCriteria().andUserIdEqualTo("5f20da44-163b-44cb-974e-4b5415175026");
List<UserRole> userRoleList = userRoleMapper.selectByExample(userRoleExample);
Assert.assertEquals(1, userRoleList.size());
assertThat(userRoleList).extracting("roleId").contains("36FB1BA2-EBFA-4FDF-9B8F-0E04E9DBCB97");
}
@Test
public void getDimensionRoleUserListTest() {
// TODO
}
@Test
public void getDimensionUserRoleListTest() {
// TODO
}
@Test
public void getActiveUserRoleListByAreaIdTest() {
// TODO
}
}
package pwc.taxtech.atms.service.impl;
import org.junit.Before;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import pwc.taxtech.atms.CommonIT;
import pwc.taxtech.atms.constant.DimensionConstant;
import pwc.taxtech.atms.dpo.StatisticAttributeDisplayDto;
import pwc.taxtech.atms.dto.StatisticAttributeDto;
import pwc.taxtech.atms.entity.Dictionary;
import pwc.taxtech.atms.entity.StatisticAttribute;
import pwc.taxtech.atms.service.StatisticAttributeService;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import static org.assertj.core.api.Assertions.assertThat;
public class StatisticAttributeServiceIT extends CommonIT {
@Before
public void setUp() {
statisticAttributeMapper.deleteByExample(null);
statisticAttributeDimensionMapper.deleteByExample(null);
dictionaryMapper.deleteByExample(null);
}
@Autowired
private StatisticAttributeService statisticAttributeService;
private void insertBaseDataForStatisticAttribute() {
// 准备三条StatisticAttribute数据
// select * from StatisticAttribute where id in
// ('c61a5bd6-a996-4952-9869-d053995237e7','c61a5bd6-a996-4952-9869-d053996237e8','c61a5bd6-a996-4952-9869-d053995237e6')
{
StatisticAttribute record = newRecord();
record.setId(DimensionConstant.OrgSubChildrenId);
record.setName("机构");
statisticAttributeMapper.insert(record);
}
{
StatisticAttribute record = newRecord();
record.setId(DimensionConstant.AreaId);
record.setName("覆盖区域");
statisticAttributeMapper.insert(record);
}
{
StatisticAttribute record = newRecord();
record.setId(DimensionConstant.UserId);
record.setName("用户数");
statisticAttributeMapper.insert(record);
}
}
private StatisticAttribute newRecord() {
StatisticAttribute record = new StatisticAttribute();
record.setIsActive(true);
record.setCreateTime(new Date());
record.setUpdateTime(new Date());
return record;
}
@Test
public void getStatisticAttributeListByDimensionId() {
String parentDimensionId = "id1";
List<StatisticAttributeDisplayDto> rawAttrList = new ArrayList<>();
statisticAttributeService.getStatisticAttributeListByDimensionId(parentDimensionId, rawAttrList);
}
@Test
public void getStatisticAttributeList() {
insertBaseDataForStatisticAttribute();
List<StatisticAttributeDto> list = statisticAttributeService.getStatisticAttributeList(null);
assertThat(list).isNotEmpty();
}
@Test
public void getStatisticAttributeListWithCode() {
insertBaseDataForStatisticAttribute();
insertDict();
List<StatisticAttributeDto> list = statisticAttributeService.getStatisticAttributeList("code1");
assertThat(list).isNotEmpty();
assertThat(list).extracting("name").contains("dictvalue1", "用户数");
}
@Test
public void updateStatisticAttribute() {
assertThat(statisticAttributeService.updateStatisticAttribute(null).getResult()).isTrue();
}
public void insertDict() {
Dictionary record = new Dictionary();
record.setId("dictionary_unit_test_uuid");
record.setCode("code1");
record.setCreateTime(new Date());
record.setUpdateTime(new Date());
record.setDictKey("dictkey1");
record.setDictValue("dictvalue1");
record.setIsActive(true);
record.setOrderIndex(1);
record.setParentCode("");
record.setRemark("");
dictionaryMapper.insert(record);
}
}
package pwc.taxtech.atms.service.impl;
import java.util.Date;
import org.junit.Test;
import pwc.taxtech.atms.dto.UpdateLogParams;
import pwc.taxtech.atms.entity.OrganizationStructure;
public class UpdateLogParamsTest{
@Test
public void test()
throws NoSuchFieldException, SecurityException, IllegalArgumentException, IllegalAccessException {
UpdateLogParams updateLogParams = new UpdateLogParams();
OrganizationStructure origin = new OrganizationStructure();
Date date = new Date();
origin.setId("1");
origin.setIsActive(true);
origin.setCreateTime(date);
origin.setUpdateTime(date);
origin.setName("abc");
OrganizationStructure update = new OrganizationStructure();
update.setId("1");
update.setIsActive(false);
update.setCreateTime(date);
update.setUpdateTime(date);
update.setName("cba");
updateLogParams.setOriginalState(origin);
updateLogParams.setUpdateState(update);
}
}
package pwc.taxtech.atms.service.impl;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import pwc.taxtech.atms.CommonIT;
import pwc.taxtech.atms.CommonTestUtils;
import pwc.taxtech.atms.common.CheckState;
import pwc.taxtech.atms.dto.LoginOutputDto;
import pwc.taxtech.atms.dto.OperationResultDto;
import pwc.taxtech.atms.dto.user.UserPasswordDto;
import pwc.taxtech.atms.entity.User;
import pwc.taxtech.atms.service.UserAccountService;
import pwc.taxtech.atms.service.UserService;
public class UserAccountServiceIT extends CommonIT {
private static final Logger logger = LoggerFactory.getLogger(UserAccountServiceIT.class);
@Autowired
private UserAccountService userAccountService;
@Autowired
private UserService userService;
@Before
public void setUp() {
cleanUpAllTables();
CommonTestUtils.initTestAuth();
}
@Test
public void noUser() {
UserPasswordDto userPasswordDto = new UserPasswordDto();
userPasswordDto.setOldPassword("11111");
userPasswordDto.setNewPassword("222222");
OperationResultDto<LoginOutputDto> result = userAccountService.changeExternalUserPassword(userPasswordDto);
Assert.assertFalse(result.getResult());
Integer checkstate = result.getData().getCheckState();
Assert.assertEquals(CheckState.UserNameNotExist.name(), CheckState.int2str(checkstate));
}
@Test
public void changePasswordOk() {
execSqlFile("sql/user_data.sql");
UserPasswordDto userPasswordDto = new UserPasswordDto();
userPasswordDto.setOldPassword("111111");
userPasswordDto.setNewPassword("222222");
OperationResultDto<LoginOutputDto> result = userAccountService.changeExternalUserPassword(userPasswordDto);
Assert.assertTrue(result.getResult());
User tempUser = userMapper.selectByUserNameIgnoreCase("admin");
OperationResultDto<LoginOutputDto> loginResult = userService.externalUserLogin(tempUser, "admin", "222222");
Assert.assertTrue(loginResult.getResult());
}
@Test
public void forgetPasswordFailed() {
OperationResultDto result = userAccountService.forgetPassword("anyuser");
Assert.assertTrue(result.getResult());
long count = mailQueueMapper.countByExample(null);
Assert.assertTrue(count == 0);
}
@Test
public void forgetPasswordSuccess() {
execSqlFile("sql/user_data.sql");
OperationResultDto result = userAccountService.forgetPassword("test@test.com");
Assert.assertTrue(result.getResult());
long count = mailQueueMapper.countByExample(null);
Assert.assertTrue(count == 1);
}
}
package pwc.taxtech.atms.service.impl;
import org.junit.Assert;
import org.junit.Test;
public class UserAccountServiceImplTest {
@Test
public void testSubject() {
UserAccountServiceImpl accountServiceImpl = new UserAccountServiceImpl();
String sub = accountServiceImpl.readHtmlTitle("xxx <title>mysub1</title> yyy");
Assert.assertEquals("mysub1", sub);
}
@Test
public void testSubjectWithSpace() {
UserAccountServiceImpl accountServiceImpl = new UserAccountServiceImpl();
String sub = accountServiceImpl.readHtmlTitle("xxx\r\n <title> mysub2 \r\n </title>\r\n yyy");
Assert.assertEquals("mysub2", sub);
}
}
package pwc.taxtech.atms.service.impl;
import com.alibaba.fastjson.JSON;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.commons.lang3.BooleanUtils;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import pwc.taxtech.atms.CommonIT;
import pwc.taxtech.atms.common.CheckState;
import pwc.taxtech.atms.common.CommonUtils;
import pwc.taxtech.atms.common.RoleSourceEnum;
import pwc.taxtech.atms.common.UserStatus;
import pwc.taxtech.atms.dpo.RoleInfo;
import pwc.taxtech.atms.dpo.UserDto;
import pwc.taxtech.atms.dpo.UserOrgRoleDto;
import pwc.taxtech.atms.dto.LoginInputDto;
import pwc.taxtech.atms.dto.LoginOutputDto;
import pwc.taxtech.atms.dto.OperationResultDto;
import pwc.taxtech.atms.dto.organization.DimensionRoleDto;
import pwc.taxtech.atms.dto.organization.OrgRoleDto;
import pwc.taxtech.atms.dto.organization.OrgRoleDtoList;
import pwc.taxtech.atms.dto.permission.PermissionDto;
import pwc.taxtech.atms.dto.permission.PermissionKeyDto;
import pwc.taxtech.atms.dto.permission.UserPermissionDto;
import pwc.taxtech.atms.dto.permission.UserPermissionKeyDto;
import pwc.taxtech.atms.dto.user.UpdateParam;
import pwc.taxtech.atms.dto.user.UserAndUserRoleSaveDto;
import pwc.taxtech.atms.dto.user.UserOrganizationDto;
import pwc.taxtech.atms.dto.user.UserRoleDimensionValueDto;
import pwc.taxtech.atms.dto.user.UserRoleDisplayInfo;
import pwc.taxtech.atms.entity.User;
import pwc.taxtech.atms.entity.UserDimensionValue;
import pwc.taxtech.atms.entity.UserDimensionValueOrg;
import pwc.taxtech.atms.entity.UserDimensionValueOrgExample;
import pwc.taxtech.atms.entity.UserDimensionValueRole;
import pwc.taxtech.atms.entity.UserDimensionValueRoleExample;
import pwc.taxtech.atms.entity.UserOrganization;
import pwc.taxtech.atms.security.JwtAuthenticationProvider;
import pwc.taxtech.atms.security.JwtAuthenticationToken;
import pwc.taxtech.atms.service.UserRoleService;
import pwc.taxtech.atms.service.UserService;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import static org.junit.Assert.assertNotNull;
public class UserServiceIT extends CommonIT {
private static final Logger logger = LoggerFactory.getLogger(UserServiceIT.class);
@Autowired
private UserService userService;
@Autowired
private UserRoleService userRoleService;
@Autowired
private ObjectMapper objectMapper;
@Autowired
private JwtAuthenticationProvider jwtAuthenticationProvider;
@Before
public void setUp() {
cleanUpAllTables();
// get current user name
Authentication request = new JwtAuthenticationToken("xxxx");
Authentication authenticaiton = jwtAuthenticationProvider.authenticate(request);
SecurityContextHolder.getContext().setAuthentication(authenticaiton);
}
@Test(expected = IllegalArgumentException.class)
public void loginWithNull() {
LoginInputDto input = new LoginInputDto();
OperationResultDto<LoginOutputDto> result = userService.login(input);
logger.debug("print result json:{}", JSON.toJSONString(result, true));
}
@Test
public void loginOk() {
execSqlFile("sql/user_data.sql");
LoginInputDto input = new LoginInputDto();
input.setEmail("admin");
input.setPassword("111111");
OperationResultDto<LoginOutputDto> result = userService.login(input);
Assert.assertTrue(result.getResult());
Assert.assertEquals(CheckState.Success.value(), result.getData().getCheckState());
}
@Test
public void loginBadPassword() {
execSqlFile("sql/user_data.sql");
LoginInputDto input = new LoginInputDto();
input.setEmail("admin");
input.setPassword("badPassword");
OperationResultDto<LoginOutputDto> result = userService.login(input);
Assert.assertFalse(result.getResult());
Assert.assertEquals(CheckState.WrongPassword.value(), result.getData().getCheckState());
// logger.debug("print result json:{}", JSON.toJSONString(result, true));
// {
// "data":{
// "CheckState":4
// },
// "result":false
// }
}
@Test
public void loginUserNameNotExist() {
execSqlFile("sql/user_data.sql");
LoginInputDto input = new LoginInputDto();
input.setEmail("adminxxx");
input.setPassword("na");
OperationResultDto<LoginOutputDto> result = userService.login(input);
Assert.assertFalse(result.getResult());
Assert.assertEquals(CheckState.UserNameNotExist.value(), result.getData().getCheckState());
}
@Test
public void tryWrongPwd6Times() {
execSqlFile("sql/user_data.sql");
User tempUser0 = userMapper.selectByUserNameIgnoreCase("admin");
Assert.assertEquals(UserStatus.Active.value(), tempUser0.getStatus());
for (int i = 0; i < 5; i++) {
LoginInputDto input = new LoginInputDto();
input.setEmail("admin");
input.setPassword("badPassword");
OperationResultDto<LoginOutputDto> result = userService.login(input);
Assert.assertFalse(result.getResult());
// logger.debug("" + result.getData().getCheckState());
Assert.assertEquals(CheckState.WrongPassword.value(), result.getData().getCheckState());
}
{
LoginInputDto input = new LoginInputDto();
input.setEmail("admin");
input.setPassword("badPassword");
OperationResultDto<LoginOutputDto> result = userService.login(input);
Assert.assertFalse(result.getResult());
// logger.debug("" + result.getData().getCheckState());
Assert.assertEquals(CheckState.Inactive.value(), result.getData().getCheckState());
}
User tempUser = userMapper.selectByUserNameIgnoreCase("admin");
logger.debug("print user.status:" + tempUser.getStatus());
Assert.assertEquals(UserStatus.Locked.value(), tempUser.getStatus());
}
@Test
public void getUserPermissionTest() {
execSqlFile("sql/user_data.sql");
execSqlFile("sql/userPermission_data.sql");
UserPermissionDto userPermissionDto = userService.getUserPermission("admin");
Assert.assertNotNull(userPermissionDto);
Assert.assertNotNull(userPermissionDto.getPermissionList());
Assert.assertNotNull(userPermissionDto.getNavigationUrlList());
Assert.assertTrue(userPermissionDto.getIsAdmin());
Assert.assertTrue(userPermissionDto.getIsSuperAdmin());
Assert.assertEquals("admin", userPermissionDto.getUserName());
Assert.assertEquals("66933E7B-DA75-4B2E-B7D6-AB65DCA20D50", userPermissionDto.getId());
Assert.assertEquals(71, userPermissionDto.getPermissionList().size());
Assert.assertEquals(8, userPermissionDto.getNavigationUrlList().size());
List<PermissionDto> permissionDtos = userPermissionDto.getPermissionList().stream()
.filter(p -> "a856fc05-e581-45af-bc51-951ffd836814".equals(p.getId())).collect(Collectors.toList());
Assert.assertEquals(1, permissionDtos.size());
Assert.assertEquals("02.004.002", permissionDtos.get(0).getCode());
}
@Test
public void getUserPermissionKeyTest() {
execSqlFile("sql/user_data.sql");
execSqlFile("sql/userPermission_data.sql");
UserPermissionKeyDto userPermissionKeyDto = userService.getUserPermissionKey("admin");
Assert.assertNotNull(userPermissionKeyDto);
Assert.assertNotNull(userPermissionKeyDto.getPermissionList());
Assert.assertNotNull(userPermissionKeyDto.getNavigationUrlList());
Assert.assertTrue(userPermissionKeyDto.getIsAdmin());
Assert.assertTrue(userPermissionKeyDto.getIsSuperAdmin());
Assert.assertEquals("admin", userPermissionKeyDto.getUserName());
Assert.assertEquals("66933E7B-DA75-4B2E-B7D6-AB65DCA20D50", userPermissionKeyDto.getId());
Assert.assertEquals(71, userPermissionKeyDto.getPermissionList().size());
Assert.assertEquals(7, userPermissionKeyDto.getNavigationUrlList().size());
List<PermissionKeyDto> permissionDtos = userPermissionKeyDto.getPermissionList().stream()
.filter(p -> "a856fc05-e581-45af-bc51-951ffd836814".equals(p.getId())).collect(Collectors.toList());
Assert.assertEquals(1, permissionDtos.size());
Assert.assertEquals("02.004.002", permissionDtos.get(0).getCode());
}
@Test
public void getAllUserRoleListTest() {
execSqlFile("sql/user_role_list_data.sql");
List<UserRoleDisplayInfo> userRoleDisplayInfos = userRoleService.getAllUserRoleList("2");
Assert.assertNotNull(userRoleDisplayInfos);
Assert.assertEquals(1, userRoleDisplayInfos.size());
UserRoleDisplayInfo userRoleDisplayInfo = userRoleDisplayInfos.get(0);
Assert.assertEquals("90f39fbc-e91f-43c5-b3e5-e695dd423e41", userRoleDisplayInfo.getUserId());
Assert.assertEquals("bella验证世茂", userRoleDisplayInfo.getUserName());
Assert.assertEquals("1221321@com", userRoleDisplayInfo.getEmail());
Integer status = 1;
Assert.assertEquals(status, userRoleDisplayInfo.getStatus());
Assert.assertEquals("22336432-cd75-4359-9a70-41f5e7755a25", userRoleDisplayInfo.getOrganizationId());
Assert.assertNull(userRoleDisplayInfo.getServiceTypeId());
Assert.assertEquals("90f39fbc-e91f-43c5-b3e5-e695dd423e41", userRoleDisplayInfo.getId());
Assert.assertNotNull(userRoleDisplayInfo.getRoleInfoList());
Assert.assertEquals(1, userRoleDisplayInfo.getRoleInfoList().size());
RoleInfo roleInfo = userRoleDisplayInfo.getRoleInfoList().get(0);
Assert.assertEquals("Admin系统管理员", roleInfo.getName());
Assert.assertEquals(RoleSourceEnum.OriginalLevel.value(), roleInfo.getRoleSource());
Assert.assertEquals("1CC31CE3-DE83-4FCC-8D96-F09CFBAE8783", roleInfo.getId());
}
@Test
public void getUserTest() {
execSqlFile("sql/user_role_list_data.sql");
UserDto userDto = userService.getUserById("90f39fbc-e91f-43c5-b3e5-e695dd423e41");
Assert.assertNotNull(userDto);
Assert.assertEquals("bella验证世茂", userDto.getUserName());
Assert.assertEquals("1221321@com", userDto.getEmail());
Integer value = 3;
Assert.assertEquals(value, userDto.getLoginType());
value = 1;
Assert.assertEquals(value, userDto.getStatus());
Assert.assertNotNull(userDto.getCreateTime());
Assert.assertNotNull(userDto.getUpdateTime());
Assert.assertTrue(userDto.getIsAdmin());
value = 0;
Assert.assertEquals(value, userDto.getAttemptTimes());
Assert.assertEquals("22336432-cd75-4359-9a70-41f5e7755a25", userDto.getOrganizationId());
Assert.assertEquals("90f39fbc-e91f-43c5-b3e5-e695dd423e41", userDto.getId());
}
@Test
public void getSingleUserByUserIdTest() {
execSqlFile("sql/user_role_list_data.sql");
UserAndUserRoleSaveDto userAndUserRoleSaveDto = userRoleService
.getSingleUserByUserId("90f39fbc-e91f-43c5-b3e5-e695dd423e41");
Assert.assertNotNull(userAndUserRoleSaveDto);
Assert.assertEquals("bella验证世茂", userAndUserRoleSaveDto.getUserName());
Assert.assertEquals("1221321@com", userAndUserRoleSaveDto.getEmail());
Integer value = 3;
Assert.assertEquals(value, userAndUserRoleSaveDto.getLoginType());
value = 1;
Assert.assertEquals(value, userAndUserRoleSaveDto.getStatus());
Assert.assertNotNull(userAndUserRoleSaveDto.getCreateTime());
Assert.assertNotNull(userAndUserRoleSaveDto.getUpdateTime());
Assert.assertTrue(userAndUserRoleSaveDto.getIsAdmin());
value = 0;
Assert.assertEquals(value, userAndUserRoleSaveDto.getAttemptTimes());
Assert.assertEquals("22336432-cd75-4359-9a70-41f5e7755a25", userAndUserRoleSaveDto.getOrganizationId());
Assert.assertEquals("90f39fbc-e91f-43c5-b3e5-e695dd423e41", userAndUserRoleSaveDto.getId());
Assert.assertNotNull(userAndUserRoleSaveDto.getRoleIds());
Assert.assertEquals(1, userAndUserRoleSaveDto.getRoleIds().size());
Assert.assertEquals("1CC31CE3-DE83-4FCC-8D96-F09CFBAE8783", userAndUserRoleSaveDto.getRoleIds().get(0));
Assert.assertNotNull(userAndUserRoleSaveDto.getRoleNames());
Assert.assertEquals(1, userAndUserRoleSaveDto.getRoleNames().size());
Assert.assertEquals("Admin系统管理员", userAndUserRoleSaveDto.getRoleNames().get(0));
}
@Test
public void getUserRoleListByUserIdTest() {
execSqlFile("sql/user_role_list_data.sql");
UserRoleDisplayInfo userRoleDisplayInfo = userRoleService
.getUserRoleListByUserId("90f39fbc-e91f-43c5-b3e5-e695dd423e41");
Assert.assertNotNull(userRoleDisplayInfo);
Assert.assertEquals("90f39fbc-e91f-43c5-b3e5-e695dd423e41", userRoleDisplayInfo.getUserId());
Assert.assertEquals("bella验证世茂", userRoleDisplayInfo.getUserName());
Assert.assertEquals("1221321@com", userRoleDisplayInfo.getEmail());
Integer status = 1;
Assert.assertEquals(status, userRoleDisplayInfo.getStatus());
Assert.assertEquals("22336432-cd75-4359-9a70-41f5e7755a25", userRoleDisplayInfo.getOrganizationId());
Assert.assertNull(userRoleDisplayInfo.getServiceTypeId());
Assert.assertEquals("90f39fbc-e91f-43c5-b3e5-e695dd423e41", userRoleDisplayInfo.getId());
Assert.assertNotNull(userRoleDisplayInfo.getRoleInfoList());
Assert.assertEquals(1, userRoleDisplayInfo.getRoleInfoList().size());
RoleInfo roleInfo = userRoleDisplayInfo.getRoleInfoList().get(0);
Assert.assertEquals("Admin系统管理员", roleInfo.getName());
Assert.assertEquals(RoleSourceEnum.OriginalLevel.value(), roleInfo.getRoleSource());
Assert.assertEquals("1CC31CE3-DE83-4FCC-8D96-F09CFBAE8783", roleInfo.getId());
}
@Test
public void getUserRoleByOrgIdUserIdTest() {
execSqlFile("sql/user_data.sql");
execSqlFile("sql/role_related_data.sql");
UserOrganizationDto userOrganizationDto = userRoleService
.getUserRoleByOrgId("66933E7B-DA75-4B2E-B7D6-AB65DCA20D50", "2d87ff73-2d13-43aa-851c-efe7b59e21af");
Assert.assertNotNull(userOrganizationDto);
Assert.assertNotNull(userOrganizationDto.getOrganizationName());
Assert.assertNull(userOrganizationDto.getUserId());
Assert.assertNull(userOrganizationDto.getOrganizationId());
Assert.assertNull(userOrganizationDto.getHasOriginalRole());
Assert.assertTrue(userOrganizationDto.getIsAccessible());
}
@Test
public void getUserRoleByUserIdTest() {
execSqlFile("sql/user_data.sql");
execSqlFile("sql/role_related_data.sql");
OrgRoleDtoList orgRoleDtoList = userRoleService.getUserRoleByUserId("66933E7B-DA75-4B2E-B7D6-AB65DCA20D50");
Assert.assertEquals(4, orgRoleDtoList.getOrgDtoList().size());
Assert.assertEquals(4, orgRoleDtoList.getOrgRoleInfoList().size());
OrgRoleDto orgRoleDto = orgRoleDtoList.getOrgDtoList().stream().filter(s -> "741".equals(s.getOrgName()))
.findFirst().orElse(null);
Assert.assertNotNull(orgRoleDto);
Assert.assertEquals("d0447c7b-5315-4da4-96f7-9ff8335f74fd", orgRoleDto.getOrgId());
Assert.assertEquals(7, orgRoleDto.getRoleList().size());
}
@Test
public void getOrgBuAreaIndustryUserTest() {
execSqlFile("sql/user_org_area_industry_test.sql");
List<DimensionRoleDto> dimensionRoleDtos = userRoleService
.getOrgBuAreaIndustryUser("d0665e84-ab6e-4393-8b3c-666cff461efe");
Assert.assertNotNull(dimensionRoleDtos);
Assert.assertEquals(3, dimensionRoleDtos.size());
DimensionRoleDto dimensionRoleDto = dimensionRoleDtos.stream()
.filter(x -> "test8".equals(x.getDimensionValueName())).findFirst().orElse(null);
Assert.assertNotNull(dimensionRoleDto);
Assert.assertEquals("c61a5bd6-a996-4952-9869-d053995237e5", dimensionRoleDto.getDimensionId());
Assert.assertEquals("事业部", dimensionRoleDto.getDimensionName());
Assert.assertEquals("2399fb65-896a-4c99-9295-b73585bd1b50", dimensionRoleDto.getDimensionValueId());
Assert.assertNotNull(dimensionRoleDto.getRoleList());
Assert.assertEquals(8, dimensionRoleDto.getRoleList().size());
Assert.assertTrue(dimensionRoleDto.getIsAccessible());
Assert.assertTrue(dimensionRoleDto.getHasOriginalRole());
}
@SuppressWarnings("rawtypes")
@Test
public void enableOrDisableUserTest() {
execSqlFile("sql/user_data.sql");
execSqlFile("sql/role_related_data.sql");
UpdateParam updateParam = new UpdateParam();
updateParam.setUpdateType(0);
updateParam.setUserId("66933E7B-DA75-4B2E-B7D6-AB65DCA20D50");
OperationResultDto operationResultDto = userRoleService.enableOrDisableUser(updateParam);
Assert.assertNotNull(operationResultDto);
Assert.assertTrue(operationResultDto.getResult());
Assert.assertNull(operationResultDto.getResultMsg());
Assert.assertNull(operationResultDto.getReturnCode());
Assert.assertNull(operationResultDto.getErrors());
Assert.assertNull(operationResultDto.getData());
User user = userMapper.selectByPrimaryKey("66933E7B-DA75-4B2E-B7D6-AB65DCA20D50");
Assert.assertNotNull(user);
Integer status = 0;
Assert.assertEquals(status, user.getStatus());
}
@SuppressWarnings("rawtypes")
@Test
public void deleteUserRoleOrgTest() {
execSqlFile("sql/user_data.sql");
execSqlFile("sql/organization_filter_list_data.sql");
UserOrganization userOrganization = new UserOrganization();
String uuid = CommonUtils.getUUID();
String userId = "66933E7B-DA75-4B2E-B7D6-AB65DCA20D50";
String organizationId = "0a8fa9d8-db43-4820-94db-70ca02185b01";
String dimensionId = CommonUtils.getUUID();
String dimensionValueId = CommonUtils.getUUID();
userOrganization.setId(uuid);
userOrganization.setUserId(userId);
userOrganization.setOrganizationId(organizationId);
userOrganization.setIsAccessible(true);
userOrganization.setHasOriginalRole(true);
userOrganizationMapper.insert(userOrganization);
UserDimensionValue userDimensionValue = new UserDimensionValue();
userDimensionValue.setId(uuid);
userDimensionValue.setUserId(userId);
userDimensionValue.setDimensionId(dimensionId);
userDimensionValue.setDimensionValueId(dimensionValueId);
userDimensionValue.setIsAccessible(true);
userDimensionValue.setHasOriginalRole(true);
userDimensionValueMapper.insert(userDimensionValue);
UserRoleDimensionValueDto userRoleDimensionValueDto = new UserRoleDimensionValueDto();
userRoleDimensionValueDto.setDimensionValueId(dimensionValueId);
userRoleDimensionValueDto.setDimensionId(dimensionId);
userRoleDimensionValueDto.setUserId(userId);
userRoleDimensionValueDto.setOrganizationId(organizationId);
userRoleDimensionValueDto.setIsHeritable(false);
List<UserRoleDimensionValueDto> list = new ArrayList<>();
list.add(userRoleDimensionValueDto);
OperationResultDto operationResultDto = userRoleService.deleteUserRoleOrg(list);
Assert.assertTrue(BooleanUtils.isTrue(operationResultDto.getResult()));
UserDimensionValueOrgExample userDimensionValueOrgExample = new UserDimensionValueOrgExample();
userDimensionValueOrgExample.createCriteria().andOrganizationIdEqualTo(organizationId);
List<UserDimensionValueOrg> userDimensionValueOrgList = userDimensionValueOrgMapper
.selectByExample(userDimensionValueOrgExample);
Assert.assertFalse(userDimensionValueOrgList.isEmpty());
UserDimensionValueOrg userDimensionValueOrg = userDimensionValueOrgList.get(0);
Assert.assertEquals(uuid, userDimensionValueOrg.getUserDimensionValueId());
Assert.assertFalse(userDimensionValueOrg.getIsHeritable());
}
@Test
public void getUserRoleByDimensionValueIdTest() {
execSqlFile("sql/user_data.sql");
execSqlFile("sql/role_related_data.sql");
List<UserRoleDisplayInfo> userRoleDisplayInfos = userRoleService.getUserRoleByDimensionValueId(
"c61a5bd6-a996-4952-9869-d053995237e6", "e2c4a67d-e7de-4037-939b-e6d437265ab0");
Assert.assertNotNull(userRoleDisplayInfos);
Assert.assertEquals(2, userRoleDisplayInfos.size());
UserRoleDisplayInfo userRoleDisplayInfo = userRoleDisplayInfos.stream()
.filter(s -> "Admin".equals(s.getUserName())).findFirst().orElse(null);
Assert.assertNotNull(userRoleDisplayInfo);
Assert.assertEquals("66933E7B-DA75-4B2E-B7D6-AB65DCA20D50", userRoleDisplayInfo.getUserId());
Assert.assertNotNull(userRoleDisplayInfo.getRoleInfoList());
Assert.assertEquals(7, userRoleDisplayInfo.getRoleInfoList().size());
Assert.assertTrue(userRoleDisplayInfo.getIsAccessible());
Assert.assertTrue(userRoleDisplayInfo.getHasOriginalRole());
}
@Test
public void getSpecialUserRoleByDimensionValueIdTest() {
// TODO
execSqlFile("sql/user_data.sql");
execSqlFile("sql/role_related_data.sql");
List<UserRoleDisplayInfo> userRoleDisplayInfos = userRoleService.getSpecialUserRoleByDimensionValueId(
"c61a5bd6-a996-4952-9869-d053995237e6", "e2c4a67d-e7de-4037-939b-e6d437265ab0");
Assert.assertNotNull(userRoleDisplayInfos);
}
@Test
public void getDimensionUserRoleListTest() {
// TODO
execSqlFile("sql/user_data.sql");
execSqlFile("sql/role_related_data.sql");
List<UserOrgRoleDto> userRoleDisplayInfos = userRoleService.getDimensionUserRoleList(
"c61a5bd6-a996-4952-9869-d053995237e6", "e2c4a67d-e7de-4037-939b-e6d437265ab0");
Assert.assertNotNull(userRoleDisplayInfos);
}
@SuppressWarnings("rawtypes")
@Test
public void updateUserRoleDimensionTest() {
execSqlFile("sql/userRoleDimension_update_test.sql");
List<UserRoleDimensionValueDto> userRoleList = new ArrayList<>();
UserRoleDimensionValueDto userRoleDimensionValueDto1 = new UserRoleDimensionValueDto();
userRoleDimensionValueDto1.setId("dd7808cd-e452-6ed2-4427-bb1a6c32cb0a");
userRoleDimensionValueDto1.setDimensionValueId("2399fb65-896a-4c99-9295-b73585bd1b50");
userRoleDimensionValueDto1.setDimensionId("c61a5bd6-a996-4952-9869-d053995237e5");
userRoleDimensionValueDto1.setUserId("d0665e84-ab6e-4393-8b3c-666cff461efe");
userRoleDimensionValueDto1.setRoleId("05D40C22-03F5-4A0F-A4B3-CEB1D7E6B9DC");
userRoleDimensionValueDto1.setIsAdd(true);
userRoleDimensionValueDto1.setIsAccessible(true);
userRoleDimensionValueDto1.setHasOriginalRole(true);
userRoleList.add(userRoleDimensionValueDto1);
UserRoleDimensionValueDto userRoleDimensionValueDto2 = new UserRoleDimensionValueDto();
userRoleDimensionValueDto2.setId("c5b0f6ed-97a1-314f-a8a0-9116f070294b");
userRoleDimensionValueDto2.setDimensionValueId("2399fb65-896a-4c99-9295-b73585bd1b50");
userRoleDimensionValueDto2.setDimensionId("c61a5bd6-a996-4952-9869-d053995237e5");
userRoleDimensionValueDto2.setUserId("d0665e84-ab6e-4393-8b3c-666cff461efe");
userRoleDimensionValueDto2.setRoleId("07CCEC5C-F059-4864-8009-D460689F1007");
userRoleDimensionValueDto2.setIsAdd(true);
userRoleDimensionValueDto2.setIsAccessible(true);
userRoleDimensionValueDto2.setHasOriginalRole(true);
userRoleList.add(userRoleDimensionValueDto2);
OperationResultDto operationResultDto = userRoleService.updateUserRoleDimension(userRoleList);
assertNotNull(operationResultDto);
Assert.assertTrue(operationResultDto.getResult());
UserDimensionValueRole us = userDimensionValueRoleMapper
.selectByPrimaryKey("67DD050E-BC8D-4B5B-A3EA-86121533D07F");
Assert.assertNull(us);
List<UserDimensionValueRole> list = userDimensionValueRoleMapper
.selectByExample(new UserDimensionValueRoleExample());
Assert.assertEquals(2, list.size());
}
@Test
public void updateUserTest() {
// TODO
}
@Test
public void updateUserRoleOrganizationTest() {
// TODO
}
@Test
public void addUserTest() {
// TODO
}
@Test
public void deleteUserDimensionValueTest() {
// TODO
}
@Test
public void deleteUserOrgTest() {
// TODO
}
@Test
public void updateUserRoleForOrgTest() {
// TODO
}
@Test
public void deleteUserRoleDimensionTest() {
//TODO
}
@Test
public void updateUserRoleForDimensionTest() {
//TODO
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment