{
-
- @Override
- public LocalTime parse(String text, Locale locale) {
- return LocalTime.parse(text);
- }
-
- @Override
- public String print(LocalTime lt, Locale locale) {
- return lt.format(DateTimeFormatter.ISO_LOCAL_TIME);
- }
- }
-}
diff --git a/src/main/java/ru/javawebinar/topjava/web/json/JacksonObjectMapper.java b/src/main/java/ru/javawebinar/topjava/web/json/JacksonObjectMapper.java
deleted file mode 100644
index 8237df93b..000000000
--- a/src/main/java/ru/javawebinar/topjava/web/json/JacksonObjectMapper.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package ru.javawebinar.topjava.web.json;
-
-import com.fasterxml.jackson.annotation.JsonAutoDetect;
-import com.fasterxml.jackson.annotation.JsonInclude;
-import com.fasterxml.jackson.annotation.PropertyAccessor;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.SerializationFeature;
-import com.fasterxml.jackson.datatype.hibernate5.Hibernate5Module;
-import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
-
-/**
- *
- * Handling Hibernate lazy-loading
- *
- * @link https://github.com/FasterXML/jackson
- * @link https://github.com/FasterXML/jackson-datatype-hibernate
- * @link https://github.com/FasterXML/jackson-docs/wiki/JacksonHowToCustomSerializers
- */
-public class JacksonObjectMapper extends ObjectMapper {
-
- private static final ObjectMapper MAPPER = new JacksonObjectMapper();
-
- private JacksonObjectMapper() {
- registerModule(new Hibernate5Module());
-
- registerModule(new JavaTimeModule());
- configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
-
- setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.NONE);
- setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY);
- setSerializationInclusion(JsonInclude.Include.NON_NULL);
- }
-
- public static ObjectMapper getMapper() {
- return MAPPER;
- }
-}
\ No newline at end of file
diff --git a/src/main/java/ru/javawebinar/topjava/web/json/JsonUtil.java b/src/main/java/ru/javawebinar/topjava/web/json/JsonUtil.java
deleted file mode 100644
index fda04590d..000000000
--- a/src/main/java/ru/javawebinar/topjava/web/json/JsonUtil.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package ru.javawebinar.topjava.web.json;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.ObjectReader;
-
-import java.io.IOException;
-import java.util.List;
-
-import static ru.javawebinar.topjava.web.json.JacksonObjectMapper.getMapper;
-
-public class JsonUtil {
-
- public static List readValues(String json, Class clazz) {
- ObjectReader reader = getMapper().readerFor(clazz);
- try {
- return reader.readValues(json).readAll();
- } catch (IOException e) {
- throw new IllegalArgumentException("Invalid read array from JSON:\n'" + json + "'", e);
- }
- }
-
- public static T readValue(String json, Class clazz) {
- try {
- return getMapper().readValue(json, clazz);
- } catch (IOException e) {
- throw new IllegalArgumentException("Invalid read from JSON:\n'" + json + "'", e);
- }
- }
-
- public static String writeValue(T obj) {
- try {
- return getMapper().writeValueAsString(obj);
- } catch (JsonProcessingException e) {
- throw new IllegalStateException("Invalid write to JSON:\n'" + obj + "'", e);
- }
- }
-}
\ No newline at end of file
diff --git a/src/main/java/ru/javawebinar/topjava/web/meal/AbstractMealController.java b/src/main/java/ru/javawebinar/topjava/web/meal/AbstractMealController.java
deleted file mode 100644
index 1931f998f..000000000
--- a/src/main/java/ru/javawebinar/topjava/web/meal/AbstractMealController.java
+++ /dev/null
@@ -1,72 +0,0 @@
-package ru.javawebinar.topjava.web.meal;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.lang.Nullable;
-import ru.javawebinar.topjava.model.Meal;
-import ru.javawebinar.topjava.service.MealService;
-import ru.javawebinar.topjava.to.MealTo;
-import ru.javawebinar.topjava.util.MealsUtil;
-import ru.javawebinar.topjava.web.SecurityUtil;
-
-import java.time.LocalDate;
-import java.time.LocalTime;
-import java.util.List;
-
-import static ru.javawebinar.topjava.util.ValidationUtil.assureIdConsistent;
-import static ru.javawebinar.topjava.util.ValidationUtil.checkIsNew;
-
-public abstract class AbstractMealController {
- private final Logger log = LoggerFactory.getLogger(getClass());
-
- @Autowired
- private MealService service;
-
- public Meal get(int id) {
- int userId = SecurityUtil.authUserId();
- log.info("get meal {} for user {}", id, userId);
- return service.get(id, userId);
- }
-
- public void delete(int id) {
- int userId = SecurityUtil.authUserId();
- log.info("delete meal {} for user {}", id, userId);
- service.delete(id, userId);
- }
-
- public List getAll() {
- int userId = SecurityUtil.authUserId();
- log.info("getAll for user {}", userId);
- return MealsUtil.getTos(service.getAll(userId), SecurityUtil.authUserCaloriesPerDay());
- }
-
- public Meal create(Meal meal) {
- int userId = SecurityUtil.authUserId();
- log.info("create {} for user {}", meal, userId);
- checkIsNew(meal);
- return service.create(meal, userId);
- }
-
- public void update(Meal meal, int id) {
- int userId = SecurityUtil.authUserId();
- log.info("update {} for user {}", meal, userId);
- assureIdConsistent(meal, id);
- service.update(meal, userId);
- }
-
- /**
- * Filter separately
- * - by date
- * - by time for every date
- *
- */
- public List getBetween(@Nullable LocalDate startDate, @Nullable LocalTime startTime,
- @Nullable LocalDate endDate, @Nullable LocalTime endTime) {
- int userId = SecurityUtil.authUserId();
- log.info("getBetween dates({} - {}) time({} - {}) for user {}", startDate, endDate, startTime, endTime, userId);
-
- List mealsDateFiltered = service.getBetweenInclusive(startDate, endDate, userId);
- return MealsUtil.getFilteredTos(mealsDateFiltered, SecurityUtil.authUserCaloriesPerDay(), startTime, endTime);
- }
-}
\ No newline at end of file
diff --git a/src/main/java/ru/javawebinar/topjava/web/meal/JspMealController.java b/src/main/java/ru/javawebinar/topjava/web/meal/JspMealController.java
deleted file mode 100644
index 7e800f683..000000000
--- a/src/main/java/ru/javawebinar/topjava/web/meal/JspMealController.java
+++ /dev/null
@@ -1,70 +0,0 @@
-package ru.javawebinar.topjava.web.meal;
-
-import org.springframework.stereotype.Controller;
-import org.springframework.ui.Model;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import ru.javawebinar.topjava.model.Meal;
-
-import javax.servlet.http.HttpServletRequest;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
-import java.time.LocalTime;
-import java.time.temporal.ChronoUnit;
-import java.util.Objects;
-
-import static ru.javawebinar.topjava.util.DateTimeUtil.parseLocalDate;
-import static ru.javawebinar.topjava.util.DateTimeUtil.parseLocalTime;
-
-@Controller
-@RequestMapping("/meals")
-public class JspMealController extends AbstractMealController {
-
- @GetMapping("/delete")
- public String delete(HttpServletRequest request) {
- super.delete(getId(request));
- return "redirect:/meals";
- }
-
- @GetMapping("/update")
- public String update(HttpServletRequest request, Model model) {
- model.addAttribute("meal", super.get(getId(request)));
- return "mealForm";
- }
-
- @GetMapping("/create")
- public String create(Model model) {
- model.addAttribute("meal", new Meal(LocalDateTime.now().truncatedTo(ChronoUnit.MINUTES), "", 1000));
- return "mealForm";
- }
-
- @PostMapping
- public String updateOrCreate(HttpServletRequest request) {
- Meal meal = new Meal(LocalDateTime.parse(request.getParameter("dateTime")),
- request.getParameter("description"),
- Integer.parseInt(request.getParameter("calories")));
-
- if (request.getParameter("id").isEmpty()) {
- super.create(meal);
- } else {
- super.update(meal, getId(request));
- }
- return "redirect:/meals";
- }
-
- @GetMapping("/filter")
- public String getBetween(HttpServletRequest request, Model model) {
- LocalDate startDate = parseLocalDate(request.getParameter("startDate"));
- LocalDate endDate = parseLocalDate(request.getParameter("endDate"));
- LocalTime startTime = parseLocalTime(request.getParameter("startTime"));
- LocalTime endTime = parseLocalTime(request.getParameter("endTime"));
- model.addAttribute("meals", super.getBetween(startDate, startTime, endDate, endTime));
- return "meals";
- }
-
- private int getId(HttpServletRequest request) {
- String paramId = Objects.requireNonNull(request.getParameter("id"));
- return Integer.parseInt(paramId);
- }
-}
diff --git a/src/main/java/ru/javawebinar/topjava/web/meal/MealRestController.java b/src/main/java/ru/javawebinar/topjava/web/meal/MealRestController.java
index 54d827d28..ab4e8ea8b 100644
--- a/src/main/java/ru/javawebinar/topjava/web/meal/MealRestController.java
+++ b/src/main/java/ru/javawebinar/topjava/web/meal/MealRestController.java
@@ -1,68 +1,8 @@
package ru.javawebinar.topjava.web.meal;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.MediaType;
-import org.springframework.http.ResponseEntity;
-import org.springframework.lang.Nullable;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.servlet.support.ServletUriComponentsBuilder;
-import ru.javawebinar.topjava.model.Meal;
-import ru.javawebinar.topjava.to.MealTo;
+import ru.javawebinar.topjava.service.MealService;
-import java.net.URI;
-import java.time.LocalDate;
-import java.time.LocalTime;
-import java.util.List;
+public class MealRestController {
+ private MealService service;
-@RestController
-@RequestMapping(value = MealRestController.REST_URL, produces = MediaType.APPLICATION_JSON_VALUE)
-public class MealRestController extends AbstractMealController {
- static final String REST_URL = "/rest/profile/meals";
-
- @Override
- @GetMapping("/{id}")
- public Meal get(@PathVariable int id) {
- return super.get(id);
- }
-
- @Override
- @DeleteMapping("/{id}")
- @ResponseStatus(HttpStatus.NO_CONTENT)
- public void delete(@PathVariable int id) {
- super.delete(id);
- }
-
- @Override
- @GetMapping
- public List getAll() {
- return super.getAll();
- }
-
- @Override
- @PutMapping(value = "/{id}", consumes = MediaType.APPLICATION_JSON_VALUE)
- @ResponseStatus(HttpStatus.NO_CONTENT)
- public void update(@RequestBody Meal meal, @PathVariable int id) {
- super.update(meal, id);
- }
-
- @PostMapping(consumes = MediaType.APPLICATION_JSON_VALUE)
- public ResponseEntity createWithLocation(@RequestBody Meal meal) {
- Meal created = super.create(meal);
-
- URI uriOfNewResource = ServletUriComponentsBuilder.fromCurrentContextPath()
- .path(REST_URL + "/{id}")
- .buildAndExpand(created.getId()).toUri();
-
- return ResponseEntity.created(uriOfNewResource).body(created);
- }
-
- @Override
- @GetMapping("/filter")
- public List getBetween(
- @RequestParam @Nullable LocalDate startDate,
- @RequestParam @Nullable LocalTime startTime,
- @RequestParam @Nullable LocalDate endDate,
- @RequestParam @Nullable LocalTime endTime) {
- return super.getBetween(startDate, startTime, endDate, endTime);
- }
-}
+}
\ No newline at end of file
diff --git a/src/main/java/ru/javawebinar/topjava/web/user/AbstractUserController.java b/src/main/java/ru/javawebinar/topjava/web/user/AbstractUserController.java
index b12fb49e6..0000f1c1e 100644
--- a/src/main/java/ru/javawebinar/topjava/web/user/AbstractUserController.java
+++ b/src/main/java/ru/javawebinar/topjava/web/user/AbstractUserController.java
@@ -9,7 +9,7 @@
import java.util.List;
import static ru.javawebinar.topjava.util.ValidationUtil.assureIdConsistent;
-import static ru.javawebinar.topjava.util.ValidationUtil.checkIsNew;
+import static ru.javawebinar.topjava.util.ValidationUtil.checkNew;
public abstract class AbstractUserController {
protected final Logger log = LoggerFactory.getLogger(getClass());
@@ -29,7 +29,7 @@ public User get(int id) {
public User create(User user) {
log.info("create {}", user);
- checkIsNew(user);
+ checkNew(user);
return service.create(user);
}
@@ -48,9 +48,4 @@ public User getByMail(String email) {
log.info("getByEmail {}", email);
return service.getByEmail(email);
}
-
- public User getWithMeals(int id) {
- log.info("getWithMeals {}", id);
- return service.getWithMeals(id);
- }
}
\ No newline at end of file
diff --git a/src/main/java/ru/javawebinar/topjava/web/user/AdminRestController.java b/src/main/java/ru/javawebinar/topjava/web/user/AdminRestController.java
index 66a245275..b37a8ed6c 100644
--- a/src/main/java/ru/javawebinar/topjava/web/user/AdminRestController.java
+++ b/src/main/java/ru/javawebinar/topjava/web/user/AdminRestController.java
@@ -1,64 +1,40 @@
package ru.javawebinar.topjava.web.user;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.MediaType;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.web.servlet.support.ServletUriComponentsBuilder;
+import org.springframework.stereotype.Controller;
import ru.javawebinar.topjava.model.User;
-import java.net.URI;
import java.util.List;
-@RestController
-@RequestMapping(value = AdminRestController.REST_URL, produces = MediaType.APPLICATION_JSON_VALUE)
+@Controller
public class AdminRestController extends AbstractUserController {
- static final String REST_URL = "/rest/admin/users";
-
@Override
- @GetMapping
public List getAll() {
return super.getAll();
}
@Override
- @GetMapping("/{id}")
- public User get(@PathVariable int id) {
+ public User get(int id) {
return super.get(id);
}
- @PostMapping(consumes = MediaType.APPLICATION_JSON_VALUE)
- public ResponseEntity createWithLocation(@RequestBody User user) {
- User created = super.create(user);
- URI uriOfNewResource = ServletUriComponentsBuilder.fromCurrentContextPath()
- .path(REST_URL + "/{id}")
- .buildAndExpand(created.getId()).toUri();
- return ResponseEntity.created(uriOfNewResource).body(created);
+ @Override
+ public User create(User user) {
+ return super.create(user);
}
@Override
- @DeleteMapping("/{id}")
- @ResponseStatus(HttpStatus.NO_CONTENT)
- public void delete(@PathVariable int id) {
+ public void delete(int id) {
super.delete(id);
}
@Override
- @PutMapping(value = "/{id}", consumes = MediaType.APPLICATION_JSON_VALUE)
- @ResponseStatus(HttpStatus.NO_CONTENT)
- public void update(@RequestBody User user, @PathVariable int id) {
+ public void update(User user, int id) {
super.update(user, id);
}
@Override
- @GetMapping("/by-email")
- public User getByMail(@RequestParam String email) {
+ public User getByMail(String email) {
return super.getByMail(email);
}
-
- @GetMapping("/{id}/with-meals")
- public User getWithMeals(@PathVariable int id) {
- return super.getWithMeals(id);
- }
}
\ No newline at end of file
diff --git a/src/main/java/ru/javawebinar/topjava/web/user/AdminUIController.java b/src/main/java/ru/javawebinar/topjava/web/user/AdminUIController.java
deleted file mode 100644
index 887cd4717..000000000
--- a/src/main/java/ru/javawebinar/topjava/web/user/AdminUIController.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package ru.javawebinar.topjava.web.user;
-
-import org.springframework.http.HttpStatus;
-import org.springframework.http.MediaType;
-import org.springframework.web.bind.annotation.*;
-import ru.javawebinar.topjava.model.Role;
-import ru.javawebinar.topjava.model.User;
-
-import java.util.List;
-
-@RestController
-@RequestMapping(value = "/admin/users", produces = MediaType.APPLICATION_JSON_VALUE)
-public class AdminUIController extends AbstractUserController {
-
- @Override
- @GetMapping
- public List getAll() {
- return super.getAll();
- }
-
- @Override
- @DeleteMapping("/{id}")
- @ResponseStatus(HttpStatus.NO_CONTENT)
- public void delete(@PathVariable int id) {
- super.delete(id);
- }
-
- @PostMapping
- @ResponseStatus(HttpStatus.NO_CONTENT)
- public void create(@RequestParam String name,
- @RequestParam String email,
- @RequestParam String password) {
- super.create(new User(null, name, email, password, Role.USER));
- }
-}
diff --git a/src/main/java/ru/javawebinar/topjava/web/user/ProfileRestController.java b/src/main/java/ru/javawebinar/topjava/web/user/ProfileRestController.java
index c65926680..7d3702c31 100644
--- a/src/main/java/ru/javawebinar/topjava/web/user/ProfileRestController.java
+++ b/src/main/java/ru/javawebinar/topjava/web/user/ProfileRestController.java
@@ -1,41 +1,22 @@
package ru.javawebinar.topjava.web.user;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.MediaType;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.stereotype.Controller;
import ru.javawebinar.topjava.model.User;
import static ru.javawebinar.topjava.web.SecurityUtil.authUserId;
-@RestController
-@RequestMapping(value = ProfileRestController.REST_URL, produces = MediaType.APPLICATION_JSON_VALUE)
+@Controller
public class ProfileRestController extends AbstractUserController {
- static final String REST_URL = "/rest/profile";
- @GetMapping
public User get() {
return super.get(authUserId());
}
- @DeleteMapping
- @ResponseStatus(HttpStatus.NO_CONTENT)
public void delete() {
super.delete(authUserId());
}
- @PutMapping(consumes = MediaType.APPLICATION_JSON_VALUE)
- @ResponseStatus(HttpStatus.NO_CONTENT)
- public void update(@RequestBody User user) {
+ public void update(User user) {
super.update(user, authUserId());
}
-
- @GetMapping("/text")
- public String testUTF() {
- return "Русский текст";
- }
-
- @GetMapping("/with-meals")
- public User getWithMeals() {
- return super.getWithMeals(authUserId());
- }
}
\ No newline at end of file
diff --git a/src/main/resources/cache/ehcache.xml b/src/main/resources/cache/ehcache.xml
deleted file mode 100644
index 05589f71f..000000000
--- a/src/main/resources/cache/ehcache.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-
-
-
-
-
-
-
-
-
- 5
-
- 5000
-
-
-
-
-
-
- 1
-
-
-
-
diff --git a/src/main/resources/db/hsqldb.properties b/src/main/resources/db/hsqldb.properties
deleted file mode 100644
index 17c03ef4e..000000000
--- a/src/main/resources/db/hsqldb.properties
+++ /dev/null
@@ -1,11 +0,0 @@
-#database.url=jdbc:hsqldb:file:D:/temp/topjava
-
-database.url=jdbc:hsqldb:mem:topjava
-database.username=sa
-database.password=
-
-database.init=true
-jdbc.initLocation=classpath:db/initDB_hsql.sql
-jpa.showSql=true
-hibernate.format_sql=true
-hibernate.use_sql_comments=true
\ No newline at end of file
diff --git a/src/main/resources/db/initDB.sql b/src/main/resources/db/initDB.sql
deleted file mode 100644
index 4bf3d8446..000000000
--- a/src/main/resources/db/initDB.sql
+++ /dev/null
@@ -1,37 +0,0 @@
-DROP TABLE IF EXISTS user_role;
-DROP TABLE IF EXISTS meal;
-DROP TABLE IF EXISTS users;
-DROP SEQUENCE IF EXISTS global_seq;
-
-CREATE SEQUENCE global_seq START WITH 100000;
-
-CREATE TABLE users
-(
- id INTEGER PRIMARY KEY DEFAULT nextval('global_seq'),
- name VARCHAR NOT NULL,
- email VARCHAR NOT NULL,
- password VARCHAR NOT NULL,
- registered TIMESTAMP DEFAULT now() NOT NULL,
- enabled BOOL DEFAULT TRUE NOT NULL,
- calories_per_day INTEGER DEFAULT 2000 NOT NULL
-);
-CREATE UNIQUE INDEX users_unique_email_idx ON users (email);
-
-CREATE TABLE user_role
-(
- user_id INTEGER NOT NULL,
- role VARCHAR NOT NULL,
- CONSTRAINT user_roles_idx UNIQUE (user_id, role),
- FOREIGN KEY (user_id) REFERENCES users (id) ON DELETE CASCADE
-);
-
-CREATE TABLE meal
-(
- id INTEGER PRIMARY KEY DEFAULT nextval('global_seq'),
- user_id INTEGER NOT NULL,
- date_time TIMESTAMP NOT NULL,
- description TEXT NOT NULL,
- calories INT NOT NULL,
- FOREIGN KEY (user_id) REFERENCES users (id) ON DELETE CASCADE
-);
-CREATE UNIQUE INDEX meal_unique_user_datetime_idx ON meal (user_id, date_time);
\ No newline at end of file
diff --git a/src/main/resources/db/initDB_hsql.sql b/src/main/resources/db/initDB_hsql.sql
deleted file mode 100644
index 9e0e195e6..000000000
--- a/src/main/resources/db/initDB_hsql.sql
+++ /dev/null
@@ -1,39 +0,0 @@
-DROP TABLE user_role IF EXISTS;
-DROP TABLE meal IF EXISTS;
-DROP TABLE users IF EXISTS;
-DROP SEQUENCE global_seq IF EXISTS;
-
-CREATE SEQUENCE GLOBAL_SEQ AS INTEGER START WITH 100000;
-
-CREATE TABLE users
-(
- id INTEGER GENERATED BY DEFAULT AS SEQUENCE GLOBAL_SEQ PRIMARY KEY,
- name VARCHAR(255) NOT NULL,
- email VARCHAR(255) NOT NULL,
- password VARCHAR(255) NOT NULL,
- registered TIMESTAMP DEFAULT now() NOT NULL,
- enabled BOOLEAN DEFAULT TRUE NOT NULL,
- calories_per_day INTEGER DEFAULT 2000 NOT NULL
-);
-CREATE UNIQUE INDEX users_unique_email_idx
- ON USERS (email);
-
-CREATE TABLE user_role
-(
- user_id INTEGER NOT NULL,
- role VARCHAR(255) NOT NULL,
- CONSTRAINT user_roles_idx UNIQUE (user_id, role),
- FOREIGN KEY (user_id) REFERENCES USERS (id) ON DELETE CASCADE
-);
-
-CREATE TABLE meal
-(
- id INTEGER GENERATED BY DEFAULT AS SEQUENCE GLOBAL_SEQ PRIMARY KEY,
- date_time TIMESTAMP NOT NULL,
- description VARCHAR(255) NOT NULL,
- calories INT NOT NULL,
- user_id INTEGER NOT NULL,
- FOREIGN KEY (user_id) REFERENCES USERS (id) ON DELETE CASCADE
-);
-CREATE UNIQUE INDEX meal_unique_user_datetime_idx
- ON meal (user_id, date_time)
\ No newline at end of file
diff --git a/src/main/resources/db/populateDB.sql b/src/main/resources/db/populateDB.sql
deleted file mode 100644
index 9e9bd828b..000000000
--- a/src/main/resources/db/populateDB.sql
+++ /dev/null
@@ -1,25 +0,0 @@
-DELETE FROM user_role;
-DELETE FROM meal;
-DELETE FROM users;
-ALTER SEQUENCE global_seq RESTART WITH 100000;
-
-INSERT INTO users (name, email, password)
-VALUES ('User', 'user@yandex.ru', 'password'),
- ('Admin', 'admin@gmail.com', 'admin'),
- ('Guest', 'guest@gmail.com', 'guest');
-
-INSERT INTO user_role (role, user_id)
-VALUES ('USER', 100000),
- ('ADMIN', 100001),
- ('USER', 100001);
-
-INSERT INTO meal (date_time, description, calories, user_id)
-VALUES ('2020-01-30 10:00:00', 'Завтрак', 500, 100000),
- ('2020-01-30 13:00:00', 'Обед', 1000, 100000),
- ('2020-01-30 20:00:00', 'Ужин', 500, 100000),
- ('2020-01-31 0:00:00', 'Еда на граничное значение', 100, 100000),
- ('2020-01-31 10:00:00', 'Завтрак', 500, 100000),
- ('2020-01-31 13:00:00', 'Обед', 1000, 100000),
- ('2020-01-31 20:00:00', 'Ужин', 510, 100000),
- ('2020-01-31 14:00:00', 'Админ ланч', 510, 100001),
- ('2020-01-31 21:00:00', 'Админ ужин', 1500, 100001);
diff --git a/src/main/resources/db/postgres.properties b/src/main/resources/db/postgres.properties
deleted file mode 100644
index c56854a9b..000000000
--- a/src/main/resources/db/postgres.properties
+++ /dev/null
@@ -1,10 +0,0 @@
-database.url=jdbc:postgresql://localhost:5432/topjava
-database.username=user
-database.password=password
-
-database.init=true
-jdbc.initLocation=classpath:db/initDB.sql
-jpa.showSql=true
-hibernate.format_sql=true
-#https://hibernate.atlassian.net/browse/HHH-13280
-hibernate.use_sql_comments=false
\ No newline at end of file
diff --git a/src/main/resources/db/tomcat.properties b/src/main/resources/db/tomcat.properties
deleted file mode 100644
index e11f0725f..000000000
--- a/src/main/resources/db/tomcat.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-database.init=false
-jdbc.initLocation=classpath:db/initDB.sql
-jpa.showSql=true
-hibernate.format_sql=true
-hibernate.use_sql_comments=true
\ No newline at end of file
diff --git a/src/main/resources/logback.xml b/src/main/resources/logback.xml
index e5ed3ccde..bdf004d03 100644
--- a/src/main/resources/logback.xml
+++ b/src/main/resources/logback.xml
@@ -9,21 +9,18 @@
UTF-8
- %date %-5level %logger{50}.%M:%L - %msg%n
+ %date %-5level %logger{0} [%file:%line] %msg%n
UTF-8
- %d{HH:mm:ss.SSS} %highlight(%-5level) %cyan(%class{50}.%M:%L) - %msg%n
+ %-5level %logger{0} [%file:%line] %msg%n
-
-
-
diff --git a/src/main/resources/spring/spring-app.xml b/src/main/resources/spring/spring-app.xml
index 3a75ebb82..cac42ba13 100644
--- a/src/main/resources/spring/spring-app.xml
+++ b/src/main/resources/spring/spring-app.xml
@@ -9,8 +9,10 @@
-->
-
-
+
+
+
+
\ No newline at end of file
diff --git a/src/main/resources/spring/spring-cache.xml b/src/main/resources/spring/spring-cache.xml
deleted file mode 100644
index 73325fee0..000000000
--- a/src/main/resources/spring/spring-cache.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/resources/spring/spring-db.xml b/src/main/resources/spring/spring-db.xml
deleted file mode 100644
index 48afdb11a..000000000
--- a/src/main/resources/spring/spring-db.xml
+++ /dev/null
@@ -1,124 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/resources/spring/spring-mvc.xml b/src/main/resources/spring/spring-mvc.xml
deleted file mode 100644
index 1201341ab..000000000
--- a/src/main/resources/spring/spring-mvc.xml
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
- text/plain;charset=UTF-8
- text/html;charset=UTF-8
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/resources/spring/spring-security.xml b/src/main/resources/spring/spring-security.xml
deleted file mode 100644
index 2b83a0d71..000000000
--- a/src/main/resources/spring/spring-security.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/resources/tomcat/context.xml b/src/main/resources/tomcat/context.xml
deleted file mode 100644
index 9311d5904..000000000
--- a/src/main/resources/tomcat/context.xml
+++ /dev/null
@@ -1,57 +0,0 @@
-
-
-
-
-
-
-
- WEB-INF/web.xml
- ${catalina.base}/conf/web.xml
-
-
-
-
-
-
-
-
-
diff --git a/src/main/webapp/WEB-INF/jsp/fragments/bodyHeader.jsp b/src/main/webapp/WEB-INF/jsp/fragments/bodyHeader.jsp
deleted file mode 100644
index bba77445f..000000000
--- a/src/main/webapp/WEB-INF/jsp/fragments/bodyHeader.jsp
+++ /dev/null
@@ -1,14 +0,0 @@
-<%@page contentType="text/html" pageEncoding="UTF-8" %>
-<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
-
-
diff --git a/src/main/webapp/WEB-INF/jsp/fragments/footer.jsp b/src/main/webapp/WEB-INF/jsp/fragments/footer.jsp
deleted file mode 100644
index cf1331fd5..000000000
--- a/src/main/webapp/WEB-INF/jsp/fragments/footer.jsp
+++ /dev/null
@@ -1,8 +0,0 @@
-<%@page contentType="text/html" pageEncoding="UTF-8" %>
-<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
-<%--https://getbootstrap.com/docs/4.0/examples/sticky-footer/--%>
-
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/jsp/fragments/headTag.jsp b/src/main/webapp/WEB-INF/jsp/fragments/headTag.jsp
deleted file mode 100644
index 86e49b422..000000000
--- a/src/main/webapp/WEB-INF/jsp/fragments/headTag.jsp
+++ /dev/null
@@ -1,23 +0,0 @@
-<%@page contentType="text/html" pageEncoding="UTF-8" %>
-<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
-<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
-
-
-
-
-
-
-
-
-
-
-
-
-
- <%--http://stackoverflow.com/a/24070373/548473--%>
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/jsp/index.jsp b/src/main/webapp/WEB-INF/jsp/index.jsp
deleted file mode 100644
index cc610bd72..000000000
--- a/src/main/webapp/WEB-INF/jsp/index.jsp
+++ /dev/null
@@ -1,23 +0,0 @@
-<%@ page contentType="text/html;charset=UTF-8" %>
-<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
-<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/jsp/meals.jsp b/src/main/webapp/WEB-INF/jsp/meals.jsp
deleted file mode 100644
index b42230b90..000000000
--- a/src/main/webapp/WEB-INF/jsp/meals.jsp
+++ /dev/null
@@ -1,64 +0,0 @@
-<%@ page contentType="text/html;charset=UTF-8" %>
-<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
-<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
-<%@ taglib prefix="fn" uri="http://topjava.javawebinar.ru/functions" %>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- |
- |
- |
- |
- |
-
-
-
-
-
- |
- <%--${meal.dateTime.toLocalDate()} ${meal.dateTime.toLocalTime()}--%>
- <%--<%=TimeUtil.toString(meal.getDateTime())%>--%>
- <%--${fn:replace(meal.dateTime, 'T', ' ')}--%>
- ${fn:formatDateTime(meal.dateTime)}
- |
- ${meal.description} |
- ${meal.calories} |
- |
- |
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/jsp/users.jsp b/src/main/webapp/WEB-INF/jsp/users.jsp
deleted file mode 100644
index 35cf30926..000000000
--- a/src/main/webapp/WEB-INF/jsp/users.jsp
+++ /dev/null
@@ -1,93 +0,0 @@
-<%@ page contentType="text/html;charset=UTF-8" %>
-<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
-<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
-<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml
index 31dcf2676..bd98d3bf3 100644
--- a/src/main/webapp/WEB-INF/web.xml
+++ b/src/main/webapp/WEB-INF/web.xml
@@ -4,63 +4,26 @@
http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
- TopJava
+ Topjava
-
- spring.profiles.default
- postgres,datajpa
-
-
-
- contextConfigLocation
-
- classpath:spring/spring-app.xml
- classpath:spring/spring-db.xml
-
-
-
-
-
- org.springframework.web.context.ContextLoaderListener
-
- mvc-dispatcher
- org.springframework.web.servlet.DispatcherServlet
-
- contextConfigLocation
- classpath:spring/spring-mvc.xml
-
- 1
+ userServlet
+ ru.javawebinar.topjava.web.UserServlet
+ 0
- mvc-dispatcher
- /
+ userServlet
+ /users
-
-
- springSecurityFilterChain
- org.springframework.web.filter.DelegatingFilterProxy
-
-
- springSecurityFilterChain
- /*
-
+
+ mealServlet
+ ru.javawebinar.topjava.web.MealServlet
+ 0
+
+
+ mealServlet
+ /meals
+
-
- encodingFilter
- org.springframework.web.filter.CharacterEncodingFilter
-
- encoding
- UTF-8
-
-
- forceEncoding
- true
-
-
-
- encodingFilter
- /*
-
diff --git a/src/main/webapp/index.html b/src/main/webapp/index.html
new file mode 100644
index 000000000..714683bd3
--- /dev/null
+++ b/src/main/webapp/index.html
@@ -0,0 +1,14 @@
+
+
+
+ Java Enterprise (Topjava)
+
+
+
+
+
+
+
diff --git a/src/main/webapp/WEB-INF/jsp/mealForm.jsp b/src/main/webapp/mealForm.jsp
similarity index 50%
rename from src/main/webapp/WEB-INF/jsp/mealForm.jsp
rename to src/main/webapp/mealForm.jsp
index af6d7880e..28f140b65 100644
--- a/src/main/webapp/WEB-INF/jsp/mealForm.jsp
+++ b/src/main/webapp/mealForm.jsp
@@ -1,35 +1,51 @@
<%@ page contentType="text/html;charset=UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
-<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
-
-
-
+
+ Meal
+
+
+
-
-<%-- `meal.new` cause javax.el.ELException - bug tomcat --%>
-
+
+ ${param.action == 'create' ? 'Create meal' : 'Edit meal'}
+
-
diff --git a/src/main/webapp/meals.jsp b/src/main/webapp/meals.jsp
new file mode 100644
index 000000000..224d98761
--- /dev/null
+++ b/src/main/webapp/meals.jsp
@@ -0,0 +1,54 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
+<%@ taglib prefix="fn" uri="http://topjava.javawebinar.ru/functions" %>
+<%--<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>--%>
+
+
+ Meal list
+
+
+
+
+
+
+ Meals
+ Add Meal
+
+
+
+
+ | Date |
+ Description |
+ Calories |
+ |
+ |
+
+
+
+
+
+ |
+ <%--${meal.dateTime.toLocalDate()} ${meal.dateTime.toLocalTime()}--%>
+ <%--<%=TimeUtil.toString(meal.getDateTime())%>--%>
+ <%--${fn:replace(meal.dateTime, 'T', ' ')}--%>
+ ${fn:formatDateTime(meal.dateTime)}
+ |
+ ${meal.description} |
+ ${meal.calories} |
+ Update |
+ Delete |
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/webapp/resources/css/style.css b/src/main/webapp/resources/css/style.css
deleted file mode 100644
index 067c4cb1f..000000000
--- a/src/main/webapp/resources/css/style.css
+++ /dev/null
@@ -1,45 +0,0 @@
-dl {
- background: none repeat scroll 0 0 #FAFAFA;
- margin: 8px 0;
- padding: 0;
-}
-
-dt {
- display: inline-block;
- width: 170px;
-}
-
-dd {
- display: inline-block;
- margin-left: 8px;
- vertical-align: top;
-}
-
-tr[data-meal-excess="false"] {
- color: green;
-}
-
-tr[data-meal-excess="true"] {
- color: red;
-}
-
-.fa {
- cursor: pointer;
-}
-
-/*https://getbootstrap.com/docs/4.0/examples/sticky-footer/sticky-footer.css*/
-html {
- position: relative;
- min-height: 100%;
-}
-body {
- margin-bottom: 60px !important; /* Margin bottom by footer height */
-}
-.footer {
- position: absolute;
- bottom: 0;
- width: 100%;
- height: 60px; /* Set the fixed height of the footer here */
- line-height: 60px; /* Vertically center the text there */
- background-color: #f5f5f5;
-}
diff --git a/src/main/webapp/resources/images/icon-meal.png b/src/main/webapp/resources/images/icon-meal.png
deleted file mode 100644
index bb9dc2d73..000000000
Binary files a/src/main/webapp/resources/images/icon-meal.png and /dev/null differ
diff --git a/src/main/webapp/resources/js/topjava.common.js b/src/main/webapp/resources/js/topjava.common.js
deleted file mode 100644
index 687924a04..000000000
--- a/src/main/webapp/resources/js/topjava.common.js
+++ /dev/null
@@ -1,80 +0,0 @@
-let form;
-
-function makeEditable(datatableApi) {
- ctx.datatableApi = datatableApi;
- form = $('#detailsForm');
- $(".delete").click(function () {
- if (confirm('Are you sure?')) {
- deleteRow($(this).closest('tr').attr("id"));
- }
- });
-
- $(document).ajaxError(function (event, jqXHR, options, jsExc) {
- failNoty(jqXHR);
- });
-
- // solve problem with cache in IE: https://stackoverflow.com/a/4303862/548473
- $.ajaxSetup({cache: false});
-}
-
-function add() {
- form.find(":input").val("");
- $("#editRow").modal();
-}
-
-function deleteRow(id) {
- $.ajax({
- url: ctx.ajaxUrl + id,
- type: "DELETE"
- }).done(function () {
- updateTable();
- successNoty("Deleted");
- });
-}
-
-function updateTable() {
- $.get(ctx.ajaxUrl, function (data) {
- ctx.datatableApi.clear().rows.add(data).draw();
- });
-}
-
-function save() {
- $.ajax({
- type: "POST",
- url: ctx.ajaxUrl,
- data: form.serialize()
- }).done(function () {
- $("#editRow").modal("hide");
- updateTable();
- successNoty("Saved");
- });
-}
-
-let failedNote;
-
-function closeNoty() {
- if (failedNote) {
- failedNote.close();
- failedNote = undefined;
- }
-}
-
-function successNoty(text) {
- closeNoty();
- new Noty({
- text: " " + text,
- type: 'success',
- layout: "bottomRight",
- timeout: 1000
- }).show();
-}
-
-function failNoty(jqXHR) {
- closeNoty();
- failedNote = new Noty({
- text: " Error status: " + jqXHR.status,
- type: "error",
- layout: "bottomRight"
- });
- failedNote.show()
-}
\ No newline at end of file
diff --git a/src/main/webapp/resources/js/topjava.users.js b/src/main/webapp/resources/js/topjava.users.js
deleted file mode 100644
index 10a3d301c..000000000
--- a/src/main/webapp/resources/js/topjava.users.js
+++ /dev/null
@@ -1,47 +0,0 @@
-const userAjaxUrl = "admin/users/";
-
-// https://stackoverflow.com/a/5064235/548473
-const ctx = {
- ajaxUrl: userAjaxUrl
-};
-
-// $(document).ready(function () {
-$(function () {
- makeEditable(
- $("#datatable").DataTable({
- "paging": false,
- "info": true,
- "columns": [
- {
- "data": "name"
- },
- {
- "data": "email"
- },
- {
- "data": "roles"
- },
- {
- "data": "enabled"
- },
- {
- "data": "registered"
- },
- {
- "defaultContent": "Edit",
- "orderable": false
- },
- {
- "defaultContent": "Delete",
- "orderable": false
- }
- ],
- "order": [
- [
- 0,
- "asc"
- ]
- ]
- })
- );
-});
\ No newline at end of file
diff --git a/src/main/webapp/users.jsp b/src/main/webapp/users.jsp
new file mode 100644
index 000000000..650c8dda4
--- /dev/null
+++ b/src/main/webapp/users.jsp
@@ -0,0 +1,11 @@
+<%@ page contentType="text/html;charset=UTF-8" %>
+
+
+ Users
+
+
+
+
+Users
+
+
\ No newline at end of file
diff --git a/src/test/java/ru/javawebinar/topjava/ActiveDbProfileResolver.java b/src/test/java/ru/javawebinar/topjava/ActiveDbProfileResolver.java
deleted file mode 100644
index 43f143cc7..000000000
--- a/src/test/java/ru/javawebinar/topjava/ActiveDbProfileResolver.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package ru.javawebinar.topjava;
-
-import org.springframework.lang.NonNull;
-import org.springframework.test.context.support.DefaultActiveProfilesResolver;
-
-import java.util.Arrays;
-
-//http://stackoverflow.com/questions/23871255/spring-profiles-simple-example-of-activeprofilesresolver
-public class ActiveDbProfileResolver extends DefaultActiveProfilesResolver {
- @Override
- public @NonNull
- String[] resolve(@NonNull Class> aClass) {
- // https://stackoverflow.com/a/52438829/548473
- String[] activeProfiles = super.resolve(aClass);
- String[] activeProfilesWithDb = Arrays.copyOf(activeProfiles, activeProfiles.length + 1);
- activeProfilesWithDb[activeProfiles.length] = Profiles.getActiveDbProfile();
- return activeProfilesWithDb;
- }
-}
diff --git a/src/test/java/ru/javawebinar/topjava/MatcherFactory.java b/src/test/java/ru/javawebinar/topjava/MatcherFactory.java
deleted file mode 100644
index 15e01e155..000000000
--- a/src/test/java/ru/javawebinar/topjava/MatcherFactory.java
+++ /dev/null
@@ -1,83 +0,0 @@
-package ru.javawebinar.topjava;
-
-import org.springframework.test.web.servlet.MvcResult;
-import org.springframework.test.web.servlet.ResultActions;
-import org.springframework.test.web.servlet.ResultMatcher;
-import ru.javawebinar.topjava.web.json.JsonUtil;
-
-import java.io.UnsupportedEncodingException;
-import java.util.List;
-import java.util.function.BiConsumer;
-
-import static org.assertj.core.api.Assertions.assertThat;
-
-/**
- * Factory for creating test matchers.
- *
- * Comparing actual and expected objects via AssertJ
- * Support converting json MvcResult to objects for comparation.
- */
-public class MatcherFactory {
-
- public static Matcher usingAssertions(Class clazz, BiConsumer assertion, BiConsumer, Iterable> iterableAssertion) {
- return new Matcher<>(clazz, assertion, iterableAssertion);
- }
-
- public static Matcher usingEqualsComparator(Class clazz) {
- return usingAssertions(clazz,
- (a, e) -> assertThat(a).isEqualTo(e),
- (a, e) -> assertThat(a).isEqualTo(e));
- }
-
- public static Matcher usingIgnoringFieldsComparator(Class clazz, String... fieldsToIgnore) {
- return usingAssertions(clazz,
- (a, e) -> assertThat(a).usingRecursiveComparison().ignoringFields(fieldsToIgnore).isEqualTo(e),
- (a, e) -> assertThat(a).usingRecursiveFieldByFieldElementComparatorIgnoringFields(fieldsToIgnore).isEqualTo(e));
- }
-
- public static class Matcher {
- private final Class clazz;
- private final BiConsumer assertion;
- private final BiConsumer, Iterable> iterableAssertion;
-
- private Matcher(Class clazz, BiConsumer assertion, BiConsumer, Iterable> iterableAssertion) {
- this.clazz = clazz;
- this.assertion = assertion;
- this.iterableAssertion = iterableAssertion;
- }
-
- public void assertMatch(T actual, T expected) {
- assertion.accept(actual, expected);
- }
-
- @SafeVarargs
- public final void assertMatch(Iterable actual, T... expected) {
- assertMatch(actual, List.of(expected));
- }
-
- public void assertMatch(Iterable actual, Iterable expected) {
- iterableAssertion.accept(actual, expected);
- }
-
- public ResultMatcher contentJson(T expected) {
- return result -> assertMatch(JsonUtil.readValue(getContent(result), clazz), expected);
- }
-
- @SafeVarargs
- public final ResultMatcher contentJson(T... expected) {
- return contentJson(List.of(expected));
- }
-
- public ResultMatcher contentJson(Iterable expected) {
- return result -> assertMatch(JsonUtil.readValues(getContent(result), clazz), expected);
- }
-
- public T readFromJson(ResultActions action) throws UnsupportedEncodingException {
- return JsonUtil.readValue(getContent(action.andReturn()), clazz);
- }
-
- private static String getContent(MvcResult result) throws UnsupportedEncodingException {
- return result.getResponse().getContentAsString();
- }
- }
-}
diff --git a/src/test/java/ru/javawebinar/topjava/MealTestData.java b/src/test/java/ru/javawebinar/topjava/MealTestData.java
deleted file mode 100644
index 6ee8b66dd..000000000
--- a/src/test/java/ru/javawebinar/topjava/MealTestData.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package ru.javawebinar.topjava;
-
-import ru.javawebinar.topjava.model.Meal;
-import ru.javawebinar.topjava.to.MealTo;
-
-import java.time.Month;
-import java.time.temporal.ChronoUnit;
-import java.util.List;
-
-import static java.time.LocalDateTime.of;
-import static ru.javawebinar.topjava.model.AbstractBaseEntity.START_SEQ;
-
-public class MealTestData {
- public static final MatcherFactory.Matcher MEAL_MATCHER = MatcherFactory.usingIgnoringFieldsComparator(Meal.class, "user");
- public static MatcherFactory.Matcher TO_MATCHER = MatcherFactory.usingEqualsComparator(MealTo.class);
-
- public static final int NOT_FOUND = 10;
- public static final int MEAL1_ID = START_SEQ + 3;
- public static final int ADMIN_MEAL_ID = START_SEQ + 10;
-
- public static final Meal meal1 = new Meal(MEAL1_ID, of(2020, Month.JANUARY, 30, 10, 0), "Завтрак", 500);
- public static final Meal meal2 = new Meal(MEAL1_ID + 1, of(2020, Month.JANUARY, 30, 13, 0), "Обед", 1000);
- public static final Meal meal3 = new Meal(MEAL1_ID + 2, of(2020, Month.JANUARY, 30, 20, 0), "Ужин", 500);
- public static final Meal meal4 = new Meal(MEAL1_ID + 3, of(2020, Month.JANUARY, 31, 0, 0), "Еда на граничное значение", 100);
- public static final Meal meal5 = new Meal(MEAL1_ID + 4, of(2020, Month.JANUARY, 31, 10, 0), "Завтрак", 500);
- public static final Meal meal6 = new Meal(MEAL1_ID + 5, of(2020, Month.JANUARY, 31, 13, 0), "Обед", 1000);
- public static final Meal meal7 = new Meal(MEAL1_ID + 6, of(2020, Month.JANUARY, 31, 20, 0), "Ужин", 510);
- public static final Meal adminMeal1 = new Meal(ADMIN_MEAL_ID, of(2020, Month.JANUARY, 31, 14, 0), "Админ ланч", 510);
- public static final Meal adminMeal2 = new Meal(ADMIN_MEAL_ID + 1, of(2020, Month.JANUARY, 31, 21, 0), "Админ ужин", 1500);
-
- public static final List meals = List.of(meal7, meal6, meal5, meal4, meal3, meal2, meal1);
-
- public static Meal getNew() {
- return new Meal(null, of(2020, Month.FEBRUARY, 1, 18, 0), "Созданный ужин", 300);
- }
-
- public static Meal getUpdated() {
- return new Meal(MEAL1_ID, meal1.getDateTime().plus(2, ChronoUnit.MINUTES), "Обновленный завтрак", 200);
- }
-}
diff --git a/src/test/java/ru/javawebinar/topjava/TimingExtension.java b/src/test/java/ru/javawebinar/topjava/TimingExtension.java
deleted file mode 100644
index cee6ae92c..000000000
--- a/src/test/java/ru/javawebinar/topjava/TimingExtension.java
+++ /dev/null
@@ -1,36 +0,0 @@
-package ru.javawebinar.topjava;
-
-import org.junit.jupiter.api.extension.*;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.util.StopWatch;
-
-public class TimingExtension implements
- BeforeTestExecutionCallback, AfterTestExecutionCallback, BeforeAllCallback, AfterAllCallback {
-
- private static final Logger log = LoggerFactory.getLogger("result");
-
- private StopWatch stopWatch;
-
- @Override
- public void beforeAll(ExtensionContext extensionContext) {
- stopWatch = new StopWatch("Execution time of " + extensionContext.getRequiredTestClass().getSimpleName());
- }
-
- @Override
- public void beforeTestExecution(ExtensionContext extensionContext) {
- String testName = extensionContext.getDisplayName();
- log.info("\nStart " + testName);
- stopWatch.start(testName);
- }
-
- @Override
- public void afterTestExecution(ExtensionContext extensionContext) {
- stopWatch.stop();
- }
-
- @Override
- public void afterAll(ExtensionContext extensionContext) {
- log.info('\n' + stopWatch.prettyPrint() + '\n');
- }
-}
diff --git a/src/test/java/ru/javawebinar/topjava/UserTestData.java b/src/test/java/ru/javawebinar/topjava/UserTestData.java
deleted file mode 100644
index e271179f2..000000000
--- a/src/test/java/ru/javawebinar/topjava/UserTestData.java
+++ /dev/null
@@ -1,52 +0,0 @@
-package ru.javawebinar.topjava;
-
-import ru.javawebinar.topjava.model.Role;
-import ru.javawebinar.topjava.model.User;
-
-import java.util.Collections;
-import java.util.Date;
-import java.util.List;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static ru.javawebinar.topjava.MealTestData.*;
-import static ru.javawebinar.topjava.model.AbstractBaseEntity.START_SEQ;
-
-public class UserTestData {
- public static final MatcherFactory.Matcher USER_MATCHER = MatcherFactory.usingIgnoringFieldsComparator(User.class, "registered", "meals");
- public static MatcherFactory.Matcher USER_WITH_MEALS_MATCHER =
- MatcherFactory.usingAssertions(User.class,
-// No need use ignoringAllOverriddenEquals, see https://assertj.github.io/doc/#breaking-changes
- (a, e) -> assertThat(a).usingRecursiveComparison().ignoringFields("registered", "meals.user").isEqualTo(e),
- (a, e) -> {
- throw new UnsupportedOperationException();
- });
-
- public static final int USER_ID = START_SEQ;
- public static final int ADMIN_ID = START_SEQ + 1;
- public static final int GUEST_ID = START_SEQ + 2;
- public static final int NOT_FOUND = 10;
-
- public static final User user = new User(USER_ID, "User", "user@yandex.ru", "password", Role.USER);
- public static final User admin = new User(ADMIN_ID, "Admin", "admin@gmail.com", "admin", Role.ADMIN, Role.USER);
- public static final User guest = new User(GUEST_ID, "Guest", "guest@gmail.com", "guest");
-
- static {
- user.setMeals(meals);
- admin.setMeals(List.of(adminMeal2, adminMeal1));
- }
-
- public static User getNew() {
- return new User(null, "New", "new@gmail.com", "newPass", 1555, false, new Date(), Collections.singleton(Role.USER));
- }
-
- public static User getUpdated() {
- User updated = new User(user);
- updated.setEmail("update@gmail.com");
- updated.setName("UpdatedName");
- updated.setCaloriesPerDay(330);
- updated.setPassword("newPass");
- updated.setEnabled(false);
- updated.setRoles(Collections.singletonList(Role.ADMIN));
- return updated;
- }
-}
diff --git a/src/test/java/ru/javawebinar/topjava/repository/inmemory/InMemoryBaseRepository.java b/src/test/java/ru/javawebinar/topjava/repository/inmemory/InMemoryBaseRepository.java
deleted file mode 100644
index 03770da21..000000000
--- a/src/test/java/ru/javawebinar/topjava/repository/inmemory/InMemoryBaseRepository.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package ru.javawebinar.topjava.repository.inmemory;
-
-import ru.javawebinar.topjava.model.AbstractBaseEntity;
-
-import java.util.Collection;
-import java.util.Map;
-import java.util.Objects;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.atomic.AtomicInteger;
-
-import static ru.javawebinar.topjava.model.AbstractBaseEntity.START_SEQ;
-
-public class InMemoryBaseRepository {
-
- static final AtomicInteger counter = new AtomicInteger(START_SEQ);
-
- final Map map = new ConcurrentHashMap<>();
-
- public T save(T entity) {
- Objects.requireNonNull(entity, "Entity must not be null");
- if (entity.isNew()) {
- entity.setId(counter.incrementAndGet());
- map.put(entity.getId(), entity);
- return entity;
- }
- return map.computeIfPresent(entity.getId(), (id, oldT) -> entity);
- }
-
- public boolean delete(int id) {
- return map.remove(id) != null;
- }
-
- public T get(int id) {
- return map.get(id);
- }
-
- Collection getCollection() {
- return map.values();
- }
-
- void put(T entity) {
- Objects.requireNonNull(entity, "Entity must not be null");
- map.put(entity.id(), entity);
- }
-}
\ No newline at end of file
diff --git a/src/test/java/ru/javawebinar/topjava/repository/inmemory/InMemoryMealRepository.java b/src/test/java/ru/javawebinar/topjava/repository/inmemory/InMemoryMealRepository.java
deleted file mode 100644
index 5c65ced86..000000000
--- a/src/test/java/ru/javawebinar/topjava/repository/inmemory/InMemoryMealRepository.java
+++ /dev/null
@@ -1,80 +0,0 @@
-package ru.javawebinar.topjava.repository.inmemory;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.stereotype.Repository;
-import ru.javawebinar.topjava.MealTestData;
-import ru.javawebinar.topjava.UserTestData;
-import ru.javawebinar.topjava.model.Meal;
-import ru.javawebinar.topjava.repository.MealRepository;
-import ru.javawebinar.topjava.util.Util;
-
-import javax.annotation.PostConstruct;
-import javax.annotation.PreDestroy;
-import java.time.LocalDateTime;
-import java.util.*;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.function.Predicate;
-
-@Repository
-public class InMemoryMealRepository implements MealRepository {
- private static final Logger log = LoggerFactory.getLogger(InMemoryMealRepository.class);
-
- // Map userId -> mealRepository
- private final Map> usersMealsMap = new ConcurrentHashMap<>();
-
- {
- var userMeals = new InMemoryBaseRepository();
- MealTestData.meals.forEach(userMeals::put);
- usersMealsMap.put(UserTestData.USER_ID, userMeals);
- }
-
-
- @Override
- public Meal save(Meal meal, int userId) {
- Objects.requireNonNull(meal, "meal must not be null");
- var meals = usersMealsMap.computeIfAbsent(userId, uId -> new InMemoryBaseRepository<>());
- return meals.save(meal);
- }
-
- @PostConstruct
- public void postConstruct() {
- log.info("+++ PostConstruct");
- }
-
- @PreDestroy
- public void preDestroy() {
- log.info("+++ PreDestroy");
- }
-
- @Override
- public boolean delete(int id, int userId) {
- var meals = usersMealsMap.get(userId);
- return meals != null && meals.delete(id);
- }
-
- @Override
- public Meal get(int id, int userId) {
- var meals = usersMealsMap.get(userId);
- return meals == null ? null : meals.get(id);
- }
-
- @Override
- public List getBetweenHalfOpen(LocalDateTime startDateTime, LocalDateTime endDateTime, int userId) {
- return filterByPredicate(userId, meal -> Util.isBetweenHalfOpen(meal.getDateTime(), startDateTime, endDateTime));
- }
-
- @Override
- public List getAll(int userId) {
- return filterByPredicate(userId, meal -> true);
- }
-
- private List filterByPredicate(int userId, Predicate filter) {
- var meals = usersMealsMap.get(userId);
- return meals == null ? Collections.emptyList() :
- meals.getCollection().stream()
- .filter(filter)
- .sorted(Comparator.comparing(Meal::getDateTime).reversed())
- .toList();
- }
-}
\ No newline at end of file
diff --git a/src/test/java/ru/javawebinar/topjava/repository/inmemory/InMemoryUserRepository.java b/src/test/java/ru/javawebinar/topjava/repository/inmemory/InMemoryUserRepository.java
deleted file mode 100644
index f3585dfff..000000000
--- a/src/test/java/ru/javawebinar/topjava/repository/inmemory/InMemoryUserRepository.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package ru.javawebinar.topjava.repository.inmemory;
-
-import org.springframework.stereotype.Repository;
-import ru.javawebinar.topjava.model.User;
-import ru.javawebinar.topjava.repository.UserRepository;
-
-import java.util.Comparator;
-import java.util.List;
-import java.util.Objects;
-
-import static ru.javawebinar.topjava.UserTestData.*;
-
-
-@Repository
-public class InMemoryUserRepository extends InMemoryBaseRepository implements UserRepository {
-
- public void init() {
- map.clear();
- put(user);
- put(admin);
- put(guest);
- counter.getAndSet(GUEST_ID + 1);
- }
-
- @Override
- public List getAll() {
- return getCollection().stream()
- .sorted(Comparator.comparing(User::getName).thenComparing(User::getEmail))
- .toList();
- }
-
- @Override
- public User getByEmail(String email) {
- Objects.requireNonNull(email, "email must not be null");
- return getCollection().stream()
- .filter(u -> email.equals(u.getEmail()))
- .findFirst()
- .orElse(null);
- }
-}
\ No newline at end of file
diff --git a/src/test/java/ru/javawebinar/topjava/service/AbstractMealServiceTest.java b/src/test/java/ru/javawebinar/topjava/service/AbstractMealServiceTest.java
deleted file mode 100644
index 6b00e4481..000000000
--- a/src/test/java/ru/javawebinar/topjava/service/AbstractMealServiceTest.java
+++ /dev/null
@@ -1,112 +0,0 @@
-package ru.javawebinar.topjava.service;
-
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.Test;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.dao.DataAccessException;
-import ru.javawebinar.topjava.model.Meal;
-import ru.javawebinar.topjava.util.exception.NotFoundException;
-
-import javax.validation.ConstraintViolationException;
-import java.time.LocalDate;
-import java.time.Month;
-
-import static java.time.LocalDateTime.of;
-import static org.junit.jupiter.api.Assertions.assertThrows;
-import static ru.javawebinar.topjava.MealTestData.*;
-import static ru.javawebinar.topjava.UserTestData.ADMIN_ID;
-import static ru.javawebinar.topjava.UserTestData.USER_ID;
-
-public abstract class AbstractMealServiceTest extends AbstractServiceTest {
-
- @Autowired
- protected MealService service;
-
- @Test
- void delete() {
- service.delete(MEAL1_ID, USER_ID);
- assertThrows(NotFoundException.class, () -> service.get(MEAL1_ID, USER_ID));
- }
-
- @Test
- void deleteNotFound() {
- assertThrows(NotFoundException.class, () -> service.delete(NOT_FOUND, USER_ID));
- }
-
- @Test
- void deleteNotOwn() {
- assertThrows(NotFoundException.class, () -> service.delete(MEAL1_ID, ADMIN_ID));
- }
-
- @Test
- void create() {
- Meal created = service.create(getNew(), USER_ID);
- int newId = created.id();
- Meal newMeal = getNew();
- newMeal.setId(newId);
- MEAL_MATCHER.assertMatch(created, newMeal);
- MEAL_MATCHER.assertMatch(service.get(newId, USER_ID), newMeal);
- }
-
- @Test
- void duplicateDateTimeCreate() {
- assertThrows(DataAccessException.class, () ->
- service.create(new Meal(null, meal1.getDateTime(), "duplicate", 100), USER_ID));
- }
-
- @Test
- void get() {
- Meal actual = service.get(ADMIN_MEAL_ID, ADMIN_ID);
- MEAL_MATCHER.assertMatch(actual, adminMeal1);
- }
-
- @Test
- void getNotFound() {
- assertThrows(NotFoundException.class, () -> service.get(NOT_FOUND, USER_ID));
- }
-
- @Test
- void getNotOwn() {
- assertThrows(NotFoundException.class, () -> service.get(MEAL1_ID, ADMIN_ID));
- }
-
- @Test
- void update() {
- Meal updated = getUpdated();
- service.update(updated, USER_ID);
- MEAL_MATCHER.assertMatch(service.get(MEAL1_ID, USER_ID), getUpdated());
- }
-
- @Test
- void updateNotOwn() {
- NotFoundException exception = assertThrows(NotFoundException.class, () -> service.update(getUpdated(), ADMIN_ID));
- Assertions.assertEquals("Not found entity with id=" + MEAL1_ID, exception.getMessage());
- MEAL_MATCHER.assertMatch(service.get(MEAL1_ID, USER_ID), meal1);
- }
-
- @Test
- void getAll() {
- MEAL_MATCHER.assertMatch(service.getAll(USER_ID), meals);
- }
-
- @Test
- void getBetweenInclusive() {
- MEAL_MATCHER.assertMatch(service.getBetweenInclusive(
- LocalDate.of(2020, Month.JANUARY, 30),
- LocalDate.of(2020, Month.JANUARY, 30), USER_ID),
- meal3, meal2, meal1);
- }
-
- @Test
- void getBetweenWithNullDates() {
- MEAL_MATCHER.assertMatch(service.getBetweenInclusive(null, null, USER_ID), meals);
- }
-
- @Test
- void createWithException() throws Exception {
- validateRootCause(ConstraintViolationException.class, () -> service.create(new Meal(null, of(2015, Month.JUNE, 1, 18, 0), " ", 300), USER_ID));
- validateRootCause(ConstraintViolationException.class, () -> service.create(new Meal(null, null, "Description", 300), USER_ID));
- validateRootCause(ConstraintViolationException.class, () -> service.create(new Meal(null, of(2015, Month.JUNE, 1, 18, 0), "Description", 9), USER_ID));
- validateRootCause(ConstraintViolationException.class, () -> service.create(new Meal(null, of(2015, Month.JUNE, 1, 18, 0), "Description", 5001), USER_ID));
- }
-}
\ No newline at end of file
diff --git a/src/test/java/ru/javawebinar/topjava/service/AbstractServiceTest.java b/src/test/java/ru/javawebinar/topjava/service/AbstractServiceTest.java
deleted file mode 100644
index 930548690..000000000
--- a/src/test/java/ru/javawebinar/topjava/service/AbstractServiceTest.java
+++ /dev/null
@@ -1,33 +0,0 @@
-package ru.javawebinar.topjava.service;
-
-import org.junit.jupiter.api.extension.ExtendWith;
-import org.springframework.test.context.ActiveProfiles;
-import org.springframework.test.context.jdbc.Sql;
-import org.springframework.test.context.jdbc.SqlConfig;
-import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
-import ru.javawebinar.topjava.ActiveDbProfileResolver;
-import ru.javawebinar.topjava.TimingExtension;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.assertj.core.api.AssertionsForClassTypes.assertThatExceptionOfType;
-
-@SpringJUnitConfig(locations = {
- "classpath:spring/spring-app.xml",
- "classpath:spring/spring-db.xml"
-})
-//@ExtendWith(SpringExtension.class)
-@ActiveProfiles(resolver = ActiveDbProfileResolver.class)
-@Sql(scripts = "classpath:db/populateDB.sql", config = @SqlConfig(encoding = "UTF-8"))
-@ExtendWith(TimingExtension.class)
-public abstract class AbstractServiceTest {
-
- // Check root cause with AssertJ: https://github.com/junit-team/junit-framework/issues/2129#issuecomment-565712630
- // Check root cause in JUnit: https://github.com/junit-team/junit4/pull/778
- protected void validateRootCause(Class rootExceptionClass, Runnable runnable) {
- assertThatExceptionOfType(Throwable.class)
- .isThrownBy(runnable::run)
- .satisfiesAnyOf(
- ex -> assertThat(ex).isInstanceOf(rootExceptionClass),
- ex -> assertThat(ex).hasRootCauseInstanceOf(rootExceptionClass));
- }
-}
\ No newline at end of file
diff --git a/src/test/java/ru/javawebinar/topjava/service/AbstractUserServiceTest.java b/src/test/java/ru/javawebinar/topjava/service/AbstractUserServiceTest.java
deleted file mode 100644
index fe6838b5f..000000000
--- a/src/test/java/ru/javawebinar/topjava/service/AbstractUserServiceTest.java
+++ /dev/null
@@ -1,88 +0,0 @@
-package ru.javawebinar.topjava.service;
-
-import org.junit.jupiter.api.Test;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.dao.DataAccessException;
-import ru.javawebinar.topjava.model.Role;
-import ru.javawebinar.topjava.model.User;
-import ru.javawebinar.topjava.util.exception.NotFoundException;
-
-import javax.validation.ConstraintViolationException;
-import java.util.Date;
-import java.util.List;
-import java.util.Set;
-
-import static org.junit.jupiter.api.Assertions.assertThrows;
-import static ru.javawebinar.topjava.UserTestData.*;
-
-public abstract class AbstractUserServiceTest extends AbstractServiceTest {
-
- @Autowired
- protected UserService service;
-
- @Test
- void create() {
- User created = service.create(getNew());
- int newId = created.id();
- User newUser = getNew();
- newUser.setId(newId);
- USER_MATCHER.assertMatch(created, newUser);
- USER_MATCHER.assertMatch(service.get(newId), newUser);
- }
-
- @Test
- void duplicateMailCreate() {
- assertThrows(DataAccessException.class, () ->
- service.create(new User(null, "Duplicate", "user@yandex.ru", "newPass", Role.USER)));
- }
-
- @Test
- void delete() {
- service.delete(USER_ID);
- assertThrows(NotFoundException.class, () -> service.get(USER_ID));
- }
-
- @Test
- void deletedNotFound() {
- assertThrows(NotFoundException.class, () -> service.delete(NOT_FOUND));
- }
-
- @Test
- void get() {
- User user = service.get(ADMIN_ID);
- USER_MATCHER.assertMatch(user, admin);
- }
-
- @Test
- void getNotFound() {
- assertThrows(NotFoundException.class, () -> service.get(NOT_FOUND));
- }
-
- @Test
- void getByEmail() {
- User user = service.getByEmail("admin@gmail.com");
- USER_MATCHER.assertMatch(user, admin);
- }
-
- @Test
- void update() {
- User updated = getUpdated();
- service.update(updated);
- USER_MATCHER.assertMatch(service.get(USER_ID), getUpdated());
- }
-
- @Test
- void getAll() {
- List all = service.getAll();
- USER_MATCHER.assertMatch(all, admin, guest, user);
- }
-
- @Test
- void createWithException() throws Exception {
- validateRootCause(ConstraintViolationException.class, () -> service.create(new User(null, " ", "mail@yandex.ru", "password", Role.USER)));
- validateRootCause(ConstraintViolationException.class, () -> service.create(new User(null, "User", " ", "password", Role.USER)));
- validateRootCause(ConstraintViolationException.class, () -> service.create(new User(null, "User", "mail@yandex.ru", " ", Role.USER)));
- validateRootCause(ConstraintViolationException.class, () -> service.create(new User(null, "User", "mail@yandex.ru", "password", 9, true, new Date(), Set.of())));
- validateRootCause(ConstraintViolationException.class, () -> service.create(new User(null, "User", "mail@yandex.ru", "password", 10001, true, new Date(), Set.of())));
- }
-}
\ No newline at end of file
diff --git a/src/test/java/ru/javawebinar/topjava/service/datajpa/DataJpaMealServiceTest.java b/src/test/java/ru/javawebinar/topjava/service/datajpa/DataJpaMealServiceTest.java
deleted file mode 100644
index 161c93fb5..000000000
--- a/src/test/java/ru/javawebinar/topjava/service/datajpa/DataJpaMealServiceTest.java
+++ /dev/null
@@ -1,29 +0,0 @@
-package ru.javawebinar.topjava.service.datajpa;
-
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.Test;
-import org.springframework.test.context.ActiveProfiles;
-import ru.javawebinar.topjava.MealTestData;
-import ru.javawebinar.topjava.model.Meal;
-import ru.javawebinar.topjava.service.AbstractMealServiceTest;
-import ru.javawebinar.topjava.util.exception.NotFoundException;
-
-import static ru.javawebinar.topjava.MealTestData.*;
-import static ru.javawebinar.topjava.Profiles.DATAJPA;
-import static ru.javawebinar.topjava.UserTestData.*;
-
-@ActiveProfiles(DATAJPA)
-class DataJpaMealServiceTest extends AbstractMealServiceTest {
- @Test
- void getWithUser() {
- Meal adminMeal = service.getWithUser(ADMIN_MEAL_ID, ADMIN_ID);
- MEAL_MATCHER.assertMatch(adminMeal, adminMeal1);
- USER_MATCHER.assertMatch(adminMeal.getUser(), admin);
- }
-
- @Test
- void getWithUserNotFound() {
- Assertions.assertThrows(NotFoundException.class,
- () -> service.getWithUser(MealTestData.NOT_FOUND, ADMIN_ID));
- }
-}
diff --git a/src/test/java/ru/javawebinar/topjava/service/datajpa/DataJpaUserServiceTest.java b/src/test/java/ru/javawebinar/topjava/service/datajpa/DataJpaUserServiceTest.java
deleted file mode 100644
index 3638e07e9..000000000
--- a/src/test/java/ru/javawebinar/topjava/service/datajpa/DataJpaUserServiceTest.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package ru.javawebinar.topjava.service.datajpa;
-
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.Test;
-import org.springframework.test.context.ActiveProfiles;
-import ru.javawebinar.topjava.model.User;
-import ru.javawebinar.topjava.service.AbstractUserServiceTest;
-import ru.javawebinar.topjava.util.exception.NotFoundException;
-
-import static ru.javawebinar.topjava.Profiles.DATAJPA;
-import static ru.javawebinar.topjava.UserTestData.*;
-
-@ActiveProfiles(DATAJPA)
-class DataJpaUserServiceTest extends AbstractUserServiceTest {
- @Test
- void getWithMeals() {
- User actual = service.getWithMeals(ADMIN_ID);
- USER_WITH_MEALS_MATCHER.assertMatch(actual, admin);
- }
-
- @Test
- void getWithMealsNotFound() {
- Assertions.assertThrows(NotFoundException.class,
- () -> service.getWithMeals(NOT_FOUND));
- }
-}
\ No newline at end of file
diff --git a/src/test/java/ru/javawebinar/topjava/service/jdbc/JdbcMealServiceTest.java b/src/test/java/ru/javawebinar/topjava/service/jdbc/JdbcMealServiceTest.java
deleted file mode 100644
index aef588264..000000000
--- a/src/test/java/ru/javawebinar/topjava/service/jdbc/JdbcMealServiceTest.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package ru.javawebinar.topjava.service.jdbc;
-
-import org.springframework.test.context.ActiveProfiles;
-import ru.javawebinar.topjava.service.AbstractMealServiceTest;
-
-import static ru.javawebinar.topjava.Profiles.JDBC;
-
-@ActiveProfiles(JDBC)
-class JdbcMealServiceTest extends AbstractMealServiceTest {
-}
\ No newline at end of file
diff --git a/src/test/java/ru/javawebinar/topjava/service/jdbc/JdbcUserServiceTest.java b/src/test/java/ru/javawebinar/topjava/service/jdbc/JdbcUserServiceTest.java
deleted file mode 100644
index 62ca7668c..000000000
--- a/src/test/java/ru/javawebinar/topjava/service/jdbc/JdbcUserServiceTest.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package ru.javawebinar.topjava.service.jdbc;
-
-import org.springframework.test.context.ActiveProfiles;
-import ru.javawebinar.topjava.service.AbstractUserServiceTest;
-
-import static ru.javawebinar.topjava.Profiles.JDBC;
-
-@ActiveProfiles(JDBC)
-class JdbcUserServiceTest extends AbstractUserServiceTest {
-}
\ No newline at end of file
diff --git a/src/test/java/ru/javawebinar/topjava/service/jpa/JpaMealServiceTest.java b/src/test/java/ru/javawebinar/topjava/service/jpa/JpaMealServiceTest.java
deleted file mode 100644
index aaf5dcda9..000000000
--- a/src/test/java/ru/javawebinar/topjava/service/jpa/JpaMealServiceTest.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package ru.javawebinar.topjava.service.jpa;
-
-import org.springframework.test.context.ActiveProfiles;
-import ru.javawebinar.topjava.service.AbstractMealServiceTest;
-
-import static ru.javawebinar.topjava.Profiles.JPA;
-
-@ActiveProfiles(JPA)
-class JpaMealServiceTest extends AbstractMealServiceTest {
-}
\ No newline at end of file
diff --git a/src/test/java/ru/javawebinar/topjava/service/jpa/JpaUserServiceTest.java b/src/test/java/ru/javawebinar/topjava/service/jpa/JpaUserServiceTest.java
deleted file mode 100644
index 6d1cd9154..000000000
--- a/src/test/java/ru/javawebinar/topjava/service/jpa/JpaUserServiceTest.java
+++ /dev/null
@@ -1,10 +0,0 @@
-package ru.javawebinar.topjava.service.jpa;
-
-import org.springframework.test.context.ActiveProfiles;
-import ru.javawebinar.topjava.service.AbstractUserServiceTest;
-
-import static ru.javawebinar.topjava.Profiles.JPA;
-
-@ActiveProfiles(JPA)
-class JpaUserServiceTest extends AbstractUserServiceTest {
-}
\ No newline at end of file
diff --git a/src/test/java/ru/javawebinar/topjava/web/AbstractControllerTest.java b/src/test/java/ru/javawebinar/topjava/web/AbstractControllerTest.java
deleted file mode 100644
index a86811cbc..000000000
--- a/src/test/java/ru/javawebinar/topjava/web/AbstractControllerTest.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package ru.javawebinar.topjava.web;
-
-import org.junit.jupiter.api.Assumptions;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.core.env.Environment;
-import org.springframework.test.context.ActiveProfiles;
-import org.springframework.test.context.junit.jupiter.web.SpringJUnitWebConfig;
-import org.springframework.test.web.servlet.MockMvc;
-import org.springframework.test.web.servlet.ResultActions;
-import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder;
-import org.springframework.test.web.servlet.setup.MockMvcBuilders;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.web.context.WebApplicationContext;
-import org.springframework.web.filter.CharacterEncodingFilter;
-import ru.javawebinar.topjava.ActiveDbProfileResolver;
-import ru.javawebinar.topjava.Profiles;
-
-import javax.annotation.PostConstruct;
-
-@SpringJUnitWebConfig(locations = {
- "classpath:spring/spring-app.xml",
- "classpath:spring/spring-mvc.xml",
- "classpath:spring/spring-db.xml"
-})
-//@WebAppConfiguration
-//@ExtendWith(SpringExtension.class)
-@Transactional
-@ActiveProfiles(resolver = ActiveDbProfileResolver.class, profiles = Profiles.REPOSITORY_IMPLEMENTATION)
-public abstract class AbstractControllerTest {
-
- private static final CharacterEncodingFilter CHARACTER_ENCODING_FILTER = new CharacterEncodingFilter();
-
- static {
- CHARACTER_ENCODING_FILTER.setEncoding("UTF-8");
- CHARACTER_ENCODING_FILTER.setForceEncoding(true);
- }
-
- private MockMvc mockMvc;
-
- @Autowired
- private Environment env;
-
- @Autowired
- private WebApplicationContext webApplicationContext;
-
- protected void assumeDataJpa() {
- Assumptions.assumeTrue(env.acceptsProfiles(org.springframework.core.env.Profiles.of(Profiles.DATAJPA)), "DATA-JPA only");
- }
-
- @PostConstruct
- private void postConstruct() {
- mockMvc = MockMvcBuilders
- .webAppContextSetup(webApplicationContext)
- .addFilter(CHARACTER_ENCODING_FILTER)
- .build();
- }
-
- protected ResultActions perform(MockHttpServletRequestBuilder builder) throws Exception {
- return mockMvc.perform(builder);
- }
-}
diff --git a/src/test/java/ru/javawebinar/topjava/web/ResourceControllerTest.java b/src/test/java/ru/javawebinar/topjava/web/ResourceControllerTest.java
deleted file mode 100644
index 244399662..000000000
--- a/src/test/java/ru/javawebinar/topjava/web/ResourceControllerTest.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package ru.javawebinar.topjava.web;
-
-import org.junit.jupiter.api.Test;
-import org.springframework.http.MediaType;
-
-import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
-import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
-
-class ResourceControllerTest extends AbstractControllerTest {
-
- @Test
- void resources() throws Exception {
- perform(get("/resources/css/style.css"))
- .andDo(print())
- .andExpect(content().contentTypeCompatibleWith(MediaType.valueOf("text/css")))
- .andExpect(status().isOk());
- }
-}
\ No newline at end of file
diff --git a/src/test/java/ru/javawebinar/topjava/web/RootControllerTest.java b/src/test/java/ru/javawebinar/topjava/web/RootControllerTest.java
deleted file mode 100644
index 6832eaea9..000000000
--- a/src/test/java/ru/javawebinar/topjava/web/RootControllerTest.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package ru.javawebinar.topjava.web;
-
-import org.assertj.core.matcher.AssertionMatcher;
-import org.junit.jupiter.api.Test;
-import ru.javawebinar.topjava.model.User;
-
-import java.util.List;
-
-import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
-import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
-import static ru.javawebinar.topjava.MealTestData.meals;
-import static ru.javawebinar.topjava.UserTestData.*;
-import static ru.javawebinar.topjava.util.MealsUtil.getTos;
-
-class RootControllerTest extends AbstractControllerTest {
-
- @Test
- void getUsers() throws Exception {
- perform(get("/users"))
- .andDo(print())
- .andExpect(status().isOk())
- .andExpect(view().name("users"))
- .andExpect(forwardedUrl("/WEB-INF/jsp/users.jsp"))
- .andExpect(model().attribute("users",
- new AssertionMatcher>() {
- @Override
- public void assertion(List actual) throws AssertionError {
- USER_MATCHER.assertMatch(actual, admin, guest, user);
- }
- }
- ));
- }
-
- @Test
- void getMeals() throws Exception {
- perform(get("/meals"))
- .andDo(print())
- .andExpect(status().isOk())
- .andExpect(view().name("meals"))
- .andExpect(forwardedUrl("/WEB-INF/jsp/meals.jsp"))
- .andExpect(model().attribute("meals", getTos(meals, SecurityUtil.authUserCaloriesPerDay())));
- }
-}
\ No newline at end of file
diff --git a/src/test/java/ru/javawebinar/topjava/web/json/JsonUtilTest.java b/src/test/java/ru/javawebinar/topjava/web/json/JsonUtilTest.java
deleted file mode 100644
index 540586d11..000000000
--- a/src/test/java/ru/javawebinar/topjava/web/json/JsonUtilTest.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package ru.javawebinar.topjava.web.json;
-
-import org.junit.jupiter.api.Test;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import ru.javawebinar.topjava.model.Meal;
-
-import java.util.List;
-
-import static ru.javawebinar.topjava.MealTestData.*;
-
-class JsonUtilTest {
- private static final Logger log = LoggerFactory.getLogger(JsonUtilTest.class);
-
- @Test
- void readWriteValue() {
- String json = JsonUtil.writeValue(adminMeal1);
- log.info(json);
- Meal meal = JsonUtil.readValue(json, Meal.class);
- MEAL_MATCHER.assertMatch(meal, adminMeal1);
- }
-
- @Test
- void readWriteValues() {
- String json = JsonUtil.writeValue(meals);
- log.info(json);
- List actual = JsonUtil.readValues(json, Meal.class);
- MEAL_MATCHER.assertMatch(actual, meals);
- }
-}
\ No newline at end of file
diff --git a/src/test/java/ru/javawebinar/topjava/web/meal/MealRestControllerTest.java b/src/test/java/ru/javawebinar/topjava/web/meal/MealRestControllerTest.java
deleted file mode 100644
index 82bb7cd71..000000000
--- a/src/test/java/ru/javawebinar/topjava/web/meal/MealRestControllerTest.java
+++ /dev/null
@@ -1,98 +0,0 @@
-package ru.javawebinar.topjava.web.meal;
-
-
-import org.junit.jupiter.api.Test;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.MediaType;
-import org.springframework.test.web.servlet.ResultActions;
-import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
-import ru.javawebinar.topjava.model.Meal;
-import ru.javawebinar.topjava.service.MealService;
-import ru.javawebinar.topjava.util.exception.NotFoundException;
-import ru.javawebinar.topjava.web.AbstractControllerTest;
-import ru.javawebinar.topjava.web.json.JsonUtil;
-
-import static org.junit.jupiter.api.Assertions.assertThrows;
-import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
-import static ru.javawebinar.topjava.MealTestData.*;
-import static ru.javawebinar.topjava.UserTestData.USER_ID;
-import static ru.javawebinar.topjava.UserTestData.user;
-import static ru.javawebinar.topjava.util.MealsUtil.createTo;
-import static ru.javawebinar.topjava.util.MealsUtil.getTos;
-
-class MealRestControllerTest extends AbstractControllerTest {
-
- private static final String REST_URL = MealRestController.REST_URL + '/';
-
- @Autowired
- private MealService mealService;
-
- @Test
- void get() throws Exception {
- perform(MockMvcRequestBuilders.get(REST_URL + MEAL1_ID))
- .andExpect(status().isOk())
- .andDo(print())
- .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
- .andExpect(MEAL_MATCHER.contentJson(meal1));
- }
-
- @Test
- void delete() throws Exception {
- perform(MockMvcRequestBuilders.delete(REST_URL + MEAL1_ID))
- .andExpect(status().isNoContent());
- assertThrows(NotFoundException.class, () -> mealService.get(MEAL1_ID, USER_ID));
- }
-
- @Test
- void update() throws Exception {
- Meal updated = getUpdated();
- perform(MockMvcRequestBuilders.put(REST_URL + MEAL1_ID).contentType(MediaType.APPLICATION_JSON)
- .content(JsonUtil.writeValue(updated)))
- .andExpect(status().isNoContent());
-
- MEAL_MATCHER.assertMatch(mealService.get(MEAL1_ID, USER_ID), updated);
- }
-
- @Test
- void createWithLocation() throws Exception {
- Meal newMeal = getNew();
- ResultActions action = perform(MockMvcRequestBuilders.post(REST_URL)
- .contentType(MediaType.APPLICATION_JSON)
- .content(JsonUtil.writeValue(newMeal)))
- .andExpect(status().isCreated());
-
- Meal created = MEAL_MATCHER.readFromJson(action);
- int newId = created.id();
- newMeal.setId(newId);
- MEAL_MATCHER.assertMatch(created, newMeal);
- MEAL_MATCHER.assertMatch(mealService.get(newId, USER_ID), newMeal);
- }
-
- @Test
- void getAll() throws Exception {
- perform(MockMvcRequestBuilders.get(REST_URL))
- .andExpect(status().isOk())
- .andDo(print())
- .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
- .andExpect(TO_MATCHER.contentJson(getTos(meals, user.getCaloriesPerDay())));
- }
-
- @Test
- void getBetween() throws Exception {
- perform(MockMvcRequestBuilders.get(REST_URL + "filter")
- .param("startDate", "2020-01-30").param("startTime", "07:00")
- .param("endDate", "2020-01-31").param("endTime", "11:00"))
- .andExpect(status().isOk())
- .andDo(print())
- .andExpect(TO_MATCHER.contentJson(createTo(meal5, true), createTo(meal1, false)));
- }
-
- @Test
- void getBetweenAll() throws Exception {
- perform(MockMvcRequestBuilders.get(REST_URL + "filter?startDate=&endTime="))
- .andExpect(status().isOk())
- .andExpect(TO_MATCHER.contentJson(getTos(meals, user.getCaloriesPerDay())));
- }
-}
\ No newline at end of file
diff --git a/src/test/java/ru/javawebinar/topjava/web/user/AdminRestControllerTest.java b/src/test/java/ru/javawebinar/topjava/web/user/AdminRestControllerTest.java
deleted file mode 100644
index 5b6b17ccf..000000000
--- a/src/test/java/ru/javawebinar/topjava/web/user/AdminRestControllerTest.java
+++ /dev/null
@@ -1,96 +0,0 @@
-package ru.javawebinar.topjava.web.user;
-
-import org.junit.jupiter.api.Test;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.MediaType;
-import org.springframework.test.web.servlet.ResultActions;
-import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
-import ru.javawebinar.topjava.model.User;
-import ru.javawebinar.topjava.service.UserService;
-import ru.javawebinar.topjava.util.exception.NotFoundException;
-import ru.javawebinar.topjava.web.AbstractControllerTest;
-import ru.javawebinar.topjava.web.json.JsonUtil;
-
-import static org.junit.jupiter.api.Assertions.assertThrows;
-import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
-import static ru.javawebinar.topjava.UserTestData.*;
-
-class AdminRestControllerTest extends AbstractControllerTest {
-
- private static final String REST_URL = AdminRestController.REST_URL + '/';
-
- @Autowired
- private UserService userService;
-
- @Test
- void get() throws Exception {
- perform(MockMvcRequestBuilders.get(REST_URL + ADMIN_ID))
- .andExpect(status().isOk())
- .andDo(print())
- // https://jira.spring.io/browse/SPR-14472
- .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
- .andExpect(USER_MATCHER.contentJson(admin));
- }
-
- @Test
- void getByEmail() throws Exception {
- perform(MockMvcRequestBuilders.get(REST_URL + "by-email?email=" + user.getEmail()))
- .andExpect(status().isOk())
- .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
- .andExpect(USER_MATCHER.contentJson(user));
- }
-
- @Test
- void delete() throws Exception {
- perform(MockMvcRequestBuilders.delete(REST_URL + USER_ID))
- .andDo(print())
- .andExpect(status().isNoContent());
- assertThrows(NotFoundException.class, () -> userService.get(USER_ID));
- }
-
- @Test
- void update() throws Exception {
- User updated = getUpdated();
- perform(MockMvcRequestBuilders.put(REST_URL + USER_ID)
- .contentType(MediaType.APPLICATION_JSON)
- .content(JsonUtil.writeValue(updated)))
- .andExpect(status().isNoContent());
-
- USER_MATCHER.assertMatch(userService.get(USER_ID), updated);
- }
-
- @Test
- void createWithLocation() throws Exception {
- User newUser = getNew();
- ResultActions action = perform(MockMvcRequestBuilders.post(REST_URL)
- .contentType(MediaType.APPLICATION_JSON)
- .content(JsonUtil.writeValue(newUser)))
- .andExpect(status().isCreated());
-
- User created = USER_MATCHER.readFromJson(action);
- int newId = created.id();
- newUser.setId(newId);
- USER_MATCHER.assertMatch(created, newUser);
- USER_MATCHER.assertMatch(userService.get(newId), newUser);
- }
-
- @Test
- void getAll() throws Exception {
- perform(MockMvcRequestBuilders.get(REST_URL))
- .andExpect(status().isOk())
- .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
- .andExpect(USER_MATCHER.contentJson(admin, guest, user));
- }
-
- @Test
- void getWithMeals() throws Exception {
- assumeDataJpa();
- perform(MockMvcRequestBuilders.get(REST_URL + ADMIN_ID + "/with-meals"))
- .andExpect(status().isOk())
- .andDo(print())
- .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
- .andExpect(USER_WITH_MEALS_MATCHER.contentJson(admin));
- }
-}
\ No newline at end of file
diff --git a/src/test/java/ru/javawebinar/topjava/web/user/InMemoryAdminRestControllerSpringTest.java b/src/test/java/ru/javawebinar/topjava/web/user/InMemoryAdminRestControllerSpringTest.java
deleted file mode 100644
index 7568d0f52..000000000
--- a/src/test/java/ru/javawebinar/topjava/web/user/InMemoryAdminRestControllerSpringTest.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package ru.javawebinar.topjava.web.user;
-
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
-import ru.javawebinar.topjava.repository.inmemory.InMemoryUserRepository;
-import ru.javawebinar.topjava.util.exception.NotFoundException;
-
-import static ru.javawebinar.topjava.UserTestData.NOT_FOUND;
-import static ru.javawebinar.topjava.UserTestData.USER_ID;
-
-@SpringJUnitConfig(locations = {"classpath:spring/inmemory.xml"})
-class InMemoryAdminRestControllerSpringTest {
-
- @Autowired
- private AdminRestController controller;
-
- @Autowired
- private InMemoryUserRepository repository;
-
- @BeforeEach
- void setup() {
- repository.init();
- }
-
- @Test
- void delete() {
- controller.delete(USER_ID);
- Assertions.assertNull(repository.get(USER_ID));
- }
-
- @Test
- void deleteNotFound() {
- Assertions.assertThrows(NotFoundException.class, () -> controller.delete(NOT_FOUND));
- }
-}
\ No newline at end of file
diff --git a/src/test/java/ru/javawebinar/topjava/web/user/InMemoryAdminRestControllerTest.java b/src/test/java/ru/javawebinar/topjava/web/user/InMemoryAdminRestControllerTest.java
deleted file mode 100644
index c41fa0e6b..000000000
--- a/src/test/java/ru/javawebinar/topjava/web/user/InMemoryAdminRestControllerTest.java
+++ /dev/null
@@ -1,54 +0,0 @@
-package ru.javawebinar.topjava.web.user;
-
-import org.junit.jupiter.api.*;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.context.ConfigurableApplicationContext;
-import org.springframework.context.support.ClassPathXmlApplicationContext;
-import ru.javawebinar.topjava.repository.inmemory.InMemoryUserRepository;
-import ru.javawebinar.topjava.util.exception.NotFoundException;
-
-import java.util.Arrays;
-
-import static ru.javawebinar.topjava.UserTestData.NOT_FOUND;
-import static ru.javawebinar.topjava.UserTestData.USER_ID;
-
-class InMemoryAdminRestControllerTest {
- private static final Logger log = LoggerFactory.getLogger(InMemoryAdminRestControllerTest.class);
-
- private static ConfigurableApplicationContext appCtx;
- private static AdminRestController controller;
- private static InMemoryUserRepository repository;
-
- @BeforeAll
- static void beforeClass() {
- appCtx = new ClassPathXmlApplicationContext("spring/inmemory.xml");
- log.info("\n{}\n", Arrays.toString(appCtx.getBeanDefinitionNames()));
- controller = appCtx.getBean(AdminRestController.class);
- repository = appCtx.getBean(InMemoryUserRepository.class);
- }
-
- @AfterAll
- static void afterClass() {
- // May cause during JUnit "Cache is not alive (STATUS_SHUTDOWN)" as JUnit share Spring context for speed
- // http://stackoverflow.com/questions/16281802/ehcache-shutdown-causing-an-exception-while-running-test-suite
- // appCtx.close();
- }
-
- @BeforeEach
- void setup() {
- // re-initialize
- repository.init();
- }
-
- @Test
- void delete() {
- controller.delete(USER_ID);
- Assertions.assertNull(repository.get(USER_ID));
- }
-
- @Test
- void deleteNotFound() {
- Assertions.assertThrows(NotFoundException.class, () -> controller.delete(NOT_FOUND));
- }
-}
\ No newline at end of file
diff --git a/src/test/java/ru/javawebinar/topjava/web/user/ProfileRestControllerTest.java b/src/test/java/ru/javawebinar/topjava/web/user/ProfileRestControllerTest.java
deleted file mode 100644
index 5ae339943..000000000
--- a/src/test/java/ru/javawebinar/topjava/web/user/ProfileRestControllerTest.java
+++ /dev/null
@@ -1,58 +0,0 @@
-package ru.javawebinar.topjava.web.user;
-
-import org.junit.jupiter.api.Test;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.MediaType;
-import org.springframework.test.web.servlet.request.MockMvcRequestBuilders;
-import ru.javawebinar.topjava.model.User;
-import ru.javawebinar.topjava.service.UserService;
-import ru.javawebinar.topjava.web.AbstractControllerTest;
-import ru.javawebinar.topjava.web.json.JsonUtil;
-
-import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
-import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;
-import static ru.javawebinar.topjava.UserTestData.*;
-import static ru.javawebinar.topjava.web.user.ProfileRestController.REST_URL;
-
-class ProfileRestControllerTest extends AbstractControllerTest {
-
- @Autowired
- private UserService userService;
-
- @Test
- void get() throws Exception {
- perform(MockMvcRequestBuilders.get(REST_URL))
- .andExpect(status().isOk())
- .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
- .andExpect(USER_MATCHER.contentJson(user));
- }
-
- @Test
- void delete() throws Exception {
- perform(MockMvcRequestBuilders.delete(REST_URL))
- .andExpect(status().isNoContent());
- USER_MATCHER.assertMatch(userService.getAll(), admin, guest);
- }
-
- @Test
- void update() throws Exception {
- User updated = getUpdated();
- perform(MockMvcRequestBuilders.put(REST_URL).contentType(MediaType.APPLICATION_JSON)
- .content(JsonUtil.writeValue(updated)))
- .andDo(print())
- .andExpect(status().isNoContent());
-
- USER_MATCHER.assertMatch(userService.get(USER_ID), updated);
- }
-
- @Test
- void getWithMeals() throws Exception {
- assumeDataJpa();
- perform(MockMvcRequestBuilders.get(REST_URL + "/with-meals"))
- .andExpect(status().isOk())
- .andDo(print())
- .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_JSON))
- .andExpect(USER_WITH_MEALS_MATCHER.contentJson(user));
- }
-}
\ No newline at end of file
diff --git a/src/test/resources/logback-test.xml b/src/test/resources/logback-test.xml
deleted file mode 100644
index 803655475..000000000
--- a/src/test/resources/logback-test.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
- true
-
-
-
-
- UTF-8
- %d{HH:mm:ss.SSS} %highlight(%-5level) %cyan(%class{50}.%M:%L) - %msg%n
-
-
-
-
-
- UTF-8
- %magenta(%msg%n)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/test/resources/spring/inmemory.xml b/src/test/resources/spring/inmemory.xml
deleted file mode 100644
index 0c9d05028..000000000
--- a/src/test/resources/spring/inmemory.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/test/resources/spring/spring-cache.xml b/src/test/resources/spring/spring-cache.xml
deleted file mode 100644
index 7c9dfda9a..000000000
--- a/src/test/resources/spring/spring-cache.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
-
-
-
-
- false
-
-
-
-
-
-
\ No newline at end of file