You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
114 lines
7.6 KiB
114 lines
7.6 KiB
package com.fr.design.actions.replace.action.content.tabledata; |
|
|
|
import com.fr.data.TableReplacementEntity; |
|
import junit.framework.TestCase; |
|
import org.junit.Assert; |
|
|
|
import java.util.ArrayList; |
|
import java.util.HashSet; |
|
import java.util.List; |
|
import java.util.Set; |
|
|
|
/** |
|
* 公式工具类的单测 |
|
* |
|
* @author Destiny.Lin |
|
* @since 11.0 |
|
* Created on 2024/11/5 |
|
*/ |
|
public class TableDataFormulaUtilsTest extends TestCase { |
|
|
|
public void testSearch() { |
|
String rowcount = "=ROWCOUNT(\"123\")"; |
|
Set<String> strings = new HashSet<>(); |
|
strings.add("123"); |
|
Assert.assertEquals(TableDataFormulaUtils.search4TableData(rowcount), strings); |
|
Set<String> errorSet = new HashSet<>(); |
|
errorSet.add("1223"); |
|
Assert.assertNotEquals(TableDataFormulaUtils.search4TableData(rowcount), errorSet); |
|
String str = "=COLNAME(\"test-测试\",COLCOUNT(\"列数嵌套123\"))"; |
|
Set<String> qiantao = new HashSet<>(); |
|
qiantao.add("test-测试"); |
|
qiantao.add("列数嵌套123"); |
|
Assert.assertEquals(TableDataFormulaUtils.search4TableData(str), qiantao); |
|
String str2 = "=sum(len(MAP(value(\"test-测试1\",COLNAME(\"test-测试2\",2),COLCOUNT(\"test-测试3\")),\"test-测试4\",COLNAME(\"test-测试5\",2),COLNAME(\"test-测试6\",4))),ROWCOUNT(\"test-测试7\"),len(TABLEDATAFIELDS(\"test-测试8\")))"; |
|
Set<String> qiantao2 = TableDataFormulaUtils.search4TableData(str2); |
|
Assert.assertTrue(qiantao2.contains("test-测试1")); |
|
Assert.assertTrue(qiantao2.contains("test-测试2")); |
|
Assert.assertTrue(qiantao2.contains("test-测试3")); |
|
Assert.assertTrue(qiantao2.contains("test-测试4")); |
|
Assert.assertTrue(qiantao2.contains("test-测试5")); |
|
Assert.assertTrue(qiantao2.contains("test-测试6")); |
|
Assert.assertTrue(qiantao2.contains("test-测试7")); |
|
Assert.assertTrue(qiantao2.contains("test-测试8")); |
|
|
|
String str3 = "TEST_TABLE.select(INNER.select(glbName,\"6\"),\"6\")"; |
|
Set<String> result = TableDataFormulaUtils.search4TableData(str3); |
|
Assert.assertTrue(result.contains("TEST_TABLE")); |
|
Assert.assertTrue(result.contains("INNER")); |
|
} |
|
|
|
public void testReplace() { |
|
String rowcount = "=ROWCOUNT(\"123\")"; |
|
TableReplacementEntity entity = new TableReplacementEntity(); |
|
entity.setOldName("123"); |
|
entity.setNewName("222"); |
|
List<TableReplacementEntity> entities = new ArrayList<>(); |
|
entities.add(entity); |
|
Assert.assertEquals(TableDataFormulaUtils.replace4TableData(rowcount, entities), "=ROWCOUNT(\"222\")"); |
|
|
|
String colcount = "=COLCOUNT(\"test测试\")"; |
|
TableReplacementEntity entity1 = new TableReplacementEntity(); |
|
entity1.setOldName("test测试"); |
|
entity1.setNewName("替换"); |
|
List<TableReplacementEntity> entities1 = new ArrayList<>(); |
|
entities1.add(entity1); |
|
Assert.assertEquals(TableDataFormulaUtils.replace4TableData(colcount, entities1), "=COLCOUNT(\"替换\")"); |
|
|
|
String colname = "=COLNAME(\"test测试\")"; |
|
TableReplacementEntity entity2 = new TableReplacementEntity(); |
|
entity2.setOldName("test测试"); |
|
entity2.setNewName("替换123"); |
|
List<TableReplacementEntity> entities2 = new ArrayList<>(); |
|
entities2.add(entity2); |
|
Assert.assertEquals(TableDataFormulaUtils.replace4TableData(colname, entities2), "=COLNAME(\"替换123\")"); |
|
|
|
String TABLEDATAFIELDS = "=TABLEDATAFIELDS(\"test测试\")"; |
|
TableReplacementEntity entity3 = new TableReplacementEntity(); |
|
entity3.setOldName("test测试"); |
|
entity3.setNewName("替换111"); |
|
List<TableReplacementEntity> entities3 = new ArrayList<>(); |
|
entities3.add(entity3); |
|
Assert.assertEquals(TableDataFormulaUtils.replace4TableData(TABLEDATAFIELDS, entities3), "=TABLEDATAFIELDS(\"替换111\")"); |
|
|
|
String test = "=sum(len(MAP(value(\"test-测试\",COLNAME(\"test-测试\",len(MAP(value(\"test-测试\",COLNAME(\"test-测试\",len(MAP(value(\"test-测试\",COLNAME(\"test-测试\",2),COLCOUNT(\"test-测试\")),\"test-测试\",COLNAME(\"test-测试\",2),COLNAME(\"test-测试\",4)))),COLCOUNT(\"test-测试\")),\"test-测试\",COLNAME(\"test-测试\",2),COLNAME(\"test-测试\",4)))),COLCOUNT(\"test-测试\")),\"test-测试\",COLNAME(\"test-测试\",2),COLNAME(\"test-测试\",4))),ROWCOUNT(\"test-测试\"),len(TABLEDATAFIELDS(\"test-测试\")))"; |
|
TableReplacementEntity entity4 = new TableReplacementEntity(); |
|
entity4.setOldName("test-测试"); |
|
entity4.setNewName("test-测试的副本"); |
|
List<TableReplacementEntity> entities4 = new ArrayList<>(); |
|
entities4.add(entity4); |
|
Assert.assertEquals(TableDataFormulaUtils.replace4TableData(test, entities4), "=sum(len(MAP(value(\"test-测试的副本\",COLNAME(\"test-测试的副本\",len(MAP(value(\"test-测试的副本\",COLNAME(\"test-测试的副本\",len(MAP(value(\"test-测试的副本\",COLNAME(\"test-测试的副本\",2),COLCOUNT(\"test-测试的副本\")),\"test-测试的副本\",COLNAME(\"test-测试的副本\",2),COLNAME(\"test-测试的副本\",4)))),COLCOUNT(\"test-测试的副本\")),\"test-测试的副本\",COLNAME(\"test-测试的副本\",2),COLNAME(\"test-测试的副本\",4)))),COLCOUNT(\"test-测试的副本\")),\"test-测试的副本\",COLNAME(\"test-测试的副本\",2),COLNAME(\"test-测试的副本\",4))),ROWCOUNT(\"test-测试的副本\"),len(TABLEDATAFIELDS(\"test-测试的副本\")))"); |
|
|
|
|
|
String testCircle = "=sum(len(MAP(value(\"test-测试1\",COLNAME(\"test-测试2\",len(MAP(value(\"test-测试3\",COLNAME(\"test-测试4\",len(MAP(value(\"test-测试\",COLNAME(\"test-测试\",2),COLCOUNT(\"test-测试\")),\"test-测试\",COLNAME(\"test-测试\",2),COLNAME(\"test-测试\",4)))),COLCOUNT(\"test-测试\")),\"test-测试\",COLNAME(\"test-测试\",2),COLNAME(\"test-测试\",4)))),COLCOUNT(\"test-测试\")),\"test-测试\",COLNAME(\"test-测试\",2),COLNAME(\"test-测试\",4))),ROWCOUNT(\"test-测试\"),len(TABLEDATAFIELDS(\"test-测试\")))"; |
|
TableReplacementEntity entity5 = new TableReplacementEntity(); |
|
entity5.setOldName("test-测试"); |
|
entity5.setNewName("test-测试的副本"); |
|
TableReplacementEntity entity6 = new TableReplacementEntity(); |
|
entity6.setOldName("test-测试1"); |
|
entity6.setNewName("test-测试2"); |
|
TableReplacementEntity entity7 = new TableReplacementEntity(); |
|
entity7.setOldName("test-测试2"); |
|
entity7.setNewName("test-测试3"); |
|
TableReplacementEntity entity8 = new TableReplacementEntity(); |
|
entity8.setOldName("test-测试3"); |
|
entity8.setNewName("test-测试4"); |
|
List<TableReplacementEntity> entities5 = new ArrayList<>(); |
|
entities5.add(entity5); |
|
entities5.add(entity6); |
|
entities5.add(entity7); |
|
entities5.add(entity8); |
|
Assert.assertEquals(TableDataFormulaUtils.replace4TableData(testCircle, entities5), "=sum(len(MAP(value(\"test-测试2\",COLNAME(\"test-测试3\",len(MAP(value(\"test-测试4\",COLNAME(\"test-测试4\",len(MAP(value(\"test-测试的副本\",COLNAME(\"test-测试的副本\",2),COLCOUNT(\"test-测试的副本\")),\"test-测试的副本\",COLNAME(\"test-测试的副本\",2),COLNAME(\"test-测试的副本\",4)))),COLCOUNT(\"test-测试的副本\")),\"test-测试的副本\",COLNAME(\"test-测试的副本\",2),COLNAME(\"test-测试的副本\",4)))),COLCOUNT(\"test-测试的副本\")),\"test-测试的副本\",COLNAME(\"test-测试的副本\",2),COLNAME(\"test-测试的副本\",4))),ROWCOUNT(\"test-测试的副本\"),len(TABLEDATAFIELDS(\"test-测试的副本\")))"); |
|
|
|
} |
|
} |