Skip to content
Snippets Groups Projects
Commit 84d23ca3 authored by OZGCloud's avatar OZGCloud
Browse files

OZG-5987 fix check whether parent failed

parent f67afbc4
Branches
Tags
No related merge requests found
......@@ -205,12 +205,9 @@ class CommandRepository {
mongoOperations.updateFirst(queryById(commandId), update, Command.class);
}
public Optional<String> getNotFailedParentId(String commandId) {
return getParentId(commandId)
.map(this::queryNotFailedCommandById)
.map(this::includeIdAndClass)
.flatMap(this::findOne)
.map(Command::getId);
public boolean isCommandFailed(String commandId) {
return mongoOperations.exists(query(new Criteria().andOperator(criteriaById(commandId), where(MONGODB_STATUS).is(CommandStatus.ERROR))),
Command.class);
}
public Optional<String> getParentId(String commandId) {
......@@ -227,12 +224,6 @@ class CommandRepository {
return MapUtils.getString(body, PersistedCommand.PROPERTY_PARENT_ID);
}
Query queryNotFailedCommandById(String commandId) {
return query(new Criteria().andOperator(
where(MONGODB_ID).is(commandId),
where(MONGODB_STATUS).ne(CommandStatus.ERROR)));
}
Optional<Command> findOne(Query query) {
return Optional.ofNullable(mongoOperations.findOne(query, Command.class));
}
......
......@@ -133,7 +133,7 @@ public class CommandService {
}
boolean isParentCommandFailed(Command command) {
return repository.getNotFailedParentId(command.getId()).isPresent();
return getParentId(command).filter(repository::isCommandFailed).isPresent();
}
Optional<String> getCompletableParentId(Command command) {
......
......@@ -442,7 +442,7 @@ class CommandRepositoryITCase {
}
@Nested
class TestGetNotFailedParentId {
class TestIsCommandFailed {
@BeforeEach
void init() {
......@@ -451,28 +451,22 @@ class CommandRepositoryITCase {
@Test
void shouldReturnParentId() {
var parentId = mongoOperations.save(CommandTestFactory.createBuilder().bodyObject(Map.of(
var commandId = mongoOperations.save(CommandTestFactory.createBuilder().bodyObject(Map.of(
PersistedCommand.PROPERTY_COMPLETE_IF_SUBS_COMPLETED, true)).build()).getId();
var commandId = mongoOperations.save(
CommandTestFactory.createBuilder().id(null).bodyObject(Map.of(PersistedCommand.PROPERTY_PARENT_ID, parentId)).build())
.getId();
var result = repository.getNotFailedParentId(commandId);
var result = repository.isCommandFailed(commandId);
assertThat(result).contains(parentId);
assertThat(result).isFalse();
}
@Test
void shouldReturnEmpty() {
var parentId = mongoOperations.save(CommandTestFactory.createBuilder().status(CommandStatus.ERROR).bodyObject(Map.of(
var commandId = mongoOperations.save(CommandTestFactory.createBuilder().status(CommandStatus.ERROR).bodyObject(Map.of(
PersistedCommand.PROPERTY_COMPLETE_IF_SUBS_COMPLETED, true)).build()).getId();
var commandId = mongoOperations.save(
CommandTestFactory.createBuilder().id(null).bodyObject(Map.of(PersistedCommand.PROPERTY_PARENT_ID, parentId)).build())
.getId();
var result = repository.getNotFailedParentId(commandId);
var result = repository.isCommandFailed(commandId);
assertThat(result).isEmpty();
assertThat(result).isTrue();
}
}
......
......@@ -351,18 +351,31 @@ class CommandServiceTest {
}
@Nested
class TestIsParentFailed {
class TestIsParentCommandFailed {
@Test
void shouldCallGetParentId() {
var command = CommandTestFactory.create();
service.isParentCommandFailed(command);
verify(service).getParentId(command);
}
@Test
void shouldCallRepository() {
var parentId = "parent-id";
doReturn(Optional.of(parentId)).when(service).getParentId(any());
isParentCommandFailed();
verify(repository).getNotFailedParentId(CommandTestFactory.ID);
verify(repository).isCommandFailed(parentId);
}
@Test
void shouldReturnTrueWhenParentNotFailed() {
when(repository.getNotFailedParentId(anyString())).thenReturn(Optional.of("parent-id"));
doReturn(Optional.of("parent-id")).when(service).getParentId(any());
when(repository.isCommandFailed(any())).thenReturn(true);
var result = isParentCommandFailed();
......@@ -371,7 +384,7 @@ class CommandServiceTest {
@Test
void shouldReturnFalseWhenParentFailed() {
when(repository.getNotFailedParentId(anyString())).thenReturn(Optional.empty());
doReturn(Optional.of("parent-id")).when(service).getParentId(any());
var result = isParentCommandFailed();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment