/
eelamimi
/
SberJavaCourseBeginner
Обзор
Документация
Войти
/
eelamimi
/
SberJavaCourseBeginner
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
hw5/src/main/java/courseSber/App.java
249 строк
15 KB
glebka
test StudentsRepository
19 апр 2025, 15:27
19 апр 2025, 15:27
e3750e5
Код
Авторство
О чём код?
package courseSber; import courseSber.enums.*; import courseSber.models.*; import courseSber.repositories.*; import java.util.*; public class App { public static void main(String[] args) { System.out.println("\nТестирование репозитория преподавателей:\n"); testTeachersRepository(); System.out.println("\n=========================================================\n"); System.out.println("Тестирование репозитория курсов:\n"); testCoursesRepository(); System.out.println("\n=========================================================\n"); System.out.println("Тестирование репозитория студентов:\n"); testStudentsRepository(); System.out.println("\n=========================================================\n"); System.out.println("Тестирование фишечки:\n"); System.out.println("Статистика по курсам:"); (new App()).coursesStatistics().forEach(System.out::println); } public List<List<Object>> coursesStatistics() { List<Course> courses = (new CoursesRepository()).findAll(); List<Student> students = (new StudentsRepository()).findAll(); List<List<Object>> rows = new ArrayList<>(); if (courses.isEmpty() || students.isEmpty()) { return null; } for (Course course : courses) { rows.add(Arrays.asList(course, course.getTeacher(), 0)); } for (List<Object> row : rows) { Course course = (Course) row.get(0); for (Student student : students) { if (course.getId().compareTo(student.getCourse().getId()) == 0) { row.set(2, (Integer) row.get(2) + 1); } } } return rows; } private static void testTeachersRepository() { TeachersRepository repository = new TeachersRepository(); System.out.println("Существующие преподаватели в базе"); List<Teacher> existingTeachers = repository.findAll(); existingTeachers.forEach(System.out::println); System.out.println("\nТест поиска по контракту"); Teacher foundByContract = repository.findByContract("Т-1234"); System.out.println("Найденный учитель по контракту Т-1234: " + foundByContract); System.out.println("\nТест поиска по отделу"); List<Teacher> physicsTeachers = repository.findByField("Кафедра физики", FieldsOfTeacher.DEPARTMENT_TEACHER); System.out.println("Преподаватели кафедры физики:"); physicsTeachers.forEach(System.out::println); System.out.println("\nТест добавления нового преподавателя"); Teacher newTeacher = new Teacher("Новиков", "Артем", "Олегович", "Т-9999", "Кафедра математики"); boolean saveResult = repository.save(newTeacher); System.out.println("Добавление нового преподавателя (true): " + saveResult); System.out.println("Проверка добавленного преподавателя: " + repository.findByContract("Т-9999")); System.out.println("\nТест добавления списка преподавателей"); List<Teacher> newTeachers = new ArrayList<>(); newTeachers.add(new Teacher("Зайцева", "Ольга", "Игоревна", "Т-8888", "Кафедра информатики")); newTeachers.add(new Teacher("Волков", "Сергей", "Викторович", "Т-7777", "Кафедра истории")); boolean saveListResult = repository.save(newTeachers); System.out.println("Добавление списка преподавателей (true): " + saveListResult); System.out.println("Проверка добавленных преподавателей:"); System.out.println("Т-8888: " + repository.findByContract("Т-8888")); System.out.println("Т-7777: " + repository.findByContract("Т-7777")); System.out.println("\nТест обновления преподавателя"); Teacher teacherToUpdate = repository.findByContract("Т-9999"); boolean updateResult = repository.update(teacherToUpdate, "Кафедра высшей математики", FieldsOfTeacher.DEPARTMENT_TEACHER); System.out.println("Обновление отдела (true): " + updateResult); System.out.println("Обновленный учитель: " + repository.findByContract("Т=9999")); System.out.println("\nОчистка добавленных тестовых данных"); Teacher teacherToDelete = new Teacher(null, null, null, "Т-9999", null); boolean deleteResult = repository.delete(teacherToDelete); System.out.println("Удаление тестовых данных (true): " + deleteResult); List<Teacher> teachersToDelete = new ArrayList<>(); teachersToDelete.add(new Teacher(null, null, null, "Т-8888", null)); teachersToDelete.add(new Teacher(null, null, null, "Т-7777", null)); boolean deleteResultList = repository.delete(teachersToDelete); System.out.println("Удаление тестовых данных из списка (true): " + deleteResultList); System.out.println("Проверка удаления:"); System.out.println("Т-9999: " + repository.findByContract("Т-9999")); System.out.println("Т-8888: " + repository.findByContract("Т-8888")); System.out.println("Т-7777: " + repository.findByContract("Т-7777")); System.out.println("\nИтоговое состояние базы"); List<Teacher> finalTeachers = repository.findAll(); System.out.println("Всего преподавателей в базе: " + finalTeachers.size()); finalTeachers.forEach(System.out::println); } private static void testCoursesRepository() { TeachersRepository teachersRepository = new TeachersRepository(); CoursesRepository coursesRepository = new CoursesRepository(); List<Teacher> teachers = new ArrayList<>(); teachers.add(new Teacher("Иванов", "Иван", "Иванович", "T-1001", "Кафедра математики")); teachers.add(new Teacher("Петрова", "Мария", "Сергеевна", "T-1002", "Кафедра физики")); teachers.add(new Teacher("Сидоров", "Алексей", "Николаевич", "T-1003", "Кафедра информатики")); teachers.add(new Teacher("Кузнецова", "Елена", "Владимировна", "T-1004", "Кафедра химии")); teachers.add(new Teacher("Федоров", "Дмитрий", "Александрович", "T-1005", "Кафедра биологии")); teachers.add(new Teacher("Михайлова", "Ольга", "Игоревна", "T-1006", "Кафедра экономики")); teachers.add(new Teacher("Васильев", "Артем", "Викторович", "T-1007", "Кафедра истории")); teachersRepository.save(teachers); System.out.println("Все курсы:"); coursesRepository.findAll().forEach(System.out::println); List<Course> courses = new ArrayList<>(); courses.add(new Course("Общая физика", "Механика, термодинамика, электродинамика", teachers.get(1))); courses.add(new Course("Программирование на Java", "Основы ООП и Java Core", teachers.get(2))); courses.add(new Course("Органическая химия", "Строение и свойства органических соединений", teachers.get(3))); courses.add(new Course("Генетика", "Основы наследственности и изменчивости", teachers.get(4))); courses.add(new Course("Микроэкономика", "Теория поведения потребителей и фирм", teachers.get(5))); courses.add(new Course("История России", "Основные события отечественной истории", teachers.get(6))); System.out.println("\nДобавление 1 курса:"); Course mathCourse = new Course("Математика", "Основы математики", teachers.get(0)); boolean saveResult = coursesRepository.save(mathCourse); System.out.println("Результат добавления (true): " + saveResult); System.out.println("\nДобавление списка курсов:"); boolean saveListResult = coursesRepository.save(courses); System.out.println("Результат добавления (true): " + saveListResult); System.out.println("\nВсе курсы:"); coursesRepository.findAll().forEach(System.out::println); System.out.println("\nПоиск по названию курса:"); List<Course> mathCourses = coursesRepository.findByField("Математика", FieldsOfCourse.TITLE_COURSE); System.out.println(mathCourses); System.out.println("\nИзменение 1 курса:"); boolean updateResult = coursesRepository.update(courses.get(1), "Программирование", FieldsOfCourse.TITLE_COURSE); System.out.println("Результат изменения (true): " + updateResult); System.out.println("\nПоиск по названию курса 2:"); List<Course> progCourses = coursesRepository.findByField("Программирование", FieldsOfCourse.TITLE_COURSE); progCourses.forEach(System.out::println); System.out.println("\nУдаление 1 курса:"); boolean deleteCourse = coursesRepository.delete(mathCourse); System.out.println("Результат удаления (true): " + deleteCourse + "\n"); System.out.println("Удаление курсов:"); boolean deleteCourses = coursesRepository.delete(courses); System.out.println("Результат удаления (true): " + deleteCourses + "\n"); System.out.println("Удаление учителей:"); boolean deleteTeachers = teachersRepository.delete(teachers); System.out.println("Результат удаления (true): " + deleteTeachers); } private static void testStudentsRepository() { List<Course> courses = new CoursesRepository().findAll(); StudentsRepository studentsRepository = new StudentsRepository(); System.out.println("Все студенты:"); studentsRepository.findAll().forEach(System.out::println); List<Student> students = new ArrayList<>(); students.add(new Student("Петрова", "Мария", "Сергеевна", "Ф-202", "SC-0017", courses.get(1))); students.add(new Student("Смирнов", "Алексей", "Николаевич", "И-301", "SC-0018", courses.get(2))); System.out.println("\nДобавление 1 студента:"); Student student = new Student("Сидоров", "Иван", "Иванович", "М-102", "SC-0016", courses.get(0)); boolean saveResult = studentsRepository.save(student); System.out.println("Результат добавления (true): " + saveResult); System.out.println("\nДобавление списка студентов:"); boolean saveListResult = studentsRepository.save(students); System.out.println("Результат добавления (true): " + saveListResult); System.out.println("\nВсе студенты:"); studentsRepository.findAll().forEach(System.out::println); System.out.println("\nПоиск по номеру студенческого билета:"); List<Student> studentsByTicket = studentsRepository.findByField("SC-0011", FieldsOfStudent.STUDENT_CARD_STUDENT); studentsByTicket.forEach(System.out::println); System.out.println("\nПоиск по фамилии студента:"); List<Student> studentsBySurname = studentsRepository.findByField("Иванов", FieldsOfStudent.LAST_NAME_STUDENT); if (studentsBySurname != null) { studentsBySurname.forEach(System.out::println); } else { System.out.println("Студенты не найдены."); } System.out.println("\nПоиск по предмету:"); List<Student> studentsByCourse = studentsRepository.findByField(courses.get(0).getId().toString(), FieldsOfStudent.COURSE_STUDENT); studentsByCourse.forEach(System.out::println); System.out.println("\nИзменение студента 1:"); boolean updateLastNameResult = studentsRepository.update(student, "Абадеев", FieldsOfStudent.LAST_NAME_STUDENT); System.out.println("Результат изменения (true): " + updateLastNameResult); System.out.println(student); System.out.println("\nИзменение студента 2:"); boolean updateCourseResult = studentsRepository.update(student, courses.get(4).getId().toString(), FieldsOfStudent.COURSE_STUDENT); System.out.println("Результат изменения (true): " + updateCourseResult); System.out.println(student); System.out.println("\nУдаление записей студентов:"); boolean deleteStudents = studentsRepository.delete(students); System.out.println("Результат удаления (true): " + deleteStudents); for (int i = 0; i < courses.size() - 1; i++) { studentsRepository.save(new Student( student.getLastName(), student.getFirstName(), student.getMiddleName(), student.getGroup(), student.getStudentCard(), courses.get(i) )); } System.out.println("\nУдаление 1 записи студента:"); boolean deleteStudent = studentsRepository.delete(student); // удаляется где, courses.get(4) System.out.println("Результат удаления (true): " + deleteStudent); System.out.println("\nУдаление всех записей студента:"); boolean deleteStudentCard = studentsRepository.deleteByStudentCard(student.getStudentCard()); // удаляется где, courses.get(0..3) System.out.println("Результат удаления (true): " + deleteStudentCard); } }