Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
package dev.example.restaurantManager.Interfaces;

public interface IMenuItem {
String getId();
void setId(String id);
String getName();
void setName(String name);
String getDescription();
void setDescription(String description);
double getPrice();
void setPrice(double price);
}
27 changes: 27 additions & 0 deletions src/main/java/dev/example/restaurantManager/model/Dessert.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package dev.example.restaurantManager.model;

import jakarta.persistence.Entity;

@Entity
public class Dessert extends MenuItem{

private boolean sugarFree;

public Dessert(){

}

public Dessert(String id, String name, String description, double price, boolean sugarFree) {
super(id,name,description,price);
this.sugarFree = sugarFree;
}

public boolean isSugarFree(){
return sugarFree;
}

public void setSugarFree(boolean sugarFree){
this.sugarFree = sugarFree;
}

}
24 changes: 24 additions & 0 deletions src/main/java/dev/example/restaurantManager/model/MainCourse.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package dev.example.restaurantManager.model;

import jakarta.persistence.Entity;

@Entity
public class MainCourse extends MenuItem{

private boolean vegan;

public MainCourse(){

}

public MainCourse(String id, String name, String description, double price, boolean vegan) {
super(id,name,description,price);
this.vegan = vegan;
}
public boolean isVegan(){
return vegan;
}
public void setVegan(boolean vegan){
this.vegan = vegan;
}
}
61 changes: 57 additions & 4 deletions src/main/java/dev/example/restaurantManager/model/MenuItem.java
Original file line number Diff line number Diff line change
@@ -1,16 +1,17 @@
package dev.example.restaurantManager.model;

import dev.example.restaurantManager.Interfaces.IMenuItem;
import jakarta.persistence.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.boot.autoconfigure.web.WebProperties;

import java.util.List;

@Data
@AllArgsConstructor
@NoArgsConstructor
@Entity
public class MenuItem {
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class MenuItem implements IMenuItem {

@Id
private String id;
Expand All @@ -21,10 +22,62 @@ public class MenuItem {
@ManyToMany(mappedBy = "menuItems")
private List<MenuRestaurant> menus;

public MenuItem() {

}

public MenuItem(String id, String name, String description, double price) {
this.id = id;
this.name = name;
this.description = description;
this.price = price;
}

@Override
public void setId(String id) {
this.id = id;
}

@Override
public String getId() {
return id;
}

@Override
public void setName(String name) {
this.name = name;
}

@Override
public String getName() {
return name;
}

@Override
public void setPrice(double price) {
this.price = price;
}

@Override
public double getPrice() {
return price;
}

@Override
public void setDescription(String description) {
this.description = description;
}

@Override
public String getDescription() {
return description;
}

@Override
public String toString(){
return "id=" + this.getId()
+ ", name=" + this.getName()
+ ", description=" + this.getDescription()
+ ", price=" + this.getPrice();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package dev.example.restaurantManager.repository;

import dev.example.restaurantManager.model.Dessert;
import org.springframework.data.jpa.repository.JpaRepository;

public interface DessertRepository extends JpaRepository<Dessert,String> {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package dev.example.restaurantManager.repository;

import dev.example.restaurantManager.model.MainCourse;
import org.springframework.data.jpa.repository.JpaRepository;

public interface MainCourseRepository extends JpaRepository<MainCourse, String> {
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
import dev.example.restaurantManager.repository.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.time.LocalDate;
import java.util.*;
import java.util.concurrent.TimeUnit;
Expand Down Expand Up @@ -33,6 +32,11 @@ public class DataLoader {
private ShippingOrderRepository shippingOrderRepository;
@Autowired
private TakeAwayOrderRepository takeAwayOrderRepository;
@Autowired
private MainCourseRepository mainCourseRepository;
@Autowired
private DessertRepository dessertRepository;

private final Faker faker = new Faker(new Locale("en-US"));

// master method orchestrating all other methods to
Expand All @@ -44,7 +48,8 @@ public void loadAllData() {
// then create relationships between them
createCustomers();
createTables();
createMenuItems();
createMainCourse();
createDessert();

// create and assign menu items
createMenusAndAssignMenuItems();
Expand Down Expand Up @@ -94,15 +99,31 @@ private void createTables() {
}
}

private void createMainCourse() {
for (int i = 0; i < 10; i++) {
MenuItem menuItem;
menuItem = new MainCourse(
UUID.randomUUID().toString(),
faker.food().dish(),
faker.food().ingredient() + " " + faker.food().ingredient(),
faker.number().randomDouble(2, 5, 30),
true
);
menuItemRepository.save(menuItem);
}
}

// we are going to create 25 menu items
// and save them in the H2 local database
private void createMenuItems() {
private void createDessert() {
for (int i = 0; i < 25; i++) {
MenuItem menuItem = new MenuItem(
MenuItem menuItem;
menuItem = new Dessert(
UUID.randomUUID().toString(),
faker.food().dish(),
faker.food().ingredient() + " " + faker.food().ingredient() ,
faker.number().randomDouble(2, 5, 30)
faker.food().ingredient() + " " + faker.food().ingredient(),
faker.number().randomDouble(2, 5, 30),
faker.random().nextBoolean()
);
menuItemRepository.save(menuItem);
}
Expand Down
56 changes: 56 additions & 0 deletions src/test/java/dev/example/restaurantManager/MenuItemTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
package dev.example.restaurantManager;


import dev.example.restaurantManager.model.Dessert;
import dev.example.restaurantManager.model.MainCourse;
import dev.example.restaurantManager.repository.DessertRepository;
import dev.example.restaurantManager.repository.MainCourseRepository;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;

@DataJpaTest
public class MenuItemTest {

@Autowired
private DessertRepository dessertRepository;
@Autowired
private MainCourseRepository mainCourseRepository;

@Test
public void dessertTest() {
Dessert dessert = new Dessert(
"MD001",
"Carrot Cake",
"Carrot sweet",
7.0,
true
);
dessertRepository.save(dessert);

Dessert found = dessertRepository.findById("MD001").orElse(null);
assertNotNull(found);
assertEquals(dessert.getDescription(), found.getDescription());
assertTrue(found.isSugarFree());
}

@Test
public void mainCourseTest() {

MainCourse mainCourse = new MainCourse(
"MC001",
"Toat",
"Potatoes with pig",
17.50,
false
);
mainCourseRepository.save(mainCourse);

MainCourse found = mainCourseRepository.findById("MC001").orElse(null);
assertNotNull(found);
assertEquals(mainCourse.getName(), found.getName());
assertEquals(mainCourse.getDescription(), found.getDescription());
}
}