package jnpf.limsService.impl; import jnpf.lims.api.model.TestWorkItemRequestIdentityBatch; import jnpf.lims.api.model.TestWorkItemRequestIdentity; import jnpf.lims.api.model.TestWorkItemRequestIdentityRequest; import jnpf.limsEntity.LimsJianyanXiangEntity; import org.junit.Test; import java.util.Arrays; import java.util.Collections; import static org.junit.Assert.assertEquals; public class LimsTestWorkItemRequestIdentityServiceImplTest { @Test public void resolvesSubmittedSourceRequestIdentityWithoutUsingSnapshotReadState() { LimsJianyanXiangEntity source = task("source-item", "tenant-a", "pending_audit", "request-1"); LimsTestWorkItemRequestIdentityServiceImpl service = new LimsTestWorkItemRequestIdentityServiceImpl( (tenantId, testWorkItemIds) -> Collections.singletonList(source)); TestWorkItemRequestIdentityRequest request = new TestWorkItemRequestIdentityRequest(); request.setTestWorkItemIds(Arrays.asList("source-item")); TestWorkItemRequestIdentityBatch batch = service.resolve("tenant-a", request); TestWorkItemRequestIdentity item = batch.getItems().get(0); assertEquals("source-item", item.getTestWorkItemId()); assertEquals("request-1", item.getTestRequestId()); assertEquals("pending_audit", item.getTaskStatus()); assertEquals("SUCCESS", item.getOutcomeCode()); } @Test public void reportsMissingIdentityInsteadOfInferringItFromTaskFields() { LimsJianyanXiangEntity source = task("source-item", "tenant-a", "audited", null); LimsTestWorkItemRequestIdentityServiceImpl service = new LimsTestWorkItemRequestIdentityServiceImpl( (tenantId, testWorkItemIds) -> Collections.singletonList(source)); TestWorkItemRequestIdentityRequest request = new TestWorkItemRequestIdentityRequest(); request.setTestWorkItemIds(Arrays.asList("source-item", "missing-item")); TestWorkItemRequestIdentityBatch batch = service.resolve("tenant-a", request); assertEquals("TEST_REQUEST_INVALID", batch.getItems().get(0).getOutcomeCode()); assertEquals("NOT_FOUND", batch.getItems().get(1).getOutcomeCode()); } private static LimsJianyanXiangEntity task(String id, String tenantId, String status, String requestId) { LimsJianyanXiangEntity task = new LimsJianyanXiangEntity(); task.setId(id); task.setTenantId(tenantId); task.setJianyanZhuangtai(status); task.setQingyandanId(requestId); return task; } }