@Test
 public void should_not_be_available() throws Exception {
   assertThat(DiscountOptimization.get().available(Arrays.asList())).isFalse();
   assertThat(DiscountOptimization.get().available(Arrays.asList(Discount.NO_DISCOUNT))).isFalse();
   assertThat(
           DiscountOptimization.get()
               .available(Arrays.asList(Discount.FIVE_DISCOUNT, Discount.FIVE_DISCOUNT)))
       .isFalse();
   assertThat(
           DiscountOptimization.get()
               .available(Arrays.asList(Discount.TEN_DISCOUNT, Discount.TEN_DISCOUNT)))
       .isFalse();
 }
  @Test
  public void should_apply_optimization() throws Exception {
    List<Discount> optimizedDiscounts =
        DiscountOptimization.get()
            .apply(Arrays.asList(Discount.TWENTY_FIVE_DISCOUNT, Discount.TEN_DISCOUNT));

    assertThat(optimizedDiscounts)
        .containsExactly(Discount.TWENTY_DISCOUNT, Discount.TWENTY_DISCOUNT);
  }