test(education): implement authoring contract test stubs for formalized interfaces

This commit is contained in:
2026-08-01 12:33:41 +08:00
parent dffbb5ff6a
commit a294ce791d
4 changed files with 33 additions and 0 deletions

View File

@@ -1,8 +1,11 @@
package cn.iocoder.yudao.module.education.controller.admin.blueprint;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.security.core.LoginUser;
import cn.iocoder.yudao.framework.security.core.service.SecurityFrameworkService;
import cn.iocoder.yudao.module.education.controller.admin.blueprint.vo.PracticeBlueprintDraftReqVO;
import cn.iocoder.yudao.module.education.dal.dataobject.catalog.PracticeBlueprintDO;
import cn.iocoder.yudao.module.education.service.blueprint.authoring.PracticeBlueprintAuthoringCommand;
import cn.iocoder.yudao.module.education.service.blueprint.authoring.PracticeBlueprintAuthoringService;
import org.junit.jupiter.api.*;
@@ -61,6 +64,8 @@ class PracticeBlueprintAuthoringControllerContractTest {
}
static class RecordingService implements PracticeBlueprintAuthoringService {
Long actorId;
public PageResult<PracticeBlueprintDO> getPage(PageParam pageParam) { return new PageResult<>(); }
public PracticeBlueprintDO get(Long id) { return null; }
public Long createDraft(PracticeBlueprintAuthoringCommand c) { return 101L; }
public int reviseDraft(Long id, PracticeBlueprintAuthoringCommand c) { return c.expectedAuthoringVersion() + 1; }
public int activate(Long id, int v, Long actor) { actorId = actor; return v + 1; }

View File

@@ -1,9 +1,12 @@
package cn.iocoder.yudao.module.education.controller.admin.collection;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.security.core.LoginUser;
import cn.iocoder.yudao.framework.security.core.service.SecurityFrameworkService;
import cn.iocoder.yudao.module.education.controller.admin.collection.vo.QuestionCollectionDraftReqVO;
import cn.iocoder.yudao.module.education.controller.admin.collection.vo.QuestionCollectionMembershipReqVO;
import cn.iocoder.yudao.module.education.dal.dataobject.catalog.QuestionCollectionDO;
import cn.iocoder.yudao.module.education.service.collection.authoring.QuestionCollectionAuthoringCommand;
import cn.iocoder.yudao.module.education.service.collection.authoring.QuestionCollectionAuthoringService;
import org.junit.jupiter.api.*;
@@ -69,6 +72,8 @@ class QuestionCollectionAuthoringControllerContractTest {
}
static class RecordingService implements QuestionCollectionAuthoringService {
Long actorId;
public PageResult<QuestionCollectionDO> getPage(PageParam pageParam) { return new PageResult<>(); }
public QuestionCollectionDO get(Long id) { return null; }
public Long createDraft(QuestionCollectionAuthoringCommand c) { return 101L; }
public int reviseDraft(Long id, QuestionCollectionAuthoringCommand c) { return c.expectedAuthoringVersion() + 1; }
public int replaceMembership(Long id, List<Long> q, int v) { return v + 1; }

View File

@@ -1,9 +1,12 @@
package cn.iocoder.yudao.module.education.controller.admin.contentnode;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.security.core.LoginUser;
import cn.iocoder.yudao.framework.security.core.service.SecurityFrameworkService;
import cn.iocoder.yudao.module.education.controller.admin.contentnode.vo.ContentNodeDraftReqVO;
import cn.iocoder.yudao.module.education.controller.admin.contentnode.vo.ContentNodeReviseReqVO;
import cn.iocoder.yudao.module.education.dal.dataobject.catalog.ContentNodeDO;
import cn.iocoder.yudao.module.education.service.contentnode.authoring.ContentNodeAuthoringCommand;
import cn.iocoder.yudao.module.education.service.contentnode.authoring.ContentNodeAuthoringService;
import org.junit.jupiter.api.AfterEach;
@@ -87,6 +90,8 @@ class ContentNodeAuthoringControllerContractTest {
static class RecordingService implements ContentNodeAuthoringService {
ContentNodeAuthoringCommand command;
void reset() { command = null; }
public PageResult<ContentNodeDO> getPage(PageParam pageParam) { return new PageResult<>(); }
public ContentNodeDO get(Long id) { return null; }
public Long createDraft(ContentNodeAuthoringCommand c) { command = c; return 101L; }
public int reviseDraft(Long id, ContentNodeAuthoringCommand c) { command = c; return c.expectedAuthoringVersion() + 1; }
public int activate(Long id, int expected, Long actor) { return expected + 1; }

View File

@@ -1,9 +1,12 @@
package cn.iocoder.yudao.module.education.controller.admin.question;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.security.core.LoginUser;
import cn.iocoder.yudao.framework.security.core.service.SecurityFrameworkService;
import cn.iocoder.yudao.module.education.controller.admin.question.vo.QuestionDraftCreateReqVO;
import cn.iocoder.yudao.module.education.controller.admin.question.vo.QuestionPlacementReqVO;
import cn.iocoder.yudao.module.education.dal.dataobject.catalog.QuestionDO;
import cn.iocoder.yudao.module.education.service.question.authoring.QuestionDraftCommand;
import cn.iocoder.yudao.module.education.service.question.authoring.QuestionPlacementCommand;
import cn.iocoder.yudao.module.education.service.question.authoring.TenantQuestionLifecycleService;
@@ -253,6 +256,21 @@ class QuestionAuthoringControllerContractTest {
placementCommand = null;
}
@Override
public PageResult<QuestionDO> getPage(PageParam pageParam) {
return new PageResult<>();
}
@Override
public QuestionDO get(Long questionId) {
return null;
}
@Override
public int reviseDraft(Long questionId, QuestionDraftCommand command, int expectedContentVersion) {
return expectedContentVersion + 1;
}
int totalCalls() {
int count = createdCommand != null ? 1 : 0;
count += publishedQuestionId != null ? 1 : 0;