package stormapplied.flashsale.services; import java.util.List; import java.util.ArrayList; import java.util.Random; class FlashSaleRecommendationService { private final Random random = new Random(); private final LatencySimulator latency = new LatencySimulator(100, 50, 150, 1000, 10); public List<String> findSalesFor(String customerId, int timeoutInMillis) { latency.simulate(timeoutInMillis); return generateSales(); } private List<String> generateSales() { List<String> sales = new ArrayList<String>(); if (shouldGenerateSales()) { int numberOfSales = random.nextInt(5) + 1; for(int i=1; i<= numberOfSales; i++) { String sku = Integer.toString(random.nextInt(200000) + 1000) + "-x-"; String saleNumber = sku + Integer.toString(i); sales.add(saleNumber); } } return sales; } private boolean shouldGenerateSales() { return random.nextInt(2) == 0; } }