diff --git a/docs/theory/thinking-in-functional-programming.md b/docs/theory/thinking-in-functional-programming.md new file mode 100644 index 000000000..4a90135b3 --- /dev/null +++ b/docs/theory/thinking-in-functional-programming.md @@ -0,0 +1,8 @@ +# 实用观点下的函数式编程思想 + +## 一. 什么是函数 + +## 二. 什么是Monad + +## 三. 从函数到函子 + diff --git a/nop-sys/nop-sys-dao/src/test/java/io/nop/sys/dao/seq/TestSysSequenceGenerator.java b/nop-sys/nop-sys-dao/src/test/java/io/nop/sys/dao/seq/TestSysSequenceGenerator.java new file mode 100644 index 000000000..9e59d28a1 --- /dev/null +++ b/nop-sys/nop-sys-dao/src/test/java/io/nop/sys/dao/seq/TestSysSequenceGenerator.java @@ -0,0 +1,51 @@ +package io.nop.sys.dao.seq; + +import io.nop.api.core.annotations.autotest.NopTestConfig; +import io.nop.autotest.junit.JunitBaseTestCase; +import io.nop.dao.DaoConstants; +import io.nop.dao.api.IDaoProvider; +import io.nop.sys.dao.entity.NopSysSequence; +import jakarta.inject.Inject; +import org.junit.jupiter.api.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +@NopTestConfig(localDb = true, initDatabaseSchema = true) +public class TestSysSequenceGenerator extends JunitBaseTestCase { + static final Logger LOG = LoggerFactory.getLogger(TestSysSequenceGenerator.class); + + @Inject + IDaoProvider daoProvider; + + @Inject + SysSequenceGenerator generator; + + @Test + public void testSequence() { + NopSysSequence seq = new NopSysSequence(); + seq.setNextValue(100L); + seq.setSeqName("test"); + seq.setCacheSize(200); + seq.setSeqType("default"); + seq.setIsUuid(DaoConstants.NO_VALUE); + seq.setStepSize(1); + + daoProvider.daoFor(NopSysSequence.class).saveEntity(seq); + + String value = generator.generateString("test", true); + assertEquals("100", value); + + LOG.info("before-generate"); + value = generator.generateString("test", true); + assertEquals("101", value); + + value = generator.generateString("test", true); + assertEquals("102", value); + LOG.info("after-generate"); + + NopSysSequence entity = daoProvider.daoFor(NopSysSequence.class).getEntityById(seq.orm_id()); + assertEquals(300, entity.getNextValue()); + } +}