Skip to content

Commit

Permalink
🚧 #70 test
Browse files Browse the repository at this point in the history
  • Loading branch information
rucko24 committed Dec 7, 2024
1 parent 92ae559 commit 4770cf2
Show file tree
Hide file tree
Showing 3 changed files with 69 additions and 56 deletions.
24 changes: 7 additions & 17 deletions src/test/java/com/esp/espflow/service/EsptoolServiceTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,7 @@
import lombok.extern.log4j.Log4j2;
import org.apache.commons.lang3.ArrayUtils;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.MethodOrderer;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestMethodOrder;
import org.junit.jupiter.api.extension.ExtendWith;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ArgumentsSource;
Expand All @@ -32,12 +30,10 @@
import reactor.core.publisher.Mono;
import reactor.test.StepVerifier;

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Set;
import java.util.stream.Stream;

import static com.esp.espflow.util.EspFlowConstants.BAUD_RATE;
import static com.esp.espflow.util.EspFlowConstants.ESPTOOL_PY;
Expand All @@ -46,10 +42,7 @@
import static com.esp.espflow.util.EspFlowConstants.FLASH_ID;
import static com.esp.espflow.util.EspFlowConstants.PORT;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.AssertionsForClassTypes.assertThatCode;
import static org.assertj.core.api.AssertionsForClassTypes.assertThatExceptionOfType;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoInteractions;
import static org.mockito.Mockito.verifyNoMoreInteractions;
Expand All @@ -59,7 +52,6 @@
* @author rubn
*/
@Log4j2
@TestMethodOrder(MethodOrderer.class)
@ExtendWith(MockitoExtension.class)
class EsptoolServiceTest {

Expand Down Expand Up @@ -110,8 +102,6 @@ void readAllDevices(Flux<String> actualLinesFlashId,
.expectNext(expectedEspDeviceInfoRecord)
.verifyComplete();

verify(esptoolFallbackService, times(0)).fallback("/dev/ttyUSB1");
verify(esptoolFallbackService, times(0)).fallbackEmptyPorts();
verifyNoInteractions(esptoolFallbackService);

}
Expand All @@ -132,7 +122,7 @@ void readAllDevicesEmptyPorts() {
.expectErrorMatches(error -> error.getMessage().contains("Possibly empty ports"))
.verify();

verify(esptoolFallbackService, times(1)).fallbackEmptyPorts();
verify(esptoolFallbackService).fallbackEmptyPorts();
verifyNoMoreInteractions(esptoolFallbackService);

}
Expand All @@ -157,7 +147,6 @@ void readFlashIdWithCustomPort(String portForInputStream,
.expectNext(expectedLines)
.verifyComplete();

verify(esptoolFallbackService, times(0)).fallback(portForInputStream);
verifyNoInteractions(esptoolFallbackService);

}
Expand Down Expand Up @@ -186,7 +175,7 @@ void flashSizeIsNullFromInputWhenMapping(String portForInputStream,
.expectNext(expectedLines)
.verifyComplete();

verify(esptoolFallbackService, times(1)).fallback(portForInputStream);
verify(esptoolFallbackService).fallback(portForInputStream);
verifyNoMoreInteractions(esptoolFallbackService);

}
Expand Down Expand Up @@ -365,8 +354,9 @@ void testCreateDirectoryWhenNotExists() throws Exception {

esptoolService.createEspBackUpFlashDirIfNotExists();

filesMock.verify(() -> Files.exists(mockedPath), times(1));
filesMock.verify(() -> Files.createDirectory(mockedPath), times(1));
filesMock.verify(() -> Files.exists(mockedPath));
filesMock.verify(() -> Files.createDirectory(mockedPath));
filesMock.verifyNoMoreInteractions();
}
}

Expand All @@ -379,8 +369,8 @@ void testDirectoryAlreadyExists() throws Exception {

esptoolService.createEspBackUpFlashDirIfNotExists();

filesMock.verify(() -> Files.exists(mockedPath), times(1));
filesMock.verify(() -> Files.createDirectory(mockedPath), never());
filesMock.verify(() -> Files.exists(mockedPath));
filesMock.verifyNoMoreInteractions();
}
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import com.esp.espflow.entity.EsptoolExecutableEntity;
import com.esp.espflow.entity.dto.EsptoolExecutableDto;
import com.esp.espflow.service.respository.EsptoolExecutableRepository;
import com.esp.espflow.service.respository.impl.provider.esptoolexecutableprovider.EsptoolExecutableServiceFindByIsSelectedToTrueProvider;
import com.esp.espflow.service.respository.impl.provider.esptoolexecutableprovider.EsptoolExecutableServiceSaveProvider;
import com.esp.espflow.service.respository.impl.provider.esptoolexecutableprovider.EsptoolExecutableServiceUpdateProvider;
import com.esp.espflow.service.respository.impl.provider.esptoolexecutableprovider.EsptoollExecutableServiceFindAllProvider;
Expand All @@ -21,7 +22,6 @@

import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.AssertionsForClassTypes.assertThatCode;
import static org.junit.jupiter.api.Assertions.assertAll;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
Expand Down Expand Up @@ -54,7 +54,7 @@ void save(EsptoolExecutableDto dtoToSave, EsptoolExecutableEntity entityToSave)
.usingRecursiveComparison()
.isEqualTo(captor.getValue());

verify(esptoolExecutableRepository, times(1)).save(captor.getValue());
verify(esptoolExecutableRepository).save(captor.getValue());

}

Expand All @@ -74,14 +74,12 @@ void update(EsptoolExecutableEntity toSave, EsptoolExecutableDto dtoToSave, Espt
.usingRecursiveComparison()
.isEqualTo(captor.getValue());

assertAll(() -> {
assertThat(esptoolExecutableService.findByEsptoolVersionWithBundle("v4.7.0", false))
.map(EsptoolExecutableDto::isSelected)
.hasValue(true);
});
assertThat(esptoolExecutableService.findByEsptoolVersionWithBundle("v4.7.0", false))
.map(EsptoolExecutableDto::isSelected)
.hasValue(true);

verify(esptoolExecutableRepository, times(2)).findByEsptoolVersionWithBundle("v4.7.0", false);
verify(esptoolExecutableRepository, times(1)).save(captor.getValue());
verify(esptoolExecutableRepository).save(captor.getValue());

}

Expand Down Expand Up @@ -118,7 +116,7 @@ void findByEsptoolVersionWithBundle() {
.usingRecursiveComparison()
.isEqualTo(expectedEsptoolExecutableDto);

verify(esptoolExecutableRepository, times(1)).findByEsptoolVersionWithBundle("v4.7.0", false);
verify(esptoolExecutableRepository).findByEsptoolVersionWithBundle("v4.7.0", false);
verifyNoMoreInteractions(esptoolExecutableRepository);

}
Expand All @@ -127,45 +125,29 @@ void findByEsptoolVersionWithBundle() {
@DisplayName("update all items except this id")
void updateAllSelectedToFalseExcept() {

assertThatCode(() -> esptoolExecutableService.updateAllSelectedToFalseExcept(1L))
.doesNotThrowAnyException();
assertThatCode(() -> esptoolExecutableService.updateAllSelectedToFalseExcept(1L)).doesNotThrowAnyException();

verify(esptoolExecutableRepository, times(1)).updateAllSelectedToFalseExcept(1L);
verify(esptoolExecutableRepository).updateAllSelectedToFalseExcept(1L);
verifyNoMoreInteractions(esptoolExecutableRepository);

}

@Test
@ParameterizedTest
@ArgumentsSource(EsptoolExecutableServiceFindByIsSelectedToTrueProvider.class)
@DisplayName("Only is set to true")
void findByIsSelectedToTrue() {
final EsptoolExecutableEntity esptoolExecutableEntityToSave = EsptoolExecutableEntity
.builder()
.id(1L)
.name("esptool")
.absolutePathEsptool("/tmp/esptool-dir/esptool.py")
.esptoolVersion("v4.7.0")
.isBundled(false)
.isSelected(true)
.sha256("ae1a3fe6eed5bf7e5dbaee78aea868c5e62f80dd43e13a2f69016da86387a194")
.build();
void findByIsSelectedToTrue(EsptoolExecutableEntity entitySaved, EsptoolExecutableDto expectedEsptoolExecutableDto) {

when(esptoolExecutableRepository.findByIsSelectedToTrue())
.thenReturn(Optional.of(esptoolExecutableEntityToSave));

final Optional<EsptoolExecutableDto> expectedEsptoolExecutableDto = Optional.of(EsptoolExecutableDto
.builder()
.id(1L)
.name("esptool")
.absolutePathEsptool("/tmp/esptool-dir/esptool.py")
.esptoolVersion("v4.7.0")
.isBundled(false)
.isSelected(true)
.sha256("ae1a3fe6eed5bf7e5dbaee78aea868c5e62f80dd43e13a2f69016da86387a194")
.build());
when(esptoolExecutableRepository.findByIsSelectedToTrue()).thenReturn(Optional.of(entitySaved));

assertThat(this.esptoolExecutableService.findByIsSelectedToTrue())
.usingRecursiveComparison()
.isEqualTo(expectedEsptoolExecutableDto);
.isEqualTo(Optional.of(expectedEsptoolExecutableDto));

assertThat(this.esptoolExecutableService.findByIsSelectedToTrue())
.map(EsptoolExecutableDto::isSelected)
.hasValue(true);


}

@Test
Expand Down Expand Up @@ -204,7 +186,7 @@ void findByAbsolutePathEsptoolAndIsBundleAndVersion() {

@ParameterizedTest
@ArgumentsSource(EsptoollExecutableServiceFindAllProvider.class)
@DisplayName("findAll ")
@DisplayName("findAll saved two entities")
void findAll(EsptoolExecutableEntity entity, EsptoolExecutableEntity entity2,
EsptoolExecutableDto expectedEsptoolExecutableDto, EsptoolExecutableDto expectedEsptoolExecutableDto2) {

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package com.esp.espflow.service.respository.impl.provider.esptoolexecutableprovider;

import com.esp.espflow.entity.EsptoolExecutableEntity;
import com.esp.espflow.entity.dto.EsptoolExecutableDto;
import org.junit.jupiter.api.extension.ExtensionContext;
import org.junit.jupiter.params.provider.Arguments;
import org.junit.jupiter.params.provider.ArgumentsProvider;

import java.util.stream.Stream;

public class EsptoolExecutableServiceFindByIsSelectedToTrueProvider implements ArgumentsProvider {

@Override
public Stream<? extends Arguments> provideArguments(ExtensionContext extensionContext) throws Exception {

final EsptoolExecutableEntity entitySaved = EsptoolExecutableEntity
.builder()
.id(1L)
.name("esptool")
.absolutePathEsptool("/tmp/esptool-dir/esptool.py")
.esptoolVersion("v4.7.0")
.isBundled(false)
.isSelected(true)
.sha256("ae1a3fe6eed5bf7e5dbaee78aea868c5e62f80dd43e13a2f69016da86387a194")
.build();

final EsptoolExecutableDto expectedEsptoolExecutableDto = EsptoolExecutableDto
.builder()
.id(1L)
.name("esptool")
.absolutePathEsptool("/tmp/esptool-dir/esptool.py")
.esptoolVersion("v4.7.0")
.isBundled(false)
.isSelected(true)
.sha256("ae1a3fe6eed5bf7e5dbaee78aea868c5e62f80dd43e13a2f69016da86387a194")
.build();

return Stream.of(Arguments.of(entitySaved, expectedEsptoolExecutableDto));
}

}

0 comments on commit 4770cf2

Please sign in to comment.