Skip to content

Commit 34608a0

Browse files
committed
Merge remote-tracking branch 'origin/maintenance/integration-test-refactor' into maintenance/integration-test-refactor
2 parents b785ab9 + 54e8c8a commit 34608a0

12 files changed

Lines changed: 165 additions & 55 deletions

File tree

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
# RobonAUT Server
22
![CircleCI](https://circleci.com/gh/BSStudio/robonaut-server/tree/main.svg?style=svg)
3+
[![Dependabot Status](https://api.dependabot.com/badges/status?host=github&repo=BSStudio/robonaut-server)](https://dependabot.com)
34
***
45
[RobonAUT](http://robonaut.aut.bme.hu/) is an annual robot competition organized by the Faculty of Electrical Engineering and Informatics of Budapest University of Technology and Economics, dating back more than a decade.
56
The event is livestreamed by BSS, one of the university student-operated video studios.
@@ -41,4 +42,5 @@ The required environment variables can be found here:
4142
For MongoDB and RabbitMQ specific variables visit Spring Boot documentations.
4243

4344
## Documentation
44-
To access the documentation run the application and navigate to the root `/`.
45+
46+
To access the documentation run the application and navigate to `http://localhost:8080/`.

build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
plugins {
2-
id 'org.springframework.boot' version '2.4.1' apply false
3-
id 'io.spring.dependency-management' version '1.0.10.RELEASE' apply false
2+
id 'org.springframework.boot' version '2.4.2' apply false
3+
id 'io.spring.dependency-management' version '1.0.11.RELEASE' apply false
44
id 'java'
55
id 'idea'
66
id 'checkstyle'

messaging/src/main/java/hu/bsstudio/robonaut/configuration/RabbitConfiguration.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ public Jackson2JsonMessageConverter jackson2JsonMessageConverter() {
5656
}
5757

5858
@Bean
59-
public ConnectionNameStrategy cns() {
59+
public ConnectionNameStrategy connectionNameStrategy() {
6060
return new SimplePropertyValueConnectionNameStrategy("spring.application.name");
6161
}
6262
}

service/src/main/java/hu/bsstudio/robonaut/race/speed/timer/BroadcastingSpeedTimerService.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@ public class BroadcastingSpeedTimerService implements SpeedTimerService {
1717
private final SpeedTimerService service;
1818

1919
@Override
20-
public Mono<SpeedTimer> startTimer() {
21-
return service.startTimer()
20+
public Mono<SpeedTimer> startTimer(final SpeedTimer speedTimer) {
21+
return service.startTimer(speedTimer)
2222
.doOnNext(this::sendTimerInformation);
2323
}
2424

service/src/main/java/hu/bsstudio/robonaut/race/speed/timer/DefaultSpeedTimerService.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,15 @@
88
@RequiredArgsConstructor
99
public class DefaultSpeedTimerService implements SpeedTimerService {
1010

11-
private static final int TIMER_INITIAL_VALUE = 0;
12-
1311
@Override
14-
public Mono<SpeedTimer> startTimer() {
15-
return Mono.just(new SpeedTimer(TIMER_INITIAL_VALUE, TimerAction.START));
12+
public Mono<SpeedTimer> startTimer(final SpeedTimer speedTimer) {
13+
return Mono.just(speedTimer)
14+
.filter(timer -> timer.getTimerAction() == TimerAction.START);
1615
}
1716

1817
@Override
1918
public Mono<SpeedTimer> stopTimerAt(final SpeedTimer speedTimer) {
2019
return Mono.just(speedTimer)
21-
.filter(timer -> timer.getTimerAction().equals(TimerAction.STOP));
20+
.filter(timer -> timer.getTimerAction() == TimerAction.STOP);
2221
}
2322
}

service/src/main/java/hu/bsstudio/robonaut/race/speed/timer/SpeedTimerService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import reactor.core.publisher.Mono;
55

66
public interface SpeedTimerService {
7-
Mono<SpeedTimer> startTimer();
7+
Mono<SpeedTimer> startTimer(final SpeedTimer speedTimer);
88

99
Mono<SpeedTimer> stopTimerAt(final SpeedTimer speedTimer);
1010
}

service/src/test/java/hu/bsstudio/robonaut/race/speed/timer/BroadcastingSpeedTimerServiceTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,10 @@ void setUp() {
3232

3333
@Test
3434
void shouldReturnSpeedTimerFromUnderLyingServiceAndSendItWhenTimerIsStarted() {
35-
when(mockService.startTimer())
35+
when(mockService.startTimer(SPEED_TIMER))
3636
.thenReturn(Mono.just(SPEED_TIMER));
3737

38-
final var result = underTest.startTimer();
38+
final var result = underTest.startTimer(SPEED_TIMER);
3939

4040
StepVerifier.create(result)
4141
.expectNext(SPEED_TIMER)

service/src/test/java/hu/bsstudio/robonaut/race/speed/timer/DefaultSpeedTimerServiceTest.java

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@
88

99
final class DefaultSpeedTimerServiceTest {
1010

11+
private static final SpeedTimer SPEED_TIMER_START = new SpeedTimer(2020, TimerAction.START);
12+
private static final SpeedTimer SPEED_TIMER_STOP = new SpeedTimer(2020, TimerAction.STOP);
13+
1114
private DefaultSpeedTimerService underTest;
1215

1316
@BeforeEach
@@ -16,30 +19,38 @@ void setUp() {
1619
}
1720

1821
@Test
19-
void shouldReturnTimerWithZeroInitialValueWhenTimerIsStarted() {
20-
final var result = underTest.startTimer();
22+
void shouldReturnTimerOnStart() {
23+
24+
final var result = underTest.startTimer(SPEED_TIMER_START);
25+
26+
StepVerifier.create(result)
27+
.expectNext(SPEED_TIMER_START)
28+
.verifyComplete();
29+
}
30+
31+
@Test
32+
void shouldReturnEmptyWhenActionDoesNotMatchOnStart() {
33+
34+
final var result = underTest.startTimer(SPEED_TIMER_STOP);
2135

2236
StepVerifier.create(result)
23-
.expectNext(new SpeedTimer(0, TimerAction.START))
2437
.verifyComplete();
2538
}
2639

2740
@Test
2841
void shouldReturnTimerOnStop() {
29-
final var speedTimer = new SpeedTimer(2020, TimerAction.STOP);
3042

31-
final var result = underTest.stopTimerAt(speedTimer);
43+
final var result = underTest.stopTimerAt(SPEED_TIMER_STOP);
3244

3345
StepVerifier.create(result)
34-
.expectNext(speedTimer)
46+
.expectNext(SPEED_TIMER_STOP)
3547
.verifyComplete();
3648
}
3749

3850
@Test
39-
void shouldReturnEmptyWhenActionDoesNotMatch() {
40-
final var speedTimer = new SpeedTimer(2020, TimerAction.START);
51+
void shouldReturnEmptyWhenActionDoesNotMatchOnStop() {
4152

42-
final var result = underTest.stopTimerAt(speedTimer);
53+
final var result = underTest.stopTimerAt(SPEED_TIMER_START);
4354

4455
StepVerifier.create(result)
4556
.verifyComplete();

web/src/main/java/hu/bsstudio/robonaut/speed/StartSpeedTimerHandler.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ public class StartSpeedTimerHandler implements HandlerFunction<ServerResponse> {
1717

1818
@Override
1919
public Mono<ServerResponse> handle(final ServerRequest request) {
20-
final var speedTimer = service.startTimer();
20+
final var speedTimer = request.bodyToMono(SpeedTimer.class)
21+
.flatMap(service::startTimer);
2122
return ServerResponse.ok().body(speedTimer, SpeedTimer.class);
2223
}
2324
}

0 commit comments

Comments
 (0)