Skip to content

Commit abd468a

Browse files
committed
Fix flaky test in examples
1 parent 916a36e commit abd468a

File tree

3 files changed

+13
-10
lines changed

3 files changed

+13
-10
lines changed

examples/end-to-end/src/it/java/software/amazon/smithy/java/server/example/RoundTripTests.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,8 @@ void executesCorrectly() throws InterruptedException {
7272
var getResponse1 = client.getOrder(getRequest);
7373
assertEquals(getResponse1.status(), OrderStatus.IN_PROGRESS);
7474

75-
// Give order some time to complete
76-
System.out.println("Waiting for order to complete....");
77-
TimeUnit.SECONDS.sleep(5);
75+
// Complete the order
76+
OrderTracker.completeOrder(getResponse1.id());
7877

7978
var getResponse2 = client.getOrder(getRequest);
8079
assertEquals(getResponse2.status(), OrderStatus.COMPLETED);

examples/end-to-end/src/main/java/software/amazon/smithy/java/server/example/Order.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,9 @@
1616
* @param type Type of drink for the order
1717
* @param status status of the order.
1818
*/
19-
public record Order(UUID id, CoffeeType type, OrderStatus status) {}
19+
public record Order(UUID id, CoffeeType type, OrderStatus status) {
20+
21+
Order complete() {
22+
return new Order(id, type, OrderStatus.COMPLETED);
23+
}
24+
}

examples/end-to-end/src/main/java/software/amazon/smithy/java/server/example/OrderTracker.java

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,16 @@
1616
* This class is a stand-in for a database.
1717
*/
1818
final class OrderTracker {
19-
private static final ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(1);
2019
private static final Map<UUID, Order> ORDERS = new ConcurrentHashMap<>();
2120

21+
private OrderTracker() {}
22+
2223
public static void putOrder(Order order) {
2324
ORDERS.put(order.id(), order);
25+
}
2426

25-
// Start a process to complete the order in the background.
26-
executor.schedule(
27-
() -> ORDERS.put(order.id(), new Order(order.id(), order.type(), OrderStatus.COMPLETED)),
28-
5,
29-
TimeUnit.SECONDS);
27+
public static void completeOrder(String id) {
28+
ORDERS.computeIfPresent(UUID.fromString(id), (k,v) -> v.complete());
3029
}
3130

3231
public static Order getOrderById(UUID id) {

0 commit comments

Comments
 (0)