Как лучше написать этот преобразователь строк [закрыто]JAVA

Программисты JAVA общаются здесь
Anonymous
Как лучше написать этот преобразователь строк [закрыто]

Сообщение Anonymous »

Я работаю над приложением Spring Batch и реализовал собственный Partitioner, чтобы разделить обработку на несколько потоков. У меня возникли проблемы с написанием теста JUnit 4 для моего partition метод. Я издевался над своим DataSource и JdbcTemplate, но я не уверен, что я утверждаю правильные условия или правильна ли моя настройка. Этот код проверяет количество вхождений чего-либо, что может быть чем угодно, от записей до событий, как указано методом по dto (объекту передачи данных). Вот что делает логика, описанная простыми словами:
Код запрашивает у dto количество вхождений с помощью метода dto.getNumOfOccur().
Если количество вхождений равно нулю (это означает, что вхождений не было), код устанавливает для dto статус «НОВЫЙ», указывая, что все, что проверяется, является новым или не происходило ранее.
Если какое-либо число больше нуля (это означает, что произошло хотя бы одно событие), статус устанавливается на «СУЩЕСТВУЕТ», что указывает на то, что событие не является новым и происходило раньше.
Этот статус устанавливается с помощью метода dto.setNeworexist() с указанием «NEW» или «EXISTS» в качестве
```
import org.junit.Before;
import org.junit.Test;
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.time.LocalDateTime;
import java.util.Date;

import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;

public class SST2LettersStagingDTOTest {

private SST2LettersStagingDTO dto;

@Before
public void setUp() {
dto = new SST2LettersStagingDTO();
}

@Test
public void testGettersAndSetters() {
// Set fields
dto.setJobId("Job1");
dto.setCciNo("12345");
dto.setXferRefId("Ref123");
dto.setFrstTranDt(new Date());
dto.setNxtTranDt(new Date());
dto.setSchdCreatTs(new Timestamp(System.currentTimeMillis()));
dto.setLstTranDt(new Date());
dto.setFrqCd("Monthly");
dto.setPmtAm(new BigDecimal("100.00"));
dto.setRcurAmTyp("Fixed");
dto.setAccNo("Acc123");
dto.setEnt("Ent123");
dto.setProdCd("Prod123");
dto.setAccTyp("Saving");
dto.setFrstNm("John");
dto.setLstNm("Doe");
dto.setStatCd("Active");
dto.setAcsId32("Acs123");
dto.setClsDt(new Date());
dto.setCallTracId("Call123");
dto.setPayplanFl("Yes");
dto.setWargCd("Warg123");
dto.setLatChrgAm(new BigDecimal("10.00"));
dto.setDueDt(new Date());
dto.setGracDy("5");
dto.setAddEsc(new BigDecimal("1.00"));
dto.setAddPpl(new BigDecimal("2.00"));
dto.setLtrTyp("TypeA");
dto.setRteNo("Rte123");
dto.setAccDtype("Dtype123");
dto.setPhnNo("1234567890");
dto.setBaccorRspL1("Addr1");
dto.setBaccorRspL2("Addr2");
dto.setBaccorRspCty("City");
dto.setSentBy("Admin");
dto.setTrgtAccNo("TrgtAcc123");
dto.setTrgtEnt("TrgtEnt123");
dto.setTrgtProdCd("TrgtProd123");
dto.setTrgtAccTyp("TrgtSaving");
dto.setTrgtFrstNm("Jane");
dto.setTrgtLstNm("Smith");
dto.setRowId("Row123");
dto.setFreeTxFld1("FreeText1");
dto.setFreeTxFld2("FreeText2");
dto.setFreeTxFld3("FreeText3");
dto.setCreatBy("Creator");
dto.setCreatTs(new Timestamp(System.currentTimeMillis()));
dto.setUpdtBy("Updater");
dto.setUpdtTs(new Timestamp(System.currentTimeMillis()));
dto.setCurrentTimestamp(LocalDateTime.now());

// Assert fields
assertEquals("Job1", dto.getJobId());
assertEquals("12345", dto.getCciNo());
assertEquals("Ref123", dto.getXferRefId());
assertNotNull(dto.getFrstTranDt());
assertNotNull(dto.getNxtTranDt());
assertNotNull(dto.getSchdCreatTs());
assertNotNull(dto.getLstTranDt());
assertEquals("Monthly", dto.getFrqCd());
assertEquals(new BigDecimal("100.00"), dto.getPmtAm());
assertEquals("Fixed", dto.getRcurAmTyp());
assertEquals("Acc123", dto.getAccNo());
assertEquals("Ent123", dto.getEnt());
assertEquals("Prod123", dto.getProdCd());
assertEquals("Saving", dto.getAccTyp());
assertEquals("John", dto.getFrstNm());
assertEquals("Doe", dto.getLstNm());
assertEquals("Active", dto.getStatCd());
assertEquals("Acs123", dto.getAcsId32());
assertNotNull(dto.getClsDt());
assertEquals("Call123", dto.getCallTracId());
assertEquals("Yes", dto.getPayplanFl());
assertEquals("Warg123", dto.getWargCd());
assertEquals(new BigDecimal("10.00"), dto.getLatChrgAm());
assertNotNull(dto.getDueDt());
assertEquals("5", dto.getGracDy());
assertEquals(new BigDecimal("1.00"), dto.getAddEsc());
assertEquals(new BigDecimal("2.00"), dto.getAddPpl());
assertEquals("TypeA", dto.getLtrTyp());
assertEquals("Rte123", dto.getRteNo());
assertEquals("Dtype123", dto.getAccDtype());
assertEquals("1234567890", dto.getPhnNo());
assertEquals("Addr1", dto.getBaccorRspL1());
assertEquals("Addr2", dto.getBaccorRspL2());
assertEquals("City", dto.getBaccorRspCty());
assertEquals("Admin", dto.getSentBy());
assertEquals("TrgtAcc123", dto.getTrgtAccNo());
assertEquals("TrgtEnt123", dto.getTrgtEnt());
assertEquals("TrgtProd123", dto.getTrgtProdCd());
assertEquals("TrgtSaving", dto.getTrgtAccTyp());
assertEquals("Jane", dto.getTrgtFrstNm());
assertEquals("Smith", dto.getTrgtLstNm());
assertEquals("Row123", dto.getRowId());
assertEquals("FreeText1", dto.getFreeTxFld1());
assertEquals("FreeText2", dto.getFreeTxFld2());
assertEquals("FreeText3", dto.getFreeTxFld3());
assertEquals("Creator", dto.getCreatBy());
assertNotNull(dto.getCreatTs());
assertEquals("Updater", dto.getUpdtBy());
assertNotNull(dto.getUpdtTs());
assertNotNull(dto.getCurrentTimestamp());
}

@Test
public void testOutputFields() {
String[] expectedFields = {
"jobId", "cciNo", "xferRefId", "frstTranDt", "nxtTranDt", "schdCreatTs", "lstTranDt", "frqCd",
"pmtAm", "rcurAmTyp", "accNo", "ent", "prodCd", "accTyp", "frstNm", "lstNm", "statCd", "acsId32",
"clsDt", "callTracId", "payplanFl", "wargCd", "latChrgAm", "dueDt", "gracDy", "addEsc", "addPpl",
"ltrTyp", "rteNo", "accDtype", "phnNo", "baccorRspL1", "baccorRspL2", "baccorRspCty", "sentBy",
"trgtAccNo", "trgtEnt", "trgtProdCd", "trgtAccTyp", "trgtFrstNm", "trgtLstNm", "rowId", "freeTxFld1",
"freeTxFld2", "freeTxFld3", "creatBy", "creatTs", "updtBy", "updtTs", "currentTimestamp"
};
assertArrayEquals(expectedFields, SST2LettersStagingDTO.outputFields());
}
}


Подробнее здесь: https://stackoverflow.com/questions/787 ... better-way

Вернуться в «JAVA»