Поправил существующие тесты валидаторов, чтобы они запускались мавеном.
This commit is contained in:
parent
5096a2eb73
commit
41a0f2a4b7
7 changed files with 199 additions and 42 deletions
|
|
@ -0,0 +1,181 @@
|
|||
package ru.specx.clearing.scheduler;
|
||||
|
||||
import org.apache.kafka.clients.producer.MockProducer;
|
||||
import org.apache.kafka.clients.producer.ProducerRecord;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.mockito.ArgumentCaptor;
|
||||
import org.mockito.Captor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.boot.test.mock.mockito.MockBean;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
import ru.clearing.classes.statics.data.company.Company;
|
||||
import ru.clearing.classes.statics.data.scheduler.*;
|
||||
import ru.clearing.classes.statics.data.security.Security;
|
||||
import ru.clearing.platform.dictionary.DayStatusDictionary;
|
||||
import ru.clearing.platform.dictionary.TaskDictionary;
|
||||
import ru.clearing.platform.dictionary.TaskStatusDictionary;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
import ru.spcex.clearing.scheduler.PlannerAllTodayBuilder;
|
||||
import ru.spcex.clearing.scheduler.config.ErrorResolverConfig;
|
||||
import ru.spcex.clearing.scheduler.config.validation.ClearingCalendarValidationConfig;
|
||||
import ru.spcex.clearing.scheduler.config.validation.PlannerTemplateValidationConfig;
|
||||
import ru.spcex.clearing.scheduler.config.validation.PlannerValidationConfig;
|
||||
import ru.spcex.clearing.scheduler.config.validation.ValidationConfig;
|
||||
import ru.spcex.clearing.scheduler.service.ClearingCalendarService;
|
||||
import ru.spcex.clearing.scheduler.service.LauncherService;
|
||||
import ru.spcex.clearing.scheduler.service.PlannerService;
|
||||
import ru.spcex.clearing.scheduler.service.PlannerTemplateService;
|
||||
import ru.spcex.clearing.test.MatcherFactory;
|
||||
import ru.spcex.clearing.test.TestUtils;
|
||||
import ru.spcex.clearing.test.config.ImdgTestConfig;
|
||||
import ru.spcex.clearing.test.config.KafkaTestConfig;
|
||||
import ru.spcex.platform.enumeration.DayStatus;
|
||||
import ru.spcex.platform.enumeration.Status;
|
||||
import ru.spcex.platform.enumeration.Task;
|
||||
import ru.spcex.platform.enumeration.WorkflowStatus;
|
||||
import ru.spcex.platform.imdg.api.Imdg;
|
||||
import ru.spcex.platform.imdg.api.ImdgProvider;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalTime;
|
||||
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static ru.spcex.clearing.test.MatcherFactory.usingIgnoringFieldsComparator;
|
||||
import static ru.spcex.clearing.test.config.ImdgTestConfig.currentID;
|
||||
import static ru.spcex.clearing.test.config.ImdgTestConfig.waitAvailableImdgProviderAndAddAdminWithDefaultId;
|
||||
import static ru.spcex.platform.enumeration.Market.mkrs;
|
||||
|
||||
@ExtendWith(SpringExtension.class)
|
||||
@ContextConfiguration(classes = {
|
||||
PlannerService.class,
|
||||
PlannerTemplateValidationConfig.class,
|
||||
ClearingCalendarService.class,
|
||||
PlannerTemplateService.class,
|
||||
PlannerValidationConfig.class,
|
||||
ClearingCalendarValidationConfig.class,
|
||||
ValidationConfig.class,
|
||||
LauncherService.class,
|
||||
ErrorResolverConfig.class,
|
||||
ImdgTestConfig.class,
|
||||
KafkaTestConfig.class})
|
||||
public abstract class AbstractServiceTest {
|
||||
protected static final MatcherFactory.Matcher<PlannerAllToday> PLANNER_ALL_TODAY_MATCHER = usingIgnoringFieldsComparator("created", "updated");
|
||||
protected static final long id = currentID.getAndIncrement();
|
||||
protected Imdg<PlannerAllToday> plannerAllTodayImdg;
|
||||
protected Imdg<PlannerTemplate> plannerTemplateImdg;
|
||||
protected Imdg<ClearingCalendar> clearingCalendarImdg;
|
||||
protected Imdg<Planner> plannerImdg;
|
||||
protected Imdg<Launcher> launcherMap;
|
||||
protected long newCompanyId = currentID.getAndIncrement();
|
||||
protected long updateCompanyId = currentID.getAndIncrement();
|
||||
protected long deleteCompanyId = currentID.getAndIncrement();
|
||||
protected long testSecurityId = currentID.getAndIncrement();
|
||||
|
||||
@Captor
|
||||
protected ArgumentCaptor<ProducerRecord> producerRecord;
|
||||
@MockBean
|
||||
protected MockProducer<String, Object> mockProducer;
|
||||
@Autowired
|
||||
@Qualifier("hazelcastServiceTest")
|
||||
protected ImdgProvider imdgProvider;
|
||||
|
||||
protected void init() {
|
||||
waitAvailableImdgProviderAndAddAdminWithDefaultId();
|
||||
this.plannerAllTodayImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_PlannerAllToday, PlannerAllToday.class);
|
||||
this.plannerTemplateImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_PlannerTemplate, PlannerTemplate.class);
|
||||
this.clearingCalendarImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_ClearingCalendar, ClearingCalendar.class);
|
||||
this.plannerImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Planner, Planner.class);
|
||||
this.launcherMap = imdgProvider.getImdg(IMDGDistributedNames.Map_Launcher, Launcher.class);
|
||||
|
||||
TaskDictionary taskDictionary = new TaskDictionary();
|
||||
Imdg<TaskDictionary> taskDictionaryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_TaskDictionary, TaskDictionary.class);
|
||||
taskDictionary.setCode(Task.accountBlock.getKey());
|
||||
taskDictionary.setId(id);
|
||||
taskDictionaryImdg.insert(taskDictionary);
|
||||
|
||||
DayStatusDictionary dayStatusDictionary = new DayStatusDictionary();
|
||||
dayStatusDictionary.setId(0L);
|
||||
dayStatusDictionary.setCode(DayStatus.Workday.getKey());
|
||||
Imdg<DayStatusDictionary> dayStatusDictionaryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_DayStatusDictionary, DayStatusDictionary.class);
|
||||
dayStatusDictionaryImdg.insert(dayStatusDictionary);
|
||||
|
||||
TaskStatusDictionary taskStatusDictionary = new TaskStatusDictionary();
|
||||
taskStatusDictionary.setCode(Status.Active.getKey());
|
||||
taskStatusDictionary.setId(id);
|
||||
Imdg<TaskStatusDictionary> taskStatusDictionaryImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_TaskStatusDictionary, TaskStatusDictionary.class);
|
||||
taskStatusDictionaryImdg.insert(taskStatusDictionary);
|
||||
|
||||
Company company = new Company();
|
||||
company.setId(newCompanyId);
|
||||
company.setWorkflowStatus(WorkflowStatus.Active.getKey());
|
||||
Imdg<Company> companyImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Company, Company.class);
|
||||
companyImdg.insert(company);
|
||||
company.setId(updateCompanyId);
|
||||
company.setWorkflowStatus(WorkflowStatus.Active.getKey());
|
||||
companyImdg.insert(company);
|
||||
company.setId(deleteCompanyId);
|
||||
company.setWorkflowStatus(WorkflowStatus.Active.getKey());
|
||||
companyImdg.insert(company);
|
||||
|
||||
Security security = new Security();
|
||||
security.setId(testSecurityId);
|
||||
security.setWorkflowStatus(WorkflowStatus.Active.getKey());
|
||||
Imdg<Security> securityImdg = imdgProvider.getImdg(IMDGDistributedNames.Map_Security, Security.class);
|
||||
securityImdg.insert(security);
|
||||
|
||||
clearingCalendarImdg.insert(getClearingCalendar());
|
||||
|
||||
TestUtils.FutureRecordMetadata future = spy(new TestUtils.FutureRecordMetadata());
|
||||
doReturn(future).when(mockProducer).send(producerRecord.capture());
|
||||
}
|
||||
|
||||
protected PlannerTemplate getPlannerTemplate(long companyId) {
|
||||
PlannerTemplate plannerTemplate = new PlannerTemplate();
|
||||
plannerTemplate.setId(currentID.getAndIncrement());
|
||||
plannerTemplate.setTask(Task.accountBlock.getKey());
|
||||
plannerTemplate.setTaskTime(LocalTime.now().plusHours(1).withNano(0));
|
||||
plannerTemplate.setTaskStatus(Status.Active.getKey());
|
||||
plannerTemplate.setCompanyId(companyId);
|
||||
plannerTemplate.setSecurityId(testSecurityId);
|
||||
return plannerTemplate;
|
||||
}
|
||||
|
||||
protected Planner getPlanner(long companyId) {
|
||||
Planner planner = new Planner();
|
||||
planner.setId(currentID.getAndIncrement());
|
||||
planner.setTask(Task.accountBlock.getKey());
|
||||
planner.setTaskTime(LocalTime.now().plusHours(1).withNano(0));
|
||||
planner.setClearingDate(LocalDate.now());
|
||||
planner.setMarket(mkrs.getKey());
|
||||
planner.setTaskStatus(Status.Active.getKey());
|
||||
planner.setCompanyId(companyId);
|
||||
planner.setSecurityId(testSecurityId);
|
||||
return planner;
|
||||
}
|
||||
|
||||
protected void checkPlannerAllTodayByPlannerTemplate(PlannerTemplate plannerTemplate) {
|
||||
PlannerAllToday plannerAllToday = PlannerAllTodayBuilder.builder().append(plannerTemplate).build();
|
||||
PlannerAllToday plannerAllTodayRes = plannerAllTodayImdg.getSingleObjectBySQL(String.format("companyId = %s", plannerTemplate.getCompanyId()));
|
||||
plannerAllToday.setId(plannerAllTodayRes.getId());
|
||||
PLANNER_ALL_TODAY_MATCHER.assertMatch(plannerAllTodayRes, plannerAllToday);
|
||||
}
|
||||
|
||||
protected void checkPlannerAllTodayByPlanner(Planner planner) {
|
||||
PlannerAllToday plannerAllToday = PlannerAllTodayBuilder.builder().append(planner).build();
|
||||
PlannerAllToday plannerAllTodayRes = plannerAllTodayImdg.getSingleObjectBySQL(String.format("companyId = %s", planner.getCompanyId()));
|
||||
plannerAllToday.setId(plannerAllTodayRes.getId());
|
||||
PLANNER_ALL_TODAY_MATCHER.assertMatch(plannerAllTodayRes, plannerAllToday);
|
||||
}
|
||||
|
||||
protected ClearingCalendar getClearingCalendar() {
|
||||
ClearingCalendar clearingCalendar = new ClearingCalendar();
|
||||
clearingCalendar.setId(currentID.getAndIncrement());
|
||||
clearingCalendar.setClearingDate(LocalDate.now());
|
||||
clearingCalendar.setCompanyId(deleteCompanyId);
|
||||
clearingCalendar.setDayStatus(DayStatus.Workday.getKey());
|
||||
return clearingCalendar;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,14 +1,13 @@
|
|||
package ru.specx.clearing.scheduler.validation;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.schedule.PlannerNewRequest;
|
||||
import ru.spcex.clearing.scheduler.validation.rules.common.DateNotBeforeRule;
|
||||
import ru.spcex.platform.imdg.validation.ImdgValidationContext;
|
||||
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||
import ru.spcex.platform.utils.validation.IValidator;
|
||||
import ru.spcex.platform.utils.validation.ValidatorImpl;
|
||||
import ru.specx.clearing.scheduler.AbstractServiceTest;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.util.Collection;
|
||||
|
|
@ -17,8 +16,7 @@ import java.util.function.Function;
|
|||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
|
||||
@ExtendWith(SpringExtension.class)
|
||||
class DateNotBeforeRuleTest {
|
||||
class DateNotBeforeRuleTest extends AbstractServiceTest {
|
||||
|
||||
@Test
|
||||
public void dateNotBeforeRuleTest() {
|
||||
|
|
|
|||
|
|
@ -1,11 +1,8 @@
|
|||
package ru.specx.clearing.scheduler.validation;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
import ru.clearing.platform.dictionary.AbstractDictionary;
|
||||
import ru.clearing.platform.dictionary.DayStatusDictionary;
|
||||
import ru.clearing.platform.dictionary.TaskDictionary;
|
||||
|
|
@ -25,7 +22,7 @@ import ru.spcex.platform.utils.enumeration.EnumMessage;
|
|||
import ru.spcex.platform.utils.enumeration.IEnumKey;
|
||||
import ru.spcex.platform.utils.validation.IValidator;
|
||||
import ru.spcex.platform.utils.validation.ValidatorImpl;
|
||||
import ru.specx.clearing.scheduler.config.HazelcastServiceTestConfiguration;
|
||||
import ru.specx.clearing.scheduler.AbstractServiceTest;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.util.Collection;
|
||||
|
|
@ -35,10 +32,7 @@ import java.util.function.Function;
|
|||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
|
||||
@ExtendWith(SpringExtension.class)
|
||||
@ContextConfiguration(classes = {
|
||||
HazelcastServiceTestConfiguration.class})
|
||||
class DictionaryPresentRuleTest {
|
||||
class DictionaryPresentRuleTest extends AbstractServiceTest {
|
||||
@Autowired
|
||||
@Qualifier("hazelcastServiceTest")
|
||||
private HazelcastService hazelcastServiceTest;
|
||||
|
|
@ -70,12 +64,12 @@ class DictionaryPresentRuleTest {
|
|||
}
|
||||
|
||||
private <D extends AbstractDictionary, R, E extends IEnumKey> void testDictionary(String dictionaryKey,
|
||||
Class<D> dictionaryClass,
|
||||
Class<R> recordClass,
|
||||
String fieldName,
|
||||
E[] enumValues,
|
||||
Function<R, String> getter,
|
||||
BiConsumer<R, String> setter) throws NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException {
|
||||
Class<D> dictionaryClass,
|
||||
Class<R> recordClass,
|
||||
String fieldName,
|
||||
E[] enumValues,
|
||||
Function<R, String> getter,
|
||||
BiConsumer<R, String> setter) throws NoSuchMethodException, InvocationTargetException, InstantiationException, IllegalAccessException {
|
||||
Imdg<D> dictionaryImdg = hazelcastServiceTest.getImdg(dictionaryKey, dictionaryClass);
|
||||
long idIdx = 0;
|
||||
for (E enumValue : enumValues) {
|
||||
|
|
|
|||
|
|
@ -1,11 +1,8 @@
|
|||
package ru.specx.clearing.scheduler.validation;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
import ru.clearing.platform.dictionary.AbstractDictionary;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.schedule.ClearingCalendarNewRequest;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.schedule.PlannerNewRequest;
|
||||
|
|
@ -20,7 +17,7 @@ import ru.spcex.platform.utils.enumeration.EnumMessage;
|
|||
import ru.spcex.platform.utils.enumeration.IEnumKey;
|
||||
import ru.spcex.platform.utils.validation.IValidator;
|
||||
import ru.spcex.platform.utils.validation.ValidatorImpl;
|
||||
import ru.specx.clearing.scheduler.config.HazelcastServiceTestConfiguration;
|
||||
import ru.specx.clearing.scheduler.AbstractServiceTest;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.util.Collection;
|
||||
|
|
@ -31,10 +28,7 @@ import java.util.function.Function;
|
|||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
|
||||
@ExtendWith(SpringExtension.class)
|
||||
@ContextConfiguration(classes = {
|
||||
HazelcastServiceTestConfiguration.class})
|
||||
class EnumPresentRuleTest {
|
||||
class EnumPresentRuleTest extends AbstractServiceTest {
|
||||
@Autowired
|
||||
@Qualifier("hazelcastServiceTest")
|
||||
private HazelcastService hazelcastServiceTest;
|
||||
|
|
|
|||
|
|
@ -1,14 +1,13 @@
|
|||
package ru.specx.clearing.scheduler.validation;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.schedule.PlannerNewRequest;
|
||||
import ru.spcex.clearing.scheduler.validation.rules.common.FieldRequiredRule;
|
||||
import ru.spcex.platform.imdg.validation.ImdgValidationContext;
|
||||
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||
import ru.spcex.platform.utils.validation.IValidator;
|
||||
import ru.spcex.platform.utils.validation.ValidatorImpl;
|
||||
import ru.specx.clearing.scheduler.AbstractServiceTest;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.function.Function;
|
||||
|
|
@ -16,8 +15,7 @@ import java.util.function.Function;
|
|||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
|
||||
@ExtendWith(SpringExtension.class)
|
||||
class FieldRequiredRuleTest {
|
||||
class FieldRequiredRuleTest extends AbstractServiceTest {
|
||||
|
||||
@Test
|
||||
public void fieldRequiredRuleTest() {
|
||||
|
|
|
|||
|
|
@ -1,11 +1,8 @@
|
|||
package ru.specx.clearing.scheduler.validation;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Qualifier;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
import ru.clearing.classes.statics.data.company.Company;
|
||||
import ru.clearing.classes.statics.data.security.Security;
|
||||
import ru.spcex.clearing.imdg.IMDGDistributedNames;
|
||||
|
|
@ -19,7 +16,7 @@ import ru.spcex.platform.imdg.validation.ImdgValidationContext;
|
|||
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||
import ru.spcex.platform.utils.validation.IValidator;
|
||||
import ru.spcex.platform.utils.validation.ValidatorImpl;
|
||||
import ru.specx.clearing.scheduler.config.HazelcastServiceTestConfiguration;
|
||||
import ru.specx.clearing.scheduler.AbstractServiceTest;
|
||||
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.util.Collection;
|
||||
|
|
@ -29,10 +26,7 @@ import java.util.function.Function;
|
|||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
|
||||
@ExtendWith(SpringExtension.class)
|
||||
@ContextConfiguration(classes = {
|
||||
HazelcastServiceTestConfiguration.class})
|
||||
class IdPresentRuleTest {
|
||||
class IdPresentRuleTest extends AbstractServiceTest {
|
||||
private final static Long TEST_ID = 777L;
|
||||
|
||||
@Autowired
|
||||
|
|
|
|||
|
|
@ -1,14 +1,13 @@
|
|||
package ru.specx.clearing.scheduler.validation;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.api.extension.ExtendWith;
|
||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||
import ru.spcex.clearing.platform.messaging.domain.cud.schedule.PlannerNewRequest;
|
||||
import ru.spcex.clearing.scheduler.validation.rules.common.TimeNotBeforeRule;
|
||||
import ru.spcex.platform.imdg.validation.ImdgValidationContext;
|
||||
import ru.spcex.platform.utils.enumeration.EnumMessage;
|
||||
import ru.spcex.platform.utils.validation.IValidator;
|
||||
import ru.spcex.platform.utils.validation.ValidatorImpl;
|
||||
import ru.specx.clearing.scheduler.AbstractServiceTest;
|
||||
|
||||
import java.time.LocalTime;
|
||||
import java.util.Collection;
|
||||
|
|
@ -17,8 +16,7 @@ import java.util.function.Function;
|
|||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
|
||||
@ExtendWith(SpringExtension.class)
|
||||
class TimeNotBeforeRuleTest {
|
||||
class TimeNotBeforeRuleTest extends AbstractServiceTest {
|
||||
|
||||
@Test
|
||||
public void timeNotBeforeRuleTest() {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue