Skip to content

Commit

Permalink
a reformat code
Browse files Browse the repository at this point in the history
  • Loading branch information
actions-user committed May 17, 2023
1 parent 9d9e617 commit 18d07d3
Showing 1 changed file with 84 additions and 75 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,89 +10,98 @@
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

@UseReporter(DiffMergeReporter.class)
public class LoaderTest {
public static class Step1 {
// begin-snippet: separating_loaders_1
public void reserveItems(List<String> ids) {
Item[] items = getInventory();
for (Item item : items) {
if (ids.contains(item.id) && item.inventoryCount > 0) {
registerHold(item);
}
}
public class LoaderTest
{
public static class Step1
{
// begin-snippet: separating_loaders_1
public void reserveItems(List<String> ids)
{
Item[] items = getInventory();
for (Item item : items)
{
if (ids.contains(item.id) && item.inventoryCount > 0)
{
registerHold(item);
}
// end-snippet
}
}

public static class Step2 {
// begin-snippet: separating_loaders_2
public void reserveItems(List<String> ids) {
reserveItems(ids, new InventoryLoader(), new ItemReserver());
}

public void reserveItems(List<String> ids, Loader<Item[]> loader, Saver<Item> itemReserver) {
Item[] items = loader.load();
for (Item item : items) {
if (ids.contains(item.id) && item.inventoryCount > 0) {
itemReserver.save(item);
}
}
}
// end-snippet
// begin-snippet: seperating_loaders_test

@Test
public void name() {

Item milk = new Item("M101", "Milk", 2);
Item missing_item = new Item("W202", "Item not Found", 2);
Item sold_out_item = new Item("S303", "SuperPopularGame", 0);

List<Item> saved = new ArrayList<>();
reserveItems(Arrays.asList(milk.id, missing_item.id, sold_out_item.id ),
() -> new Item[]{milk, sold_out_item},
i -> {saved.add(i); return i;});

// Only reserved milk
Assert.assertArrayEquals(saved.toArray(), new Item[]{milk});
}

// end-snippet
// end-snippet
}
public static class Step2
{
// begin-snippet: separating_loaders_2
public void reserveItems(List<String> ids)
{
reserveItems(ids, new InventoryLoader(), new ItemReserver());
}

public static class InventoryLoader implements Loader<Item[]> {
@Override
public Item[] load() {
return getInventory();
public void reserveItems(List<String> ids, Loader<Item[]> loader, Saver<Item> itemReserver)
{
Item[] items = loader.load();
for (Item item : items)
{
if (ids.contains(item.id) && item.inventoryCount > 0)
{
itemReserver.save(item);
}
}
}

public static class ItemReserver implements Saver<Item> {
@Override
public Item save(Item save) {
registerHold(save);
return save;
}
// end-snippet
// begin-snippet: seperating_loaders_test
@Test
public void name()
{
Item milk = new Item("M101", "Milk", 2);
Item missing_item = new Item("W202", "Item not Found", 2);
Item sold_out_item = new Item("S303", "SuperPopularGame", 0);
List<Item> saved = new ArrayList<>();
reserveItems(Arrays.asList(milk.id, missing_item.id, sold_out_item.id),
() -> new Item[]{milk, sold_out_item}, i -> {
saved.add(i);
return i;
});
// Only reserved milk
Assert.assertArrayEquals(saved.toArray(), new Item[]{milk});
}

private static void registerHold(Item item) {
// end-snippet
}
public static class InventoryLoader implements Loader<Item[]>
{
@Override
public Item[] load()
{
return getInventory();
}

private static Item[] getInventory() {
Item[] items = new Item[0];
return items;
}
public static class ItemReserver implements Saver<Item>
{
@Override
public Item save(Item save)
{
registerHold(save);
return save;
}

public static class Item {
public String id;
public int inventoryCount;
public String name;

public Item(String id, String name, int inventoryCount) {
this.id = id;
this.inventoryCount = inventoryCount;
this.name = name;
}
}
private static void registerHold(Item item)
{
}
private static Item[] getInventory()
{
Item[] items = new Item[0];
return items;
}
public static class Item
{
public String id;
public int inventoryCount;
public String name;
public Item(String id, String name, int inventoryCount)
{
this.id = id;
this.inventoryCount = inventoryCount;
this.name = name;
}
}
}

0 comments on commit 18d07d3

Please sign in to comment.