Дебажу уже часа 3.
Что нашел - поправил, но чего-то уже никак ничего еще найти не могу, а что-то еще осталось.
Может кто желает в чужом коде покопаться?
package com.javarush.task.task27.task2712;
import com.javarush.task.task27.task2712.kitchen.Cook;
import com.javarush.task.task27.task2712.kitchen.Waiter;
import com.javarush.task.task27.task2712.statistic.StatisticManager;
import com.javarush.task.task27.task2712.statistic.event.CookedOrderEventDataRow;
import java.io.*;
import java.lang.reflect.Field;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
import java.util.Random;
public class Restaurant {
public static void main(String[] args) {
//Mock data
String[] input = {
"Fish", System.lineSeparator(), "Water", System.lineSeparator(), "exit", System.lineSeparator(),
"Juice", System.lineSeparator(), "Steak", System.lineSeparator(), "exit", System.lineSeparator(),
"Soup", System.lineSeparator(), "exit", System.lineSeparator(),
"Water", System.lineSeparator(), "exit", System.lineSeparator(),
"Juice", System.lineSeparator(), "exit", System.lineSeparator()
};
byte[][] bytes = Arrays.stream(input).map(String::getBytes).toArray(byte[][]::new);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
for (byte[] string :
bytes) {
byteArrayOutputStream.write(string, 0, string.length);
}
System.setIn(new ByteArrayInputStream(byteArrayOutputStream.toByteArray()));
Cook[] cooks = {
new Cook("FirstOne"),
new Cook("SecondOne")};
Waiter waiter = new Waiter();
cooks[0].addObserver(waiter);
cooks[1].addObserver(waiter);
for (int i = 1; i < 5; i++) {
Tablet tablet = new Tablet(i);
int cookNumber = i % 2 == 0 ? 0 : 1;
tablet.addObserver(cooks[cookNumber]);
tablet.createOrder();
CookedOrderEventDataRow cookedOrderEventDataRow =
new CookedOrderEventDataRow(tablet.toString(),
cooks[cookNumber].toString(),
new Random().nextInt(10000), null);
try {
Field date = cookedOrderEventDataRow.getClass().getDeclaredField("currentDate");
if (!date.isAccessible())
date.setAccessible(true);
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd-MM-yyyy");
Date mockDate = simpleDateFormat.parse("1"+i+"-0" + i + "-2002");
date.set(cookedOrderEventDataRow, mockDate);
StatisticManager.getInstance().register(cookedOrderEventDataRow);
} catch (NoSuchFieldException | ParseException | IllegalAccessException e) {
e.printStackTrace();
}
}
DirectorTablet directorTablet = new DirectorTablet();
directorTablet.printAdvertisementProfit();
directorTablet.printCookWorkloading();
directorTablet.printActiveVideoSet();
directorTablet.printArchivedVideoSet();
// try {
//
// Cook amigo = new Cook("Amigo");
// Cook diego = new Cook("Diego");
//
// CookedOrderEventDataRow[] cookedOrderEventDataRows = {
// new CookedOrderEventDataRow("12-01-2012", "Amigo", 2990),
// new CookedOrderEventDataRow("13-01-2012", "Amigo", 3560),
// new CookedOrderEventDataRow("12-01-2012", "Diego", 2800),
// new CookedOrderEventDataRow("13-01-2012", "Diego", 1800)};
//
// StatisticManager statisticManager = StatisticManager.getInstance();
// statisticManager.register(amigo);
// statisticManager.register(diego);
// statisticManager.register(cookedOrderEventDataRows[0]);
// statisticManager.register(cookedOrderEventDataRows[1]);
// statisticManager.register(cookedOrderEventDataRows[2]);
// statisticManager.register(cookedOrderEventDataRows[3]);
//
//
// DirectorTablet directorTablet = new DirectorTablet();
// directorTablet.printAdvertisementProfit();
// directorTablet.printCookWorkloading();
// } catch (ParseException e) {
// e.printStackTrace();
// }
}
}