package de.ironjan.mensaupb.stw.rest_api;
/**
* Mock implementation of StwRest to test without a secret STW url
*/
public class MockRestWrapper implements StwRest {
private static final Allergen[] NO_ALLERGENS = new Allergen[0];
private static MockRestWrapper instance;
private final Allergen[] ALL_ALLERGENS = {
Allergen.COLORED,
Allergen.CONSERVED,
Allergen.ANTIOXIDANTS,
Allergen.FLAVOR_ENHANCERS,
Allergen.PHOSPHAT,
Allergen.SULFURATED,
Allergen.WAXED,
Allergen.BLACKENED,
Allergen.SWEETENER,
Allergen.PHENYLALANINE,
Allergen.TAURINE,
Allergen.NITRATE_SALT,
Allergen.COFFEINE,
Allergen.QUININE,
Allergen.LACTOPROTEIN,
Allergen.CRUSTACEAN,
Allergen.EGGS,
Allergen.FISH,
Allergen.SOYA,
Allergen.LACTOSE,
Allergen.NUTS,
Allergen.CELERIAC,
Allergen.MUSTARD,
Allergen.SESAME,
Allergen.SULFITES,
Allergen.MOLLUSKS,
Allergen.LUPINE,
Allergen.GLUTEN,
Allergen.PEANUTS
};
private MockRestWrapper() {
}
public static MockRestWrapper getInstance() {
if (instance == null) {
instance = new MockRestWrapper();
}
return instance;
}
@Override
public StwMenu[] getMenus(String restaurant, String date) {
return constructMockMenus(restaurant, date);
}
private StwMenu[] constructMockMenus(String restaurant, String date) {
StwMenu wok = buildRawMenu(restaurant, date, "weighted wok allergens", "weighted test food for wok with all allergens", "wok", ALL_ALLERGENS, PriceType.WEIGHT);
StwMenu pasta = buildRawMenu(restaurant, date, "weighted pasta no Allergens", "weighted test food for pasta with no allergens", "pasta", NO_ALLERGENS, PriceType.WEIGHT);
StwMenu defaultDish = buildRawMenu(restaurant, date, "fixed default no Allergens", "fixed test default food with no allergens", "default", NO_ALLERGENS, PriceType.FIXED);
StwMenu soup = buildRawMenu(restaurant, date, "fixed soup no Allergens", "fixed test soup with no allergens", "soup", NO_ALLERGENS, PriceType.FIXED);
StwMenu sidedish = buildRawMenu(restaurant, date, "fixed sidedish no Allergens", "fixed test sidedish with no allergens", "sidedish", NO_ALLERGENS, PriceType.FIXED);
StwMenu dessert = buildRawMenu(restaurant, date, "fixed dessert no Allergens", "fixed test dessert with no allergens", "dessert", NO_ALLERGENS, PriceType.FIXED);
StwMenu counterdessert = buildRawMenu(restaurant, date, "fixed counter dessert no Allergens", "fixed counter dessert default food with no allergens", "counter dessert", NO_ALLERGENS, PriceType.FIXED);
StwMenu grill = buildRawMenu(restaurant, date, "fixed grill no Allergens", "fixed test grill food with no allergens", "grill", NO_ALLERGENS, PriceType.FIXED);
return new StwMenu[]{wok, pasta, defaultDish, soup, sidedish, dessert, counterdessert, grill};
}
@SuppressWarnings("MagicNumber")
private StwMenu buildRawMenu(String restaurant, String date, String name, String description, String category, Allergen[] allergens, PriceType pricetype) {
StwMenu menu = new StwMenu();
menu.setName_de(name);
menu.setName_en(name);
menu.setDate(date);
menu.setDescription_de(description);
menu.setDescription_en(description);
menu.setPricetype(pricetype);
menu.setPriceStudents(1.00);
menu.setPriceWorkers(12.00);
menu.setPriceGuests(100.00);
menu.setCategory_de(category);
menu.setCategory_en(category);
menu.setRestaurant(restaurant);
menu.setAllergens(allergens);
return menu;
}
}