Главный объект
|
Подчиненный
объект
|
Тип связи
|
Ключ связи
|
Группа
|
Рабочее место
|
1:М
|
Код_группы
|
Группа
|
Уровень доступа
|
1:М
|
Код_ группы
|
Группа
|
Пользователь
|
1:М
|
Код_ группы
|
Пользователь
|
Зар. плата
|
1:М
|
Код_пользователя
|
Пользователь
|
Пропуск по
болезне
|
1:М
|
Код_
пользователя
|
Пользователь
|
Переход
|
1:М
|
Код_
пользователя
|
Переход
|
Календарь
|
М:1
|
Переход
|
Комната
|
М:1
|
Код_комнаты
|
Здание
|
Этаж
|
1:М
|
Код_здания
|
Этаж
|
Комната
|
1:М
|
Код_этажа
|
3.2
Описание процесса автоматизации сборки
Процесс сборки проводился с помощью Maven. Для иллюстрации
настроек данного программного обеспечения, рассмотрим содержимое файла настроек
pom.xml:
<?xml version="1.0"
encoding="UTF-8"?>
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.vaadin.tutorial</groupId>
<artifactId>Skudy</artifactId>
<packaging>war</packaging>
<version>1.0</version>
<name>Vaadin Web Application</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<vaadin.version>7.0.0</vaadin.version>
<vaadin.plugin.version>${vaadin.version}</vaadin.plugin.version>
</properties>
<repositories>
<repository>
<id>vaadin-addons</id>
<url>http://maven.vaadin.com/vaadin-addons</url>
</repository>
<repository>
<id>vaadin-snapshots</id>
<url>http://oss.sonatype.org/content/repositories/vaadin-snapshots/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>vaadin-snapshots</id>
<url>http://oss.sonatype.org/content/repositories/vaadin-snapshots/</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
<dependencies>
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-server</artifactId>
<version>${vaadin.version}</version>
</dependency>
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-client-compiled</artifactId>
<version>${vaadin.version}</version>
</dependency>
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-client</artifactId>
<version>${vaadin.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-themes</artifactId>
<version>${vaadin.version}</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.4</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>javax.persistence</artifactId>
<version>2.0.4.v201112161009</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.1.9.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.1.9.Final</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.23</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>3.2.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>3.2.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>3.2.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>3.2.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>3.2.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>3.2.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>3.2.1.RELEASE</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>3.2.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>3.2.1.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
<version>1.3.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.7.1</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>3.2.1.RELEASE</version>
</dependency>
<dependency>
<groupId>com.vaadin.addon</groupId>
<artifactId>jpacontainer</artifactId>
<version>3.0.0.beta1</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<!-- As we are doing "inplace" GWT
compilation, ensure the widgetset -->
<!-- directory is cleaned properly -->
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>2.4.1</version>
<configuration>
<filesets>
<fileset>
<directory>src/main/webapp/VAADIN/widgetsets</directory>
</fileset>
</filesets>
</configuration>
</plugin>
<plugin>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-maven-plugin</artifactId>
<version>${vaadin.plugin.version}</version>
<configuration>
<extraJvmArgs>-Xmx512M
-Xss1024k</extraJvmArgs>
<!--
<runTarget>mobilemail</runTarget> -->
<!-- We are doing "inplace" but into
subdir VAADIN/widgetsets. Thiscompatible with Vaadin eclipse plugin. -->
<webappDirectory>${basedir}/src/main/webapp/VAADIN/widgetsets
</webappDirectory>
<hostedWebapp>${basedir}/src/main/webapp/VAADIN/widgetsets
</hostedWebapp>
<noServer>true</noServer>
<!-- Remove draftCompile when project is ready
-->
<draftCompile>false</draftCompile>
<compileReport>true</compileReport>
<style>OBF</style>
<strict>true</strict>
<runTarget>http://localhost:8080/</runTarget>
</configuration>
<executions>
<execution>
<configuration>
<!-- if you don't specify any modules, the
plugin will find them -->
<!-- <modules>
<module>com.vaadin.demo.mobilemail.gwt.ColorPickerWidgetSet</module>
</modules> -->
</configuration>
<goals>
<goal>resources</goal>
<goal>update-widgetset</goal>
<goal>compile</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<!--<configuration>-->
<!--<jettyConfig>src/main/webapp/WEB-INF/web.xml</jettyConfig>-->
<!--</configuration>-->
</plugin>
</plugins>
</build>
</project>
3.3
Тестирование программного обеспечения
На этапе реализации программного обеспечения было проведено
тестирование классов, что бы удостоверится в корректности работы классов и в
работоспособности. Тестирование классов проводилось с помощью JunitTest
библиотеки. Программное обеспечение, за время проектирования и тестирования
было доведено до состояния полной работоспособности.
Как можно увидеть со снимка, все тестовые методы были
выполнены успешно. Что бы рассмотреть подробнее некоторые из тестовых методов,
ниже представлено содержимое класса «AccessLevelTets»
Листинг класса «AccessLevelTets»:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {
"classpath*:applicationContext.xml"})class AccessLevelTest {
@AutowiredAccessRepository accessRepository;
@AutowiredGroupRepository groupDao;
@Testvoid testCreateLevel() throws Exception
{accessLevel = new AccessLevel();.setLevelNumber(123L);groupWorker = new
GroupWorker();.setGroupName("Banjo
Men");.save(groupWorker);.setGroupAccessLevel(groupWorker);.save(accessLevel);getId
= accessLevel.getId();accessLevelTest = accessRepository.findOne(getId);mustEquals=accessLevelTest.getLevelNumber();.assertNotNull("It
was your mistake!", accessLevelTest);.assertEquals((Object) mustEquals,
123L);.delete(getId);mD=
groupWorker.getId();.delete(mD);mustNull=accessRepository.findOne(accessLevel.getId());.assertNull("It
was your mistake", mustNull);
}
@Testvoid testUpdateLevel() throws Exception
{accessLevel = new AccessLevel();.setLevelNumber(123L);groupWorker = new
GroupWorker();.setGroupName("Banjo
Men");.save(groupWorker);.setGroupAccessLevel(groupWorker);.save(accessLevel);accessLevelTest
=
accessRepository.findOne(accessLevel.getId());.setLevelNumber(1234567L);.saveAndFlush(accessLevelTest);mustEquals=
accessLevelTest.getLevelNumber();.assertNotNull("It was your
mistake!", accessLevelTest);.assertEquals((Object)mustEquals, 1234567L);.delete(accessLevel.getId());mD=
groupWorker.getId();.delete(mD);mustNull=accessRepository.findOne(accessLevel.getId());.assertNull("It
was your mistake", mustNull);
}
@Testvoid testDeleteLevel() throws Exception
{accessLevel = new AccessLevel();.setLevelNumber(123L);groupWorker = new
GroupWorker();.setGroupName("Banjo
Men");.save(groupWorker);.setGroupAccessLevel(groupWorker);.save(accessLevel);getId
= accessRepository.findOne(accessLevel.getId()).getId();.delete(getId);mD=
groupWorker.getId();.delete(mD);groupWorkerTest=accessRepository.findOne(getId);.assertNull("It
was your mistake",groupWorkerTest);
}
@Testvoid testGetGroupById() throws Exception
{accessLevel = new AccessLevel();.setLevelNumber(123L);groupWorker = new
GroupWorker();.setGroupName("Banjo
Men");.save(groupWorker);.setGroupAccessLevel(groupWorker);.save(accessLevel);accessLevelTest
= accessRepository.findOne(accessLevel.getId());mustEquals=
accessLevelTest.getLevelNumber();.assertNotNull("It was your
mistake!", accessLevelTest);.assertEquals((Object)mustEquals,
123L);.delete(accessLevel.getId());mD=
groupWorker.getId();.delete(mD);mustNull=accessRepository.findOne(accessLevel.getId());.assertNull("It
was your mistake", mustNull);
}}
.4
Реализация web-интерфейса
Интерфейс информационной системы разработан с учетом того,
чтобы не вызвать дискомфорта при ее использовании. Интерфейс должен отвечать
следующим требованиям:
иметь интуитивно понятную навигацию;
иметь эффективно подобранную цветовую гамму;
предоставлять возможность быстро и качественно
манипулировать элементами навигации для получения данных.
Web-интерфейс является важной частью разрабатываемой
системы. Именно через него оператор будет работать с системой: просматривать
отчеты, содержащие данные о событиях, тревогах системы, а также данные о
сотрудниках, просматривать лог событий системы, добавлять пользователей в
списки доступа к охраняемым объектам.
При входе в систему перед оператором появляется форма
авторизации, в которую он должен ввести свой логин и пароль, чтобы получить
доступ к серверу.
Если пользователь не знает пароль или логин оператора и
пытается его подобрать, система после 3-х неудачных попыток выдаёт сообщение о
блокировке IP адреса. Такой подход необходим для того, чтобы максимально
усложнить подбор пароля пользователем, который не имеет прав работы с данной
системой.
После успешной аутентификации, оператор получает доступ к
интерфейсу по работе с системой.
Интерфейс предоставляет оператору все средства для управления
СКУД, наблюдения за её состоянием и получения отчётов о событиях системы. Нажав на иконку вверху
экрана можно попасть в соответствующий раздел, а именно: управление
пользователями, статистика переходов, управление группами пользователей,
просмотр плана этажей, поиск пользователя в помещениях, просмотреть заработную
плату за текучий месяц, просмотреть список болеющих, отправить рассылку
сотрудникам, выход из системы.
Нажав на кнопку «Группы пользователей», открывается окно,со
списком групп пользователей.Как можно заметить на снимке, в окне “GroupWorkers” присутствуют 3 кнопки- добавить, изменить и удалить. Такое же окно можно
увидеть на жав на кнопку пользователи, или список болеющих.
Список болеющих- очень важный элемент системы, он помогает
автоматизировано посчитать количество заработанных денег за месяц с учетом
больничных и штрафов, за переизбыток проведенного времени, вне рабочего места.
Система сама подсчитывает заработную плату к начислению, в конце месяца и
штрафует нарушителей, согласно тарифу, который можно изменять, нажав кнопку
настройки. Таким образом система полезна не только в контексте безопасности, но
и берет на себя часть работу бухгалтера.
Нажав на кнопку «удалить», «добавить» или «изменить»
откроется окно, с соответствующими полями, что позволит произвести выбранную
операцию.
Интерфейс реализован при помощи jquery и ajax, что позволяет
не перезагружать страницы, при каждом же действии. Система позволяет открыть
все окна управления и переключатся между ними, как в графической ОС, без
обновления самой страницы, что экономит время и делает систему более удобной в
использовании.
СКУД позволяет отыскать нужного сотрудника, и вывести
местоположение его на территории предприятия, если он находится на предприятии
в текущий момент. Различные списки в системе можно фильтровать и выравнивать по
различным критериям.
Так же была разработана интерактивная карта, которая
отображает местонахождение сотрудников на на схематическом изображении
кабинета, на плане помещения и отображение списка персонала находящегося в
кабинете. Для того что бы просмотреть список пользователей достаточно навести
на изображение кабинета и произвести щелчок левой кнопкой мыши по объекту.
С целью расширения функциональности системы был разработан
модуль «карта территории» предприятия. В случае если территория предприятия
занимает более чем одно здание, таким образом можно централизировать контроль и
управление доступом. Для наглядности модуля- создан скриншот интерфейса данного
модуля.
Выводы
Целью данной дипломной работы являлась разработка системы
контроля и управления доступом, позволяющей предотвратить несанкционированный
доступ к охраняемым объектам предприятия, а также, позволяющей сохранить и
затем просмотреть информацию о событиях в системе за определенный промежуток
времени.
Для достижения поставленной цели был проведен анализ подобных
существующих компьютерных систем контроля и управления доступом. Был выбран RFID метод идентификации
пользователя по его подписи. Этот метод был выбран за счет низких материальных
затрат на построение системы, а также сыграла роль относительная привычность
данного метода идентификации для рядового пользователя.
Программная часть реализована с архитектурой клиент/сервер. В
ходе выполнения данной квалификационной работы специалиста была разработана
база данных и толстый клиент (Web-приложение) для оператора.
Результатом разработки являются архитектура разработанной
системы, структура и схема электрическая принципиальная устройства контроля и
управления доступом.
Особенностью данной разработки является
использование микроконтроллера SK-iMX53 в качестве управляющего элемента
устройства контроля и управления доступом. Благодаря этому устройство обладает
широкой функциональностью, а также, высоким уровнем защиты передаваемых по сети
данных.
Применение данной системы даст возможность качественно
улучшить решение таких важных задач как безопасность труда, соблюдение трудовой
дисциплины, сохранность материальных ценностей, коммерческая тайна.
В разделе охраны труда проведен расчет искусственного
освещения, необходимого для обеспечения освещенности согласно нормам во всем
здании банка, а также описаны условия, которые необходимо обеспечить для
нормальной работы пользователей с ВДТ ЭВМ.
Разработка данной системы дает следующие преимущества:
- возможность контролировать рабочее время
сотрудников;
- контроль и ограничение доступа посетителей
и в то же время беспрепятственный проход сотрудников;
- организация базы данных на каждого
сотрудника.
Планируется дальнейшее расширение функций данной системы с
пожарной и охранной сигнализациями, а также системой видеонаблюдения.
Перечень использованных источников
1 ГОСТ 51241-2008 “Средства и системы контроля
и управления доступом. Классификация. Общие технические требования. Методы
испытаний”.
2 Биометрическая идентификация и
аутентификация [Электронный ресурс]. - Режим доступа: http://www.gmmcc.com.ua
// ?id=76. - Название с экрана.
Интегрированные системы безопасности
[Электронный ресурс]. - Режим доступа:
http://www.aamsystems.ru/publications/?id=132. - Название с экрана.
Биометрические системы контроля доступа
[Электронный ресурс]. - Режим доступа:
http://ien.izi.vlsu.ru/teach/books/910/theory.html#_1. - Название с экрана.
Контроль доступа: устройства контроля
доступа ведущих мировых производителей [Электронный ресурс]. - Режим доступа:
http://www.armosystems.ru/system/hid_skd.ahtm. - Название с экрана.
6 Panasonic - Системы безопасности
[Электронный ресурс]. - Режим доступа:
http://security.panasonic.ru/Catalog/Receiver/WV-BM-ET200.html. - Название с
экрана.
Новости о мобильных устройствах и
технологиях [Электронный ресурс]. - Режим доступа: URL:
http://naviny.by/rubrics/computer/2005/11/13/art_12. - Название с экрана.
Блог о гаджетах: новости, статьи,
заметки [Электронный ресурс]. - Режим доступа: URL:
http://telnews.ru/Nadezhda_Balovsyak/c101972. - Название с экрана.
Системы видеонаблюдения, контроля
доступа, охранные сигнализации и домофоны (видеодомофоны), видеорегистраторы
[Электронный ресурс]. - Режим доступа: URL:
http://forward.lg.ua/pages/control.html. - Название с экрана.
Журнал “КомпьютерПресс”: (Многообразие
сенсорных дисплеев) / С.А. Асмаков // Б.М. Молчанов - 2010. - №8. - Режим
доступа к журналу: http://www.compress.ru/archive.aspx.
Беленков В.Д. Электронные системы
идентификации подписей. Защита информации. Конфидент. 1997, №6, с. 39-42.
Иванов А.И., Сорокин И.А. Автоматическая
система идентификации личности по динамике подписи. // Новые промышленные
технологии. №6, 1993, с. 56-63.
Державні санітарні правила і норми
роботи з візуальними дисплейними терміналами електронно-обчислювальних машин.
ДСанПІН 3.3.2.007-98. Головне санітарно-епідеміологічне управління України. Київ
1998. - 24 с.
Охорона праці. Методичні рекомендації до
дипломного проекту для студентів инженерно-технічних спеціальностей / Уклад.:
Л.Д. Косухіна, О.И. Сиза. - Чернігів: ЧТІ, 1997.- 26 с.
Справочник по охране труда на
промышленном предприятии / К.Н. Ткачук, Д.Ф. Иванчук, Р.В. Сабарно, А.Г.
Степанов - К.: Тэхника, 1991.
Лебедев О.Н. Микросхемы памяти и их
применение. - М.: Радио и связь, 1990. - 160 с.
17 Дипломне проектування.
Організаційно-методичні вказівки до дипломного проектування для студентів
спеціальностей 7.05010201 - “Комп’ютерні системи та мережі”, 7.05010202 -
“Системне програмування”, 7.05010203 - “Спеціалізовані комп’ютерні системи”.
/Укл.: Акименко А.М., Зінченко А.Л., Нікитенко Є.В., Пріла О.А., Роговенко
А.І., Стасюк С.С., Хижняк А.В.- Чернігів: ЧДТУ, 2011. - 39 с.
18 Структура і оформлення кваліфікаційних та
курсових робіт. Методичні вказівки для студентів професійного спрямування
“Комп’ютерна інженерія” / Уклад. А.І. Вервейко, С.О. Нестеренко, Є.В. Нікітенко.
- Чернігів: ЧДТУ, 2002. - 28 с., рос. мовою.
Приложение 1
РЕАЛИЗАЦИЯ КЛАСОВ ДОМЕНОВ
1 1.1 Класс AccessLevel.java
package ua.com.lejastu.entity;
javax.persistence.*;java.io.Serializable;
/**
* User: LejaStu
*/
// @Component
@Entity
@Table(name = "ACCESSLEVEL")class
AccessLevel implements IId {
/**
* Fields of Class AccessLevel *
*/
@Id
@GeneratedValue(strategy =
GenerationType.AUTO)Long id;
@ColumnLong levelNumber;
@ManyToOne
@JoinColumn(name =
"group_id",referencedColumnName = "id",
nullable=true)GroupWorker groupAccessLevel;
/**
* Constructors of Class AccessLevel *
*/AccessLevel() {
}
AccessLevel(Long levelNumber) {.levelNumber =
levelNumber;
}
/**
* Getters & Setters of Class AccessLevel *
*/
Long getId() {id;
}
void setId(Long id) {.id = id;
}
Long getLevelNumber() {levelNumber;
}
void setLevelNumber(Long levelNumber)
{.levelNumber = levelNumber;
}
GroupWorker getGroupAccessLevel()
{groupAccessLevel;
}
void setGroupAccessLevel(GroupWorker
groupAccessLevel) {.groupAccessLevel = groupAccessLevel;
}
}
2 1.2 Класс
Buildings.java
package ua.com.lejastu.entity;
javax.persistence.*;java.io.Serializable;java.util.List;
/**
* User: LejaStu
@Entity
@Table(name = "BUILDINGS")class
Buildings implements IId {
/**
* Fields of Class BuildingsRepository *
*/
@Id
@GeneratedValue(strategy =
GenerationType.AUTO)Long id;
@ColumnString address;
@ColumnInteger housingNumber;
@ColumnString pathFile;
@OneToMany(mappedBy =
"buildingsStage")List<Stage> buildingsStageList;
/**
* Constructor of Class BuildingsRepository *
*/
Buildings() {
}
Buildings(String address, String pathFile)
{.address = address;.pathFile = pathFile;
}
/**
* Getters & Setters of Class
BuildingsRepository *
*/
Long getId() {id;
}
void setId(Long id) {.id = id;
}
String getAddress() {address;
}
void setAddress(String address) {.address =
address;
}
Integer getHousingNumber() {housingNumber;
}
void setHousingNumber(Integer housingNumber)
{.housingNumber = housingNumber;
}
String getPathFile() {pathFile;
}
public void setPathFile(String pathFile)
{.pathFile = pathFile;
}
List<Stage> getBuildingsStageList()
{buildingsStageList;
}
}
3 1.3 Класс Calendaring.java
package ua.com.lejastu.entity;
javax.persistence.*;java.io.Serializable;java.util.Date;java.util.List;
/**
* User: LejaStu
*/
@Entity
@Table(name = "CALENDARING")class
Calendaring implements IId {
/**
* Fields of Class CalendaringDao *
*/
@Id
@GeneratedValue(strategy =
GenerationType.AUTO)Long id;
@Column
@Temporal(TemporalType.DATE)Date date;
@OneToMany(mappedBy =
"calendarTrans")List<Transition> calendarTransList;
/**
* Constructors of Class Calendaring *
*/Calendaring() {
}
Calendaring(Date date) {.date = date;
}
Long getId() {id;
}
void setId(Long id) {.id = id;
}
Date getDate() {date;
}
void setDate(Date date) {.date = date;
}
List<Transition> getCalendarTransList()
{calendarTransList;
}
void setCalendarTransList(List<Transition>
calendarTransList) {.calendarTransList = calendarTransList;
}
}
4 1.4 Класс
GroupWorker.java
# package ua.com.lejastu.entity;
javax.persistence.*;java.io.Serializable;java.util.Date;java.util.List;
/**
* User: LejaStu
*/
@Entity
@Table(name = "CALENDARING")class
Calendaring implements IId {
/**
* Fields of Class CalendaringDao *
*/
@Id
@GeneratedValue(strategy =
GenerationType.AUTO)Long id;
@Column
@Temporal(TemporalType.DATE)Date date;
@OneToMany(mappedBy =
"calendarTrans")List<Transition> calendarTransList;
/**
* Constructors of Class Calendaring *
*/Calendaring() {
}
Calendaring(Date date) {.date = date;
}
Long getId() {id;
}
void setId(Long id) {.id = id;
}
Date getDate() {date;
}
void setDate(Date date) {.date = date;
}
List<Transition> getCalendarTransList()
{calendarTransList;
}
void setCalendarTransList(List<Transition>
calendarTransList) {.calendarTransList = calendarTransList;
}
}
5 1.5 Класс
MissByIll.java
package ua.com.lejastu.entity;
javax.persistence.*;java.io.Serializable;java.util.Date;
/**
* User: LejaStu
*/
@Entity
@Table(name = "MISSBYILL")class
MissByIll implements IId {
/**
* Fields of Class MissByIll *
*/
@Id
@GeneratedValue(strategy =
GenerationType.AUTO)Long id;
@Column
@Temporal(TemporalType.DATE)Date fromDate;
@Column
@Temporal(TemporalType.DATE)Date toDate;
@ManyToOne
@JoinColumn(name =
"user_id",referencedColumnName = "id", nullable=false)User
userMissed;
/**
* Constructors of Class MissByIll *
*/
MissByIll() {
}
MissByIll(Date fromDate, Date toDate) {.fromDate
= fromDate;.toDate = toDate;
}
/**
* Getters & Setters of Class MissByIll *
*/
Long getId() {id;
}
void setId(Long id) {.id = id;
}
Date getFromDate() {fromDate;
}
void setFromDate(Date from) {.fromDate = from;
}
Date getToDate() {toDate;
}
public void setToDate(Date to) {.toDate = to;
}
User getUserMissed() {userMissed;
}
void setUserMissed(User userMissed) {.userMissed
= userMissed;
}
}
6 1.6 Класс
RealSalary.java
package ua.com.lejastu.entity;
javax.persistence.*;java.io.Serializable;java.util.Date;
/**
* User: LejaStu
*/
@Entity
@Table(name = "REALSALARY")class
RealSalary implements IId {
/**
* Fields of Class RealSalaryForm *
*/
@Id
@GeneratedValue(strategy =
GenerationType.AUTO)Long id;
@Column
@Temporal(TemporalType.DATE)Date month;
@ColumnLong salary;
@ColumnLong realTimeWork;
@ManyToOne
@JoinColumn(name =
"user_id",referencedColumnName = "id", nullable=false)User
userSalary;
/**
* Constructors of Class RealSalaryForm *
*/
RealSalary() {
}
RealSalary(Date month, long salary, long
realTimeWork) {.month = month;.salary = salary;.realTimeWork = realTimeWork;
}
/**
* Getter & Setters of Class RealSalaryForm *
*/
Long getId() {id;
}
void setId(Long id) {.id = id;
}
Date getMonth() {month;
}
void setMonth(Date month) {.month = month;
}
Long getSalary() {salary;
}
void setSalary(Long salary) {.salary = salary;
}
Long getRealTimeWork() {realTimeWork;
}
void setRealTimeWork(Long realTimeWork)
{.realTimeWork = realTimeWork;
}
User getUserSalary() {userSalary;
}
void setUserSalary(User userSalary) {.userSalary
= userSalary;
}
}
7 1.7 Класс Room.java
package ua.com.lejastu.entity;
javax.persistence.*;java.io.Serializable;java.util.List;
/**
* User: LejaStu
*/
@Entity
@Table(name = "ROOM")class Room implements
IId {
/**
* Fields of Class Room *
*/
@Id
@GeneratedValue(strategy =
GenerationType.AUTO)Long id;
@ColumnInteger number;
@ColumnInteger accessLevel;
@OneToMany(mappedBy = "roomTrans",
fetch=FetchType.LAZY)List<Transition> roomTransList;
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name =
"stage_id",referencedColumnName = "id")Stage stageRoom;
/**
* Constructors of Class Room *
*/
Room() {
}
public Room(int number, int accessLevel) {.number
= number;.accessLevel = accessLevel;
}
/**
* Getters & Setters of Class Room *
*/
Long getId() {id;
}
void setId(Long id) {.id = id;
}
Integer getNumber() {number;
}
void setNumber(Integer number) {.number = number;
}
Integer getAccessLevel() {accessLevel;
}
void setAccessLevel(Integer accessLevel) {.accessLevel
= accessLevel;
}
List<Transition> getRoomTransList()
{roomTransList;
}
Stage getStageRoom() {stageRoom;
}
void setStageRoom(Stage stageRoom) {.stageRoom =
stageRoom;
}
}
8 1.8 Класс
RealSalary.java
package ua.com.lejastu.entity;
javax.persistence.*;java.io.Serializable;java.util.List;
/**
* User: LejaStu
*/
@Entity
@Table(name = "STAGE")class Stage
implements IId {
/**
* Fields of Class Room *
*/
@Id
@GeneratedValue(strategy =
GenerationType.AUTO)Long id;
@ColumnInteger stageNumber;
@ColumnString pathSvg;
@OneToMany(mappedBy = "stageRoom",fetch
= FetchType.LAZY)List<Room> stageRoomList;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name =
"building_id",referencedColumnName = "id")Buildings
buildingsStage;
Stage() {
}
Stage(int stageNumber, String pathSvg)
{.stageNumber = stageNumber;.pathSvg = pathSvg;
}
Long getId() {id;
}
void setId(Long id) {.id = id;
}
Integer getStageNumber() {stageNumber;
}
void setStageNumber(Integer stageNumber)
{.stageNumber = stageNumber;
}
String getPathSvg() {pathSvg;
}
void setPathSvg(String pathSvg) {.pathSvg =
pathSvg;
}
List<Room> getStageRoomList()
{stageRoomList;
}
Buildings getBuildingsStage() {buildingsStage;
}
public void setBuildingsStage(Buildings
buildingsStage) {.buildingsStage = buildingsStage;
}
}
9 1.9 Класс
Transition.java
package ua.com.lejastu.entity;
javax.persistence.*;java.io.Serializable;java.util.Date;
/**
* User: LejaStu
*/
@Entity
@Table(name = "TRANSITION")class
Transition implements IId {
/**
* Fields of Class TransitionRepository *
*/
@Id
@GeneratedValue(strategy =
GenerationType.AUTO)Long id;
@ColumnLong spendTime;
@ColumnString io;
@ColumnLong fromRoom;
@ColumnLong toRoom;
@ColumnBoolean isAccessPermitted;
@ColumnString reason;
@Column
@Temporal(TemporalType.DATE)Date timeIn;
@Column
@Temporal(TemporalType.DATE)Date timeOut;
@ManyToOne
@JoinColumn(name =
"user_id",referencedColumnName = "id")User userTransition;
@ManyToOne
@JoinColumn(name =
"calendaring_id",referencedColumnName = "id")Calendaring
calendarTrans;
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name =
"room_id",referencedColumnName = "id")Room roomTrans;
/**
* Constructors of Class TransitionRepository *
*/
Transition() {
}
Transition(Long fromRoom, Long toRoom, Boolean
isAccessPermitted, String reason, Date timeIn) {.fromRoom = fromRoom;.toRoom =
toRoom;.isAccessPermitted = isAccessPermitted;.reason = reason;.timeIn =
timeIn;
}
/**
* Getters of Class TransitionRepository *
*/
Long getId() {id;
}
void setId(Long id) {.id = id;
}
Long getSpendTime() {spendTime;
}
void setSpendTime(Long spendTime) {.spendTime =
spendTime;
}
String getIo() {io;
}
void setIo(String io) {.io = io;
}
Long getFromRoom() {fromRoom;
}
void setFromRoom(Long from) {.fromRoom = from;
}
Long getToRoom() {toRoom;
public void setToRoom(Long to) {.toRoom = to;
}
Boolean getIsAccessPermitted()
{isAccessPermitted;
}
void setIsAccessPermitted(Boolean
isAccessPermitted) {.isAccessPermitted = isAccessPermitted;
}
String getReason() {reason;
}
void setReason(String reason) {.reason = reason;
}
Date getTimeIn() {timeIn;
}
void setTimeIn(Date timeIn) {.timeIn = timeIn;
}
Date getTimeOut() {timeOut;
}
void setTimeOut(Date timeOut) {.timeOut =
timeOut;
}
User getUserTransition() {userTransition;
}
void setUserTransition(User userTransition)
{.userTransition = userTransition;
}
Calendaring getCalendarTrans() {calendarTrans;
}
void setCalendarTrans(Calendaring calendarTrans)
{.calendarTrans = calendarTrans;
}
Room getRoomTrans() {roomTrans;
}
void setRoomTrans(Room roomTrans) {.roomTrans =
roomTrans;
}
}
10 1.10 Класс User.java
package ua.com.lejastu.entity;
javax.persistence.*;java.io.Serializable;java.util.ArrayList;java.util.Date;java.util.List;
/**
* User: LejaStu
*/
@Entity
@Table(name = "USER")class User
implements IId {
/**
* Fields of Class User *
*/
@Id
@GeneratedValue(strategy =
GenerationType.AUTO)Long id;
@ColumnString firstName;
@ColumnString lastName;
@Column
@Temporal(TemporalType.DATE)Date birthDay;
@ColumnString job;
@ColumnLong salary;
@ColumnString address;
@ColumnString phone;
@ColumnString passportData;
@ColumnString photo;
@ColumnString departmentName;
@ColumnLong obligedSpendTime;
@OneToMany(mappedBy = "userTransition")List<Transition>
userTransitionList = new ArrayList<Transition>();
@OneToMany(mappedBy =
"userMissed")List<MissByIll> userMissedList = new
ArrayList<MissByIll>();
@OneToMany(mappedBy =
"userSalary")List<RealSalary> userSalaryList = new
ArrayList<RealSalary>();
@ManyToOne
@JoinColumn(name =
"group_id",referencedColumnName = "id",
nullable=false)GroupWorker groupUser;
/**
* Const of User's Class *
*/
User() {
}
User(String firstName, String lastName, Date
birthDay, String job, long salary, long obligedSpendTime,GroupWorker groupUser)
{.firstName = firstName;.lastName = lastName;.birthDay = birthDay;.job =
job;.salary = salary;.obligedSpendTime = obligedSpendTime;.groupUser=groupUser;
}
Long getId() {id;
}
void setId(Long id) {.id = id;
}
String getFirstName() {firstName;
}
void setFirstName(String firstName) {.firstName =
firstName;
}
String getLastName() {lastName;
}
void setLastName(String lastName) {.lastName =
lastName;
}
Date getBirthDay() {birthDay;
}
public void setBirthDay(Date birthDay) {.birthDay
= birthDay;
}
String getJob() {job;
}
void setJob(String job) {.job = job;
}
Long getSalary() {salary;
}
void setSalary(Long salary) {.salary = salary;
}
String getAddress() {address;
}
void setAddress(String address) {.address =
address;
}
String getPhone() {phone;
}
void setPhone(String phone) {.phone = phone;
}
String getPassportData() {passportData;
}
void setPassportData(String passportData) {.passportData
= passportData;
}
String getPhoto() {photo;
}
void setPhoto(String photo) {.photo = photo;
}
String getDepartmentName() {departmentName;
}
void setDepartmentName(String departmentName)
{.departmentName = departmentName;
}
public Long getObligedSpendTime()
{obligedSpendTime;
}
void setObligedSpendTime(Long obligedSpendTime)
{.obligedSpendTime = obligedSpendTime;
}
List<Transition> getUserTransitionList()
{userTransitionList;
}
void setUserTransitionList(List<Transition>
userTransitionList) {.userTransitionList = userTransitionList;
}
List<MissByIll> getUserMissedList()
{userMissedList;
}
void setUserMissedList(List<MissByIll>
userMissedList) {.userMissedList = userMissedList;
}
List<RealSalary> getUserSalaryList()
{userSalaryList;
}
void setUserSalaryList(List<RealSalary>
userSalaryList) {.userSalaryList = userSalaryList;
}
GroupWorker getGroupUser() {groupUser;
}
void setGroupUser(GroupWorker groupUser)
{.groupUser = groupUser;
}
}
11 1.10 Класс
Workbench.java
package ua.com.lejastu.entity;
javax.persistence.*;java.io.Serializable;
/**
* User: LejaStu
*/
@Entity
@Table(name = "WORKBENCH")class
Workbench implements IId {
/**
* Fields of Class WorkbenchDao *
*/
@Id
@GeneratedValue(strategy =
GenerationType.AUTO)Long id;
@ColumnLong workBenchNumber;
@ManyToOne
@JoinColumn(name =
"group_id",referencedColumnName = "id",
nullable=false)GroupWorker groupWorkbench;
/**
* Constructors of Class WorkbenchDao *
*/Workbench() {
}
Workbench(Long workBenchNumber) {.workBenchNumber
= workBenchNumber;
}
/**
* Getters of Class WorkbenchDao *
*/
Long getId() {id;
}
void setId(Long id) {.id = id;
}
public Long getWorkBenchNumber()
{workBenchNumber;
}
void setWorkBenchNumber(Long workBenchNumber)
{.workBenchNumber = workBenchNumber;
}
GroupWorker getGroupWorkbench() {groupWorkbench;
}
void setGroupWorkbench(GroupWorker
groupWorkbench) {.groupWorkbench = groupWorkbench;
}
}
2 WEB-ИНТЕРФЕЙС СИСТЕМЫ
2.1 Файл index.java
package ua.com.lejastu.design;
com.vaadin.annotations.Theme;com.vaadin.annotations.Title;com.vaadin.event.MouseEvents;com.vaadin.server.ThemeResource;com.vaadin.server.VaadinRequest;com.vaadin.ui.*;ua.com.lejastu.design.inform.*;
java.util.HashMap;
/**
* User: LejaStu
*/
@Title("Skudy")
@Theme("skudytheme")class Index extends
UI {navigation = new
HorizontalSplitPanel();body;border;header;components;main;headBord;logo;<Integer,Component>
levels;buttonGroup, buttonUser, buttonAccessLevel, littleButtonBuildings,
littleButtonStage, buttonMisByIll,buttonWorkbench, buttonTransition,buttonRoom,buttonVisual;HashMap<String,
Window> windowsProperties;
@Overridevoid init(VaadinRequest request) {= new
Components();();();();();();();();();
}
void initLayout() {= components.initMain();=
components.initHeader();= components.initBorder();= components.initBody();=
components.initHeadBord();topMenu= new
Panel();.setHeight("50%");.setSizeFull();(main);.addComponent(header);.addComponent(topMenu);.addComponent(border);.addComponent(body);.setExpandRatio(body,
80);.setExpandRatio(border, 0);.setExpandRatio(header,
20);.setSizeFull();.addComponent(headBord);resource = new
ThemeResource("img/eye.png");=
components.initImageFromResource(resource);.setStyleName("logo");.addComponent(logo);=
components.initMainMenu();.setSplitPosition(16);.setLocked(true);.addComponent(navigation);.addComponent(levels.get(0));
}
Boolean findWindow(String windowName)
{(windowsProperties == null) {= new HashMap<String, Window>();
}windowsProperties.containsKey(windowName);
}
Window getWindow(String windowName) {windowsProperties.get(windowName);
}
void windowsPropertiesDelete(String
windowName){.remove(windowName);
}
void initGroupForm() {= (Panel)
levels.get(7);.addClickListener(new MouseEvents.ClickListener() {
@Overridevoid click(MouseEvents.ClickEvent event)
{temp = null;(findWindow("GroupWorkers") == false) {{gr = new
GroupWorkerForm();= gr.init();
} catch (ClassNotFoundException e)
{.printStackTrace();
} catch (InstantiationException e)
{.printStackTrace();
} catch (IllegalAccessException e)
{.printStackTrace();
}(temp);.put("GroupWorkers", temp);
} else {=
getWindow("GroupWorkers");.focus();
}.addCloseListener(new Window.CloseListener(){
@Overridevoid windowClose(Window.CloseEvent e)
{("GroupWorkers");
}
});
}
});
}
void initUserForm(){= (Panel)
levels.get(8);.addClickListener(new MouseEvents.ClickListener() {
@Overridevoid click(MouseEvents.ClickEvent event)
{temp;(findWindow("Users") == false) {= null;{us = new UserForm();=
us.init();
} catch (ClassNotFoundException e)
{.printStackTrace();
} catch (InstantiationException e)
{.printStackTrace();
} catch (IllegalAccessException e)
{.printStackTrace();
}(temp);.put("Users", temp);
} else {= getWindow("Users");.focus();
}.addCloseListener(new Window.CloseListener(){
@Overridevoid windowClose(Window.CloseEvent e)
{("Users");
}
});
}
});
}
void initAccessLevelForm(){= (Panel)
levels.get(9);.addClickListener(new MouseEvents.ClickListener() {
@Overridevoid click(MouseEvents.ClickEvent event)
{temp;(findWindow("AccessLevel") == false) {= null;{al = new
AccessLevelForm();= al.init();
} catch (ClassNotFoundException e)
{.printStackTrace();
} catch (InstantiationException e)
{.printStackTrace();
} catch (IllegalAccessException e)
{.printStackTrace();
}(temp);.put("AccessLevel", temp);
} else {=
getWindow("AccessLevel");.focus();
}.addCloseListener(new Window.CloseListener(){
@Overridevoid windowClose(Window.CloseEvent e)
{("AccessLevel");
}
});
}
});
}
private void initMissByIllForm(){= (Panel)
levels.get(10);.addClickListener(new MouseEvents.ClickListener() {
@Overridevoid click(MouseEvents.ClickEvent event)
{temp;(findWindow("MissByIll") == false) {= null;{mi = new
MissByIllForm();= mi.init();
} catch (ClassNotFoundException e)
{.printStackTrace();
} catch (InstantiationException e)
{.printStackTrace();
} catch (IllegalAccessException e)
{.printStackTrace();
}(temp);.put("MissByIll", temp);
} else {=
getWindow("MissByIll");.focus();
}.addCloseListener(new Window.CloseListener(){
@Overridevoid windowClose(Window.CloseEvent e)
{("MissByIll");
}
});
}
});
}
void initRoomForm(){= (Panel)
levels.get(11);.addClickListener(new MouseEvents.ClickListener() {
@Overridevoid click(MouseEvents.ClickEvent event)
{temp;(findWindow("Room") == false) {= null;{bs = new RoomForm();=
bs.init();
} catch (ClassNotFoundException e)
{.printStackTrace();
} catch (InstantiationException e)
{.printStackTrace();
} catch (IllegalAccessException e)
{.printStackTrace();
}(temp);.put("Room", temp);
} else {= getWindow("Room");.focus();
}.addCloseListener(new Window.CloseListener(){
@Overridevoid windowClose(Window.CloseEvent e)
{("Room");
}
});
}
});
}
void initTransitionForm(){= (Panel)
levels.get(12);.addClickListener(new MouseEvents.ClickListener() {
@Overridevoid click(MouseEvents.ClickEvent event)
{temp;(findWindow("Transition") == false) {= null;{tr = new
TransitionForm();= tr.init();
} catch (ClassNotFoundException e)
{.printStackTrace();
} catch (InstantiationException e)
{.printStackTrace();
} catch (IllegalAccessException e)
{.printStackTrace();
}(temp);.put("Transition", temp);
} else {=
getWindow("Transition");.focus();
}.addCloseListener(new Window.CloseListener(){
@Overridevoid windowClose(Window.CloseEvent e)
{("Transition");
}
});
}
});
}
void initWorkbenchForm(){= (Panel)
levels.get(13);.addClickListener(new MouseEvents.ClickListener() {
@Overridevoid click(MouseEvents.ClickEvent event)
{temp;(findWindow("Workbench") == false) {= null;{wb = new
WorkbenchForm();= wb.init();
} catch (ClassNotFoundException e) {.printStackTrace();
} catch (InstantiationException e)
{.printStackTrace();
} catch (IllegalAccessException e)
{.printStackTrace();
}(temp);.put("Workbench", temp);
} else {=
getWindow("Workbench");.focus();
}.addCloseListener(new Window.CloseListener(){
@Overridevoid windowClose(Window.CloseEvent e)
{("Workbench");
}
});
}
});
}
}
2.2 Файл Components.java
package ua.com.lejastu.design;
com.vaadin.server.ThemeResource;com.vaadin.ui.*;
javax.persistence.Column;javax.persistence.Id;java.lang.annotation.Annotation;java.util.HashMap;
/**
* User: LejaStu
*/class Components {
Window intWindow(Class aClass) {className =
aClass.getSimpleName() + "s";window = new
Window(className);.setWidth("60%");.setHeight("60%");.setPositionX(300);.setPositionY(200);window;
}
Table initTable(Object o) {.lang.reflect.Field
fields[] = o.getClass().getDeclaredFields();a = fields.length;table = new
Table();
(int i = 0; i < a; i++) {annotations[] =
fields[i].getAnnotations();(int k = 0; k < annotations.length; k++)
{annotation = annotations[k];(annotation.annotationType().getSimpleName().equals(Column.class.getSimpleName())
||
annotation.annotationType().getSimpleName().equals(Id.class.getSimpleName()))
{.addContainerProperty(fields[i].getName(), fields[i].getType(), null);
}
}
}.setSizeFull();table;
}
VerticalLayout initMain() {main = new
VerticalLayout();.setStyleName("backcol");.setSizeFull();main;
}
HorizontalLayout initBorder() {border = new
HorizontalLayout();.setSizeFull();border;
}
HorizontalLayout initHeader() {header = new HorizontalLayout();.setWidth("100%");.setStyleName("header");.setSizeFull();header;
}
HorizontalLayout initBody() {body = new
HorizontalLayout();.setStyleName("workspace");.setWidth("100%");body;
}
VerticalSplitPanel initHeadBord() {headBord = new
VerticalSplitPanel();.setSplitPosition(0);.setLocked(true);headBord;
}
Image initImageFromResource(ThemeResource
resource) {image = new Image(null, resource);image;
}
HorizontalSplitPanel initNavigation() {navigation
= new HorizontalSplitPanel();.setSplitPosition(16);.setLocked(true);navigation;
}
HashMap<Integer,Component> initMainMenu()
{b1 = new Panel();b2 = new Panel();b3 = new Panel();mainMenu = new
VerticalLayout();.setSizeFull();level1 = new
HorizontalLayout();.setHeight("100%");.setWidth("100%");.addComponent(level1);.setContent(new
Label("Group"));.setSizeFull();.setContent(new
Label("User"));.setSizeFull();.addComponent(b1);.addComponent(b2);.setExpandRatio(b1,
1);.setExpandRatio(b2, 1);level2 = new HorizontalLayout();.setHeight("100%");.setWidth("100%");.addComponent(level2);.setContent(new
Label("Transition"));.setSizeFull();b4 = new
Panel();.setSizeFull();.addComponent(b3);.addComponent(b4);.setExpandRatio(b3,
1);.setExpandRatio(b4, 1);level3 = new HorizontalLayout();.setHeight("100%");.setWidth("100%");.addComponent(level3);b5
= new Panel();.setSizeFull();b6 = new
Panel();.setSizeFull();.addComponent(b5);.addComponent(b6);.setExpandRatio(b5,
1);.setExpandRatio(b6, 1);level4 = new
HorizontalLayout();.setHeight("100%");.setWidth("100%");.addComponent(level4);b7
= new Panel();.setSizeFull();b8 = new
Panel();.setSizeFull();.addComponent(b7);.addComponent(b8);.setExpandRatio(b7,
1);.setExpandRatio(b8, 1);
// HorizontalLayout level5 = new
HorizontalLayout();
// level5.setHeight("100%");
// level5.setWidth("100%");
// mainMenu.addComponent(level5);
// Panel b9 = new Panel();
// b9.setSizeFull();
// Panel b10 = new Panel();
// b10.setSizeFull();
// level5.addComponent(b9);
// level5.addComponent(b10);
// level5.setExpandRatio(b9, 1);
// level5.setExpandRatio(b10, 1);level6 = new
HorizontalLayout();
// level5.setHeight("100%");
// level5.setWidth("100%");
//
mainMenu.addComponent(level5);<Integer,Component> componentsOnBrowser=
new HashMap<Integer,Component>();.put(0,mainMenu);.put(1,level1);.put(2,level2);.put(3,level3);.put(4,level4);
//
componentsOnBrowser.put(5,level5);.put(6,level6);.put(6,level6);.put(6,level6);.put(7,b1);.put(8,b2);.put(9,b3);.put(10,b4);.put(11,b5);.put(12,b6);.put(13,b7);.put(14,b8);
// componentsOnBrowser.put(15,b9);
// componentsOnBrowser.put(16,b10);
// Object[] levels = {mainMenu, level1, level2,
level3, level4, level5, level6, b1, b2, b3, b4, b5, b6, b7, b8, b9,
b10};componentsOnBrowser;
}
}
2.3 Файл AbstractForm.java
package ua.com.lejastu.design.inform;
import
com.vaadin.data.Container;com.vaadin.server.VaadinServlet;com.vaadin.ui.*;org.springframework.data.repository.PagingAndSortingRepository;ua.com.lejastu.design.Components;ua.com.lejastu.design.SpringContextHelper;ua.com.lejastu.entity.IId;
java.lang.reflect.ParameterizedType;java.lang.reflect.Type;
/**
* User: LejaStu
*/
abstract class AbstractForm<BEANTYPE extends
IId> extends Window {static AbstractForm instance;components = new
Components();<BEANTYPE, Long> repository;Class<?>
aClass;window;table = new Table();add = new Button();change = new
Button();remove = new Button();container=new String();operationLayout = new
VerticalLayout();
helper = new
SpringContextHelper(VaadinServlet.getCurrent().getServletContext());s =
"ua.com.lejastu.repository.".concat(aClass.getSimpleName()).concat("Repository");c
= Class.forName(s);= (PagingAndSortingRepository) helper.getBean(c);=
"ua.com.lejastu.design.containers.".concat(aClass.getSimpleName()).concat("Container");();
}
void buttonAddInit(){.addClickListener(new
Button.ClickListener() {
@Overridevoid buttonClick(Button.ClickEvent
event) {label = new Label();.setCaption("yhsdjkjdowsopd wi ewjiopp
d");.addComponent(label);
}
});
}
Window init() throws ClassNotFoundException,
IllegalAccessException, InstantiationException {verticalLayout= new
VerticalLayout();.setSizeFull();tablePanel= new
Panel();.setSizeFull();.addComponent(tablePanel);operationPanel= new
HorizontalLayout();.setSizeFull();.addComponent(operationPanel);.setExpandRatio(tablePanel,
3);.setExpandRatio(operationPanel, 1);.addComponent(operationLayout);pn= new
VerticalLayout();.setWidth("100%");.setHeight("5px");.addComponent(pn);.setCaption("add");.setWidth("100px");.setWidth("100px");.setWidth("100px");.setCaption("change");.setCaption("remove");.addComponent(add);.addComponent(change);.addComponent(remove);=
components.intWindow(aClass);obj = aClass.newInstance();=
components.initTable(obj);.setContent(table);.setContent(verticalLayout);c =
Class.forName(container);groupWorkerContainer=
c.newInstance();.setContainerDataSource((Container) groupWorkerContainer);
return window;
}
}
2.4 Файл AbstractDataProvider.java
package ua.com.lejastu.design.containers;
com.vaadin.data.util.BeanContainer;com.vaadin.data.util.BeanItem;org.springframework.data.domain.Page;org.springframework.data.domain.PageRequest;org.springframework.data.repository.PagingAndSortingRepository;ua.com.lejastu.design.SpringContextHelper;ua.com.lejastu.entity.IId;
java.util.ArrayList;java.util.HashMap;java.util.List;java.util.Map;
/**
* author: Oleksandr.Alieinikov
*/abstract class AbstractDataProvider<BEANTYPE
extends IId> extends BeanContainer<Long, BEANTYPE> {
<BEANTYPE, Long> repository;
Map<Long, BEANTYPE> visibleItems = new
HashMap<Long, BEANTYPE>();
String globalFilter = "";
AbstractDataProvider(Class<? super
BEANTYPE> type) {(type);("id");repoName =
"ua.com.lejastu.repository." + type.getSimpleName() +
"Repository";<?> aClass = null;{=
getClass().getClassLoader().loadClass(repoName);
} catch (ClassNotFoundException e)
{.printStackTrace(); //To change body of catch statement use File | Settings |
File Templates.
}
= (PagingAndSortingRepository<BEANTYPE,
Long>) SpringContextHelper.getBean(aClass);
}
abstract Page<BEANTYPE> getPage(PageRequest
pageRequest);
@OverrideBeanItem<BEANTYPE> getItem(Object
itemId) {new BeanItem<BEANTYPE>(visibleItems.get(itemId));
}
@Overrideint size() {<BEANTYPE> page =
getPage(null);page.getContent().size();
}
@OverrideList<Long> getItemIds(int
startIndex, int numberOfIds) {page = Math.round(startIndex /
numberOfIds);pageRequest = new PageRequest(page, numberOfIds);<BEANTYPE>
all = getPage(pageRequest);<BEANTYPE> content =
all.getContent();.clear();(BEANTYPE beantype: content) {.put(beantype.getId(),
beantype);
}<Long> longs = new
ArrayList<Long>(visibleItems.keySet());().clear();().addAll(longs);longs;
}
PagingAndSortingRepository<BEANTYPE, Long>
getRepository() {repository;
}
public String getGlobalFilter() {globalFilter;
}
void setGlobalFilter(String globalFilter)
{.globalFilter = globalFilter;
}
}
3 ФАЙЛЫ КОНФИГУРАЦИИ
3.1 Файл web.xml
<?xml version="1.0"
encoding="UTF-8"?>
<web-app
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
id="WebApp_ID" version="2.5">
<display-name>Vaadin Web
Application</display-name>
<context-param>
<description>Vaadin production
mode</description>
<param-name>productionMode</param-name>
<param-value>true</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>Vaadin</servlet-name>
<servlet-class>com.vaadin.server.VaadinServlet</servlet-class>
<init-param>
<description>Vaadin UI to
display</description>
<param-name>UI</param-name>
<param-value>ua.com.lejastu.design.Index</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>Vaadin</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<!--<resource-ref>-->
<!--<res-ref-name>jdbc/DSTest</res-ref-name>-->
<!--<res-type>javax.sql.DataSource</res-type>-->
<!--<res-auth>Container</res-auth>-->
<!--<res-sharing-scope>Shareable</res-sharing-scope>-->
<!--</resource-ref>-->
</web-app>
3.2 Файл persistence.xml
<?xml version="1.0"
encoding="UTF-8"?>
<persistence
xmlns="http://java.sun.com/xml/ns/persistence":xsi="http://www.w3.org/2001/XMLSchema-instance":schemaLocation="http://java.sun.com/xml/ns/persistence://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"="2.0">
<persistence-unit name="skudy"
transaction-type="RESOURCE_LOCAL">
<class>ua.com.lejastu.entity.User</class>
<class>ua.com.lejastu.entity.Workbench</class>
<class>ua.com.lejastu.entity.RealSalary</class>
<class>ua.com.lejastu.entity.MissByIll</class>
<class>ua.com.lejastu.entity.Calendaring</class>
<class>ua.com.lejastu.entity.User</class>
<class>ua.com.lejastu.entity.AccessLevel</class>
<class>ua.com.lejastu.entity.Buildings</class>
<class>ua.com.lejastu.entity.GroupWorker</class>
<class>ua.com.lejastu.entity.Stage</class>
<class>ua.com.lejastu.entity.Room</class>
</persistence-unit>
</persistence>
3.3 Файл applicationContext.xml
<?xml version="1.0"
encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans":xsi="http://www.w3.org/2001/XMLSchema-instance":aop="http://www.springframework.org/schema/aop":context="http://www.springframework.org/schema/context":tx="http://www.springframework.org/schema/tx"
xmlns:jdbc="http://www.springframework.org/schema/jdbc":jpa="http://www.springframework.org/schema/data/jpa":schemaLocation="http://www.springframework.org/schema/beans://www.springframework.org/schema/beans/spring-beans-3.0.xsd://www.springframework.org/schema/context://www.springframework.org/schema/context/spring-context-3.0.xsd://www.springframework.org/schema/tx://www.springframework.org/schema/tx/spring-tx-3.0.xsd://www.springframework.org/schema/aop://www.springframework.org/schema/aop/spring-aop-3.0.xsd
http://www.springframework.org/schema/jdbc
http://www.springframework.org/schema/jdbc/spring-jdbc.xsd
http://www.springframework.org/schema/data/jpa
http://www.springframework.org/schema/data/jpa/spring-jpa.xsd">
<context:spring-configured />
<context:component-scan base-package="ua.com.lejastu"
/>
<tx:annotation-driven />
<jpa:repositories
base-package="ua.com.lejastu.repository" />
<bean id="dataSource">
<property name="driverClassName"
value="com.mysql.jdbc.Driver"/>
<property name="url"
value="jdbc:mysql://localhost:3306/skudy"/>
<property name="username"
value="root"/>
<property name="password"
value="111111"/>
</bean>
<bean id="entityManagerFactory">
<property name="dataSource"
ref="dataSource" />
<!--<property
name="persistenceXmlLocation"
value="META-INF/persistence.xml" />-->
<!--<property
name="persistenceUnitName" value="skudy"/>-->
<property name="packagesToScan">
<list>
<value>ua.com.lejastu.entity</value>
</list>
</property>
<property
name="jpaVendorAdapter">
<bean>
<property name="showSql"
value="false" />
<property name="generateDdl"
value="true"/>
<property name="database"
value="MYSQL" />
</bean>
</property>
</bean>
<bean id="transactionManager">
<bean>
<bean>
</beans>
3 КЛАССЫ-ТЕСТЫ
3.1 Класс AccessLevelTest
import org.junit.Assert;org.junit.Test;org.junit.runner.RunWith;org.springframework.beans.factory.annotation.Autowired;org.springframework.test.context.ContextConfiguration;org.springframework.test.context.junit4.SpringJUnit4ClassRunner;ua.com.lejastu.dao.AccessLevelDao;ua.com.lejastu.dao.GroupDao;ua.com.lejastu.entity.AccessLevel;ua.com.lejastu.entity.GroupWorker;ua.com.lejastu.repository.AccessRepository;ua.com.lejastu.repository.GroupRepository;
/**
* User: LejaStu
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {
"classpath*:applicationContext.xml"})class AccessLevelTest {
@AutowiredAccessRepository accessRepository;
@AutowiredGroupRepository groupDao;
@Testvoid testCreateLevel() throws Exception
{accessLevel = new AccessLevel();.setLevelNumber(123L);groupWorker = new
GroupWorker();.setGroupName("Banjo
Men");.save(groupWorker);.setGroupAccessLevel(groupWorker);.save(accessLevel);getId
= accessLevel.getId();accessLevelTest =
accessRepository.findOne(getId);mustEquals=accessLevelTest.getLevelNumber();.assertNotNull("It
was your mistake!", accessLevelTest);.assertEquals((Object) mustEquals,
123L);.delete(getId);mD=
groupWorker.getId();.delete(mD);mustNull=accessRepository.findOne(accessLevel.getId());.assertNull("It
was your mistake", mustNull);
}
@Testvoid testUpdateLevel() throws Exception
{accessLevel = new AccessLevel();.setLevelNumber(123L);groupWorker = new
GroupWorker();.setGroupName("Banjo
Men");.save(groupWorker);.setGroupAccessLevel(groupWorker);.save(accessLevel);accessLevelTest
= accessRepository.findOne(accessLevel.getId());.setLevelNumber(1234567L);.saveAndFlush(accessLevelTest);mustEquals=
accessLevelTest.getLevelNumber();.assertNotNull("It was your
mistake!", accessLevelTest);.assertEquals((Object)mustEquals,
1234567L);.delete(accessLevel.getId());mD=
groupWorker.getId();.delete(mD);mustNull=accessRepository.findOne(accessLevel.getId());.assertNull("It
was your mistake", mustNull);
}
@Testvoid testDeleteLevel() throws Exception
{accessLevel = new AccessLevel();.setLevelNumber(123L);groupWorker = new GroupWorker();.setGroupName("Banjo
Men");.save(groupWorker);.setGroupAccessLevel(groupWorker);.save(accessLevel);getId
= accessRepository.findOne(accessLevel.getId()).getId();.delete(getId);mD=
groupWorker.getId();.delete(mD);groupWorkerTest=accessRepository.findOne(getId);.assertNull("It
was your mistake",groupWorkerTest);
}
@Testvoid testGetGroupById() throws Exception
{accessLevel = new AccessLevel();.setLevelNumber(123L);groupWorker = new
GroupWorker();.setGroupName("Banjo Men");.save(groupWorker);.setGroupAccessLevel(groupWorker);.save(accessLevel);accessLevelTest
= accessRepository.findOne(accessLevel.getId());mustEquals=
accessLevelTest.getLevelNumber();.assertNotNull("It was your
mistake!", accessLevelTest);.assertEquals((Object)mustEquals, 123L);.delete(accessLevel.getId());mD=
groupWorker.getId();.delete(mD);mustNull=accessRepository.findOne(accessLevel.getId());.assertNull("It
was your mistake", mustNull);
}
}
3.2 Класс BuildingsTest
import
org.junit.Assert;org.junit.Test;org.junit.runner.RunWith;org.springframework.beans.factory.annotation.Autowired;org.springframework.test.context.ContextConfiguration;org.springframework.test.context.junit4.SpringJUnit4ClassRunner;ua.com.lejastu.dao.BuildingsDao;ua.com.lejastu.entity.Buildings;ua.com.lejastu.repository.BuildingsRepository;
/**
* User: LejaStu
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {
"classpath*:applicationContext.xml"})class BuildingsTest {
@AutowiredBuildingsRepository
buildingsRepository;
@Testvoid testCreateGroup() throws Exception
{buildings = new
Buildings();.setPathFile("C:\\qwerty\\orange.jpg");.setAddress("KIEV
IS THE CAPITAL OF UKRAINE!");.save(buildings);getId =
buildings.getId();buildingsTest = buildingsRepository.findOne(getId);mustEquals=buildingsTest.getPathFile();.assertNotNull("It
was your mistake!", buildingsTest);.assertEquals(mustEquals,
"C:\\qwerty\\orange.jpg");.delete(getId);mustNull=buildingsRepository.findOne(buildings.getId());.assertNull("It
was your mistake", mustNull);
}
@Testvoid testUpdateGroup() throws Exception
{buildings = new
Buildings();.setPathFile("C:\\qwerty\\orange.jpg");.setAddress("KIEV
IS THE CAPITAL OF UKRAINE!");.save(buildings);buildingsTest =
buildingsRepository.findOne(buildings.getId());.setPathFile("C:\\qwerty\\strawberry.jpg");.saveAndFlush(buildingsTest);mustEquals=
buildingsTest.getPathFile();.assertNotNull("It was your mistake!",
buildingsTest);.assertEquals(mustEquals,
"C:\\qwerty\\strawberry.jpg");.delete(buildings.getId());mustNull=buildingsRepository.findOne(buildings.getId());.assertNull("It
was your mistake", mustNull);
}
@Testvoid testDeleteGroup() throws Exception
{buildings = new
Buildings();.setPathFile("C:\\qwerty\\orange.jpg");.setAddress("KIEV
IS THE CAPITAL OF UKRAINE!");.save(buildings);getId =
buildingsRepository.findOne(buildings.getId()).getId();.delete(getId);calendaringTest=buildingsRepository.findOne(getId);.assertNull("It
was your mistake",calendaringTest);
}
@Testvoid testGetGroupById() throws Exception {buildings
= new
Buildings();.setPathFile("C:\\qwerty\\orange.jpg");.setAddress("KIEV
IS THE CAPITAL OF UKRAINE!");.save(buildings);buildingsTest =
buildingsRepository.findOne(buildings.getId());mustEquals=
buildingsTest.getPathFile();.assertNotNull("It was your mistake!",
buildingsTest);.assertEquals(mustEquals,"C:\\qwerty\\orange.jpg");.delete(buildings.getId());mustNull=buildingsRepository.findOne(buildings.getId());.assertNull("It
was your mistake", mustNull);
}
}
3.3 Класс CalendaringTest
import org.junit.Assert;org.junit.Test;org.junit.runner.RunWith;org.springframework.beans.factory.annotation.Autowired;org.springframework.test.context.ContextConfiguration;org.springframework.test.context.junit4.SpringJUnit4ClassRunner;ua.com.lejastu.dao.CalendaringDao;ua.com.lejastu.entity.Calendaring;ua.com.lejastu.repository.CalendaringRepository;
java.util.Date;
/**
* User: LejaStu
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {
"classpath*:applicationContext.xml"})class CalendaringTest {
@AutowiredCalendaringRepository
calendaringRepository;
@Testvoid testCreateGroup() throws Exception
{calendaring = new Calendaring();.setDate(new
Date(100));.save(calendaring);getId = calendaring.getId();calendaringTest =
calendaringRepository.findOne(getId);mustEquals=calendaringTest.getDate();.assertNotNull("It
was your mistake!", calendaringTest);.assertEquals(mustEquals.toString(),
"1970-01-01");.delete(getId);mustNull=calendaringRepository.findOne(calendaring.getId());.assertNull("It
was your mistake", mustNull);
}
@Testvoid testUpdateGroup() throws Exception
{calendaring = new Calendaring();.setDate(new
Date(100L));.save(calendaring);calendaringTest =
calendaringRepository.findOne(calendaring.getId());.setDate(new
Date(101L));.saveAndFlush(calendaringTest);mustEquals=
calendaringTest.getDate();.assertNotNull("It was your mistake!",
calendaringTest);.assertEquals(mustEquals, new
Date(101L));.delete(calendaring.getId());mustNull=calendaringRepository.findOne(calendaring.getId());.assertNull("It
was your mistake", mustNull);
}
@Testvoid testDeleteGroup() throws Exception
{calendaring = new Calendaring();.setDate(new
Date(100L));.save(calendaring);getId =
calendaringRepository.findOne(calendaring.getId()).getId();.delete(getId);calendaringTest=calendaringRepository.findOne(getId);.assertNull("It
was your mistake",calendaringTest);
}
@Testvoid testGetGroupById() throws Exception
{calendaring = new Calendaring();.setDate(new Date(100L));.save(calendaring);calendaringTest
= calendaringRepository.findOne(calendaring.getId());mustEquals=
calendaringTest.getDate();.assertNotNull("It was your mistake!",
calendaringTest);.assertEquals(mustEquals.toString(),
"1970-01-01");.delete(calendaring.getId());mustNull=calendaringRepository.findOne(calendaring.getId());.assertNull("It
was your mistake", mustNull);
}
}
3.4 Класс GroupTest
import
org.junit.Assert;org.junit.Test;org.junit.runner.RunWith;org.springframework.beans.factory.annotation.Autowired;org.springframework.test.context.ContextConfiguration;org.springframework.test.context.junit4.SpringJUnit4ClassRunner;ua.com.lejastu.dao.GroupDao;ua.com.lejastu.entity.GroupWorker;ua.com.lejastu.repository.GroupRepository;
/**
* User: LejaStu
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations =
{"classpath:applicationContext.xml"})class GroupTest {
@AutowiredGroupRepository groupRepository;
@Testvoid testCreateGroup() throws Exception
{groupWorker = new GroupWorker();.setGroupName("testGroup");.save(groupWorker);getId
= groupWorker.getId();groupWorkerTest =
groupRepository.findOne(getId);mustEquals=groupWorkerTest.getGroupName();.assertNotNull("It
was your mistake!", groupWorkerTest);.assertEquals(mustEquals,
"testGroup");.delete(getId);mustNull=groupRepository.findOne(groupWorker.getId());.assertNull("It
was your mistake",mustNull);
}
@Testvoid testUpdateGroup() throws Exception
{groupWorker = new
GroupWorker();.setGroupName("testGroup");.save(groupWorker);groupWorkerTest
= groupRepository.findOne(groupWorker.getId());.setGroupName("Banjo
Men");.saveAndFlush(groupWorkerTest);mustEquals=
groupWorkerTest.getGroupName();.assertNotNull("It was your mistake!",
groupWorkerTest);.assertEquals(mustEquals, "Banjo Men");.delete(groupWorker.getId());mustNull=groupRepository.findOne(groupWorker.getId());.assertNull("It
was your mistake",mustNull);
}
@Testvoid testDeleteGroup() throws Exception
{groupWorker = new
GroupWorker();.setGroupName("testGroup");.save(groupWorker);getId =
groupRepository.findOne(groupWorker.getId()).getId();.delete(getId);groupWorkerTest=groupRepository.findOne(getId);.assertNull("It
was your mistake",groupWorkerTest);
}
@Testvoid testGetGroupById() throws Exception
{groupWorker = new GroupWorker();.setGroupName("Banjo
Men");.save(groupWorker);groupWorkerTest =
groupRepository.findOne(groupWorker.getId());mustEquals=
groupWorkerTest.getGroupName();.assertNotNull("It was your mistake!",
groupWorkerTest);.assertEquals(mustEquals, "Banjo
Men");.delete(groupWorker.getId());mustNull=groupRepository.findOne(groupWorker.getId());.assertNull("It
was your mistake",mustNull);
}
}
3.5 Класс MissedByIllnessTest
import
org.junit.Assert;org.junit.Test;org.junit.runner.RunWith;org.springframework.beans.factory.annotation.Autowired;org.springframework.test.context.ContextConfiguration;org.springframework.test.context.junit4.SpringJUnit4ClassRunner;ua.com.lejastu.dao.GroupDao;ua.com.lejastu.dao.MissedByIllnessDao;ua.com.lejastu.dao.UserDao;ua.com.lejastu.entity.Calendaring;ua.com.lejastu.entity.GroupWorker;ua.com.lejastu.entity.MissByIll;ua.com.lejastu.entity.User;ua.com.lejastu.repository.GroupRepository;ua.com.lejastu.repository.MissRepository;ua.com.lejastu.repository.UserRepository;
java.util.Date;
/**
* User: LejaStu
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {
"classpath*:applicationContext.xml"})class MissedByIllnessTest {
@AutowiredMissRepository missRepository;
@AutowiredUserRepository userRepository;
@AutowiredGroupRepository groupRepository;
@Testvoid testCreateGroup() throws Exception
{missByIll = new MissByIll();.setFromDate(new Date(100L));.setToDate(new
Date(105L));user = new
User();.setFirstName("Maria-Jose");.setLastName("Ivanova");.setBirthDay(new
Date(System.currentTimeMillis()));.setJob("Programmer");.setSalary(1234567890L);.setAddress("Kiev,Frunze
street, 124,
12");.setPhone("03456789");.setPassportData("CM-56789");.setPhoto("C:\\dir\\photo\\mji.jpg");.setDepartmentName("Alpha-1");.setObligedSpendTime(123456L);group=
new GroupWorker();.setGroupName("Alpha-1");.save(group);.setGroupUser(group);.save(user);.setUserMissed(user);.save(missByIll);getId
= missByIll.getId();missByIllTest =
missRepository.findOne(getId);mustEquals=missByIllTest.getToDate();.assertNotNull("It
was your mistake!", missByIllTest);.assertEquals(mustEquals.toString(),
"1970-01-01");.delete(getId);mD=
user.getId();.delete(mD);gD=group.getId();.delete(gD);mustNull=missRepository.findOne(missByIll.getId());.assertNull("It
was your mistake", mustNull);
}
@Testvoid testUpdateGroup() throws Exception
{missByIll = new MissByIll();.setFromDate(new Date(100L));.setToDate(new
Date(105L));user = new
User();.setFirstName("Maria-Jose");.setLastName("Ivanova");.setBirthDay(new
Date(System.currentTimeMillis()));.setJob("Programmer");.setSalary(1234567890L);.setAddress("Kiev,Frunze
street, 124,
12");.setPhone("03456789");.setPassportData("CM-56789");.setPhoto("C:\\dir\\photo\\mji.jpg");.setDepartmentName("Alpha-1");.setObligedSpendTime(123456L);group=
new GroupWorker();.setGroupName("Alpha-1");.save(group);.setGroupUser(group);.save(user);.setUserMissed(user);.save(missByIll);missByIllTest
= missRepository.findOne(missByIll.getId());.setToDate(new
Date(111L));.saveAndFlush(missByIllTest);mustEquals= missByIllTest.getToDate();.assertNotNull("It
was your mistake!", missByIllTest);.assertEquals(mustEquals, new
Date(111L));.delete(missByIll.getId());mD=
user.getId();.delete(mD);gD=group.getId();.delete(gD);mustNull=missRepository.findOne(12345L);.assertNull("It
was your mistake", mustNull);
}
@Testvoid testDeleteGroup() throws Exception
{missByIll = new MissByIll();.setFromDate(new Date(100L));.setToDate(new
Date(105L));user = new
User();.setFirstName("Maria-Jose");.setLastName("Ivanova");.setBirthDay(new
Date(System.currentTimeMillis()));.setJob("Programmer");.setSalary(1234567890L);.setAddress("Kiev,Frunze
street, 124,
12");.setPhone("03456789");.setPassportData("CM-56789");.setPhoto("C:\\dir\\photo\\mji.jpg");.setDepartmentName("Alpha-1");.setObligedSpendTime(123456L);group=
new GroupWorker();.setGroupName("Alpha-1");.save(group);.setGroupUser(group);.save(user);.setUserMissed(user);.save(missByIll);getId
= missRepository.findOne(missByIll.getId()).getId();.delete(getId);mD=
user.getId();.delete(mD);gD=group.getId();.delete(gD);transitionTest=missRepository.findOne(getId);.assertNull("It
was your mistake",transitionTest);
}
@Testvoid testGetGroupById() throws Exception
{missByIll = new MissByIll();.setFromDate(new Date(100L));.setToDate(new
Date(105L));user = new User();.setFirstName("Maria-Jose");.setLastName("Ivanova");.setBirthDay(new
Date(System.currentTimeMillis()));.setJob("Programmer");.setSalary(1234567890L);.setAddress("Kiev,Frunze
street, 124, 12");.setPhone("03456789");.setPassportData("CM-56789");.setPhoto("C:\\dir\\photo\\mji.jpg");.setDepartmentName("Alpha-1");.setObligedSpendTime(123456L);group=
new
GroupWorker();.setGroupName("Alpha-1");.save(group);.setGroupUser(group);.save(user);.setUserMissed(user);.save(missByIll);transitionTest
= missRepository.findOne(missByIll.getId());mustEquals=
transitionTest.getToDate();.assertNotNull("It was your mistake!",
transitionTest);.assertEquals(mustEquals.toString(),
"1970-01-01");.delete(missByIll.getId());mD=
user.getId();.delete(mD);gD=group.getId();.delete(gD);mustNull=missRepository.findOne(missByIll.getId());.assertNull("It
was your mistake", mustNull);
}
}
3.6 Класс RealSalaryTest
import
org.junit.Assert;org.junit.Test;org.junit.runner.RunWith;org.springframework.beans.factory.annotation.Autowired;org.springframework.test.context.ContextConfiguration;org.springframework.test.context.junit4.SpringJUnit4ClassRunner;ua.com.lejastu.dao.GroupDao;ua.com.lejastu.dao.RealSalaryDao;ua.com.lejastu.dao.UserDao;ua.com.lejastu.entity.GroupWorker;ua.com.lejastu.entity.RealSalary;ua.com.lejastu.entity.User;ua.com.lejastu.repository.GroupRepository;ua.com.lejastu.repository.RealSalaryRepository;ua.com.lejastu.repository.UserRepository;
java.util.Date;
/**
* User: LejaStu
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {
"classpath*:applicationContext.xml"})class RealSalaryTest {
@AutowiredRealSalaryRepository
realSalaryRepository;
@AutowiredUserRepository userRepository;
@AutowiredGroupRepository groupRepository;
@Testvoid testCreateGroup() throws Exception
{realSalary = new RealSalary();.setMonth(new
Date(100L));.setRealTimeWork(101L);.setSalary(105L);user = new
User();.setFirstName("Maria-Jose");.setLastName("Ivanova");.setBirthDay(new
Date(System.currentTimeMillis()));.setJob("Programmer");.setSalary(1234567890L);.setAddress("Kiev,Frunze
street, 124,
12");.setPhone("03456789");.setPassportData("CM-56789");.setPhoto("C:\\dir\\photo\\mji.jpg");.setDepartmentName("Alpha-1");.setObligedSpendTime(123456L);group=
new GroupWorker();.setGroupName("Alpha-1");.save(group);.setGroupUser(group);.save(user);.setUserSalary(user);.save(realSalary);getId
= realSalary.getId();realSalaryTest =
realSalaryRepository.findOne(getId);mustEquals=realSalaryTest.getSalary();.assertNotNull("It
was your mistake!",
realSalaryTest);.assertEquals((Object)mustEquals,105L);.delete(getId);mD=
user.getId();.delete(mD);gD=group.getId();.delete(gD);mustNull=realSalaryRepository.findOne(realSalary.getId());.assertNull("It
was your mistake", mustNull);
}
@Testvoid testUpdateGroup() throws Exception
{realSalary = new RealSalary();.setMonth(new
Date(100L));.setRealTimeWork(101L);.setSalary(105L);user = new
User();.setFirstName("Maria-Jose");.setLastName("Ivanova");.setBirthDay(new
Date(System.currentTimeMillis()));.setJob("Programmer");.setSalary(1234567890L);.setAddress("Kiev,Frunze
street, 124,
12");.setPhone("03456789");.setPassportData("CM-56789");.setPhoto("C:\\dir\\photo\\mji.jpg");.setDepartmentName("Alpha-1");.setObligedSpendTime(123456L);group=
new GroupWorker();.setGroupName("Alpha-1");.save(group);.setGroupUser(group);.save(user);.setUserSalary(user);.save(realSalary);realSalaryTest
=
realSalaryRepository.findOne(realSalary.getId());.setSalary(111L);.saveAndFlush(realSalaryTest);mustEquals=
realSalaryTest.getSalary();.assertNotNull("It was your mistake!",
realSalaryTest);.assertEquals((Object)mustEquals,
111L);.delete(realSalary.getId());mD=
user.getId();.delete(mD);gD=group.getId();.delete(gD);mustNull=realSalaryRepository.findOne(realSalary.getId());.assertNull("It
was your mistake", mustNull);
}
@Testvoid testDeleteGroup() throws Exception
{realSalary = new RealSalary();.setMonth(new
Date(100L));.setRealTimeWork(101L);.setSalary(105L);user = new
User();.setFirstName("Maria-Jose");.setLastName("Ivanova");.setBirthDay(new
Date(System.currentTimeMillis()));.setJob("Programmer");.setSalary(1234567890L);.setAddress("Kiev,Frunze
street, 124,
12");.setPhone("03456789");.setPassportData("CM-56789");.setPhoto("C:\\dir\\photo\\mji.jpg");.setDepartmentName("Alpha-1");.setObligedSpendTime(123456L);group=
new
GroupWorker();.setGroupName("Alpha-1");.save(group);.setGroupUser(group);.save(user);.setUserSalary(user);.save(realSalary);getId
= realSalaryRepository.findOne(realSalary.getId()).getId();.delete(getId);mD=
user.getId();.delete(mD);gD=group.getId();.delete(gD);transitionTest=realSalaryRepository.findOne(getId);.assertNull("It
was your mistake",transitionTest);
}
@Testvoid testGetGroupById() throws Exception
{realSalary = new RealSalary();.setMonth(new Date(100L));.setRealTimeWork(101L);.setSalary(105L);user
= new
User();.setFirstName("Maria-Jose");.setLastName("Ivanova");.setBirthDay(new
Date(System.currentTimeMillis()));.setJob("Programmer");.setSalary(1234567890L);.setAddress("Kiev,Frunze
street, 124, 12");.setPhone("03456789");.setPassportData("CM-56789");.setPhoto("C:\\dir\\photo\\mji.jpg");.setDepartmentName("Alpha-1");.setObligedSpendTime(123456L);group=
new GroupWorker();.setGroupName("Alpha-1");.save(group);.setGroupUser(group);.save(user);.setUserSalary(user);.save(realSalary);transitionTest
= realSalaryRepository.findOne(realSalary.getId());mustEquals=
transitionTest.getSalary();.assertNotNull("It was your mistake!",
transitionTest);.assertEquals((Object)mustEquals,105L);.delete(realSalary.getId());mD=
user.getId();.delete(mD);gD=group.getId();.delete(gD);mustNull=realSalaryRepository.findOne(realSalary.getId());.assertNull("It
was your mistake", mustNull);
}
}
3.7 Класс RoomTest
import
org.junit.Assert;org.junit.Test;org.junit.runner.RunWith;org.springframework.beans.factory.annotation.Autowired;org.springframework.test.context.ContextConfiguration;org.springframework.test.context.junit4.SpringJUnit4ClassRunner;ua.com.lejastu.dao.RoomDao;ua.com.lejastu.entity.Room;ua.com.lejastu.repository.RoomRepository;
/**
* User: LejaStu
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {
"classpath*:applicationContext.xml"})class RoomTest {
@AutowiredRoomRepository roomRepository;
@Testvoid testCreateGroup() throws Exception
{room = new Room();.setAccessLevel(11);.setNumber(33);.save(room);getId =
room.getId();roomTest =
roomRepository.findOne(getId);mustEquals=roomTest.getNumber();.assertNotNull("It
was your mistake!", roomTest);.assertEquals((Object)mustEquals,
33);.delete(getId);mustNull=roomRepository.findOne(room.getId());.assertNull("It
was your mistake", mustNull);
}
@Testvoid testUpdateGroup() throws Exception
{room = new Room();.setAccessLevel(11);.setNumber(33);.save(room);roomTest =
roomRepository.findOne(room.getId());.setNumber(15);.saveAndFlush(roomTest);mustEquals=
roomTest.getNumber();.assertNotNull("It was your mistake!",
roomTest);.assertEquals((Object)mustEquals,
15);.delete(room.getId());mustNull=roomRepository.findOne(room.getId());.assertNull("It
was your mistake", mustNull);
}
@Testvoid testDeleteGroup() throws Exception
{room = new Room();.setAccessLevel(11);.setNumber(33);.save(room);getId =
roomRepository.findOne(room.getId()).getId();.delete(getId);calendaringTest=roomRepository.findOne(getId);.assertNull("It
was your mistake",calendaringTest);
}
@Testvoid testGetGroupById() throws Exception
{room = new Room();.setAccessLevel(11);.setNumber(33);.save(room);roomTest =
roomRepository.findOne(room.getId());mustEquals=
roomTest.getNumber();.assertNotNull("It was your mistake!",
roomTest);.assertEquals((Object)mustEquals,33);.delete(room.getId());mustNull=roomRepository.findOne(room.getId());.assertNull("It
was your mistake", mustNull);
}
}
3.8 Класс StageTest
import org.junit.Assert;org.junit.Test;org.junit.runner.RunWith;org.springframework.beans.factory.annotation.Autowired;org.springframework.test.context.ContextConfiguration;org.springframework.test.context.junit4.SpringJUnit4ClassRunner;ua.com.lejastu.dao.StageDao;ua.com.lejastu.entity.Stage;ua.com.lejastu.repository.StageRepository;
/**
* User: LejaStu
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {
"classpath:applicationContext.xml"})class StageTest {
@AutowiredStageRepository stageRepository;
@Testvoid testCreateGroup() throws Exception
{stage = new
Stage();.setPathSvg("C:\\qwerty\\orange.jpg");.setStageNumber(33);.save(stage);getId
= stage.getId();stageTest =
stageRepository.findOne(getId);mustEquals=stageTest.getPathSvg();.assertNotNull("It
was your mistake!", stageTest);.assertEquals(mustEquals,
"C:\\qwerty\\orange.jpg");.delete(getId);mustNull=stageRepository.findOne(stage.getId());.assertNull("It
was your mistake", mustNull);
}
@Testvoid testUpdateGroup() throws Exception
{stage = new Stage();.setPathSvg("C:\\qwerty\\orange.jpg");.setStageNumber(33);.save(stage);stageTest
=
stageRepository.findOne(stage.getId());.setPathSvg("C:\\qwerty\\strawberry.jpg");.saveAndFlush(stageTest);mustEquals=
stageTest.getPathSvg();.assertNotNull("It was your mistake!", stageTest);.assertEquals(mustEquals,
"C:\\qwerty\\strawberry.jpg");.delete(stage.getId());mustNull=stageRepository.findOne(stage.getId());.assertNull("It
was your mistake", mustNull);
}
@Testvoid testDeleteGroup() throws Exception
{stage = new Stage();.setPathSvg("C:\\qwerty\\orange.jpg");.setStageNumber(33);.save(stage);getId
=
stageRepository.findOne(stage.getId()).getId();.delete(getId);calendaringTest=stageRepository.findOne(getId);.assertNull("It
was your mistake",calendaringTest);
}
@Testvoid testGetGroupById() throws Exception
{stage = new
Stage();.setPathSvg("C:\\qwerty\\orange.jpg");.setStageNumber(33);.save(stage);stageTest
= stageRepository.findOne(stage.getId());mustEquals=
stageTest.getPathSvg();.assertNotNull("It was your mistake!",
stageTest);.assertEquals(mustEquals,"C:\\qwerty\\orange.jpg");.delete(stage.getId());mustNull=stageRepository.findOne(stage.getId());.assertNull("It
was your mistake", mustNull);
}
}
3.9 Класс TransitionTest
import
org.junit.Assert;org.junit.Test;org.junit.runner.RunWith;org.springframework.beans.factory.annotation.Autowired;org.springframework.test.context.ContextConfiguration;org.springframework.test.context.junit4.SpringJUnit4ClassRunner;ua.com.lejastu.dao.*;ua.com.lejastu.entity.*;ua.com.lejastu.repository.*;
java.util.Date;
/**
* User: LejaStu
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {
"classpath*:applicationContext.xml"})class TransitionTest {
@AutowiredTransitionRepository
transitionRepository;
@AutowiredUserRepository userRepository;
@AutowiredGroupRepository groupRepository;
@AutowiredcalendaringRepository;
@AutowiredroomRepository;
@Testvoid testCreateGroup() throws Exception
{transition = new Transition();.setSpendTime(123L);.setFromRoom(1L);.setToRoom(9L);.setIsAccessPermitted(true);.setReason("OK");.setTimeIn(new
Date(System.currentTimeMillis()));.setTimeOut(new
Date(System.currentTimeMillis()));user = new
User();.setFirstName("Maria-Jose");.setLastName("Ivanova");.setBirthDay(new
Date(System.currentTimeMillis()));.setJob("Programmer");.setSalary(1234567890L);.setAddress("Kiev,Frunze
street, 124,
12");.setPhone("03456789");.setPassportData("CM-56789");.setPhoto("C:\\dir\\photo\\mji.jpg");.setDepartmentName("Alpha-1");.setObligedSpendTime(123456L);group=
new
GroupWorker();.setGroupName("Alpha-1");.save(group);.setGroupUser(group);.save(user);.setUserTransition(user);calendaring
= new Calendaring();.setDate(new
Date(System.currentTimeMillis()));.save(calendaring);.setCalendarTrans(calendaring);room
= new
Room();.setNumber(99);.setAccessLevel(99);.save(room);.setRoomTrans(room);.save(transition);getId
= transition.getId();transitionTest =
transitionRepository.findOne(getId);mustEquals=transitionTest.getSpendTime();.assertNotNull("It
was your mistake!", transitionTest);.assertEquals((Object) mustEquals,
123L);.delete(getId);mD=
user.getId();.delete(mD);gD=group.getId();.delete(gD);rD=room.getId();.delete(rD);cD=calendaring.getId();.delete(cD);mustNull=transitionRepository.findOne(transition.getId());.assertNull("It
was your mistake", mustNull);
}
@Testvoid testUpdateGroup() throws Exception
{transition = new
Transition();.setSpendTime(123L);.setFromRoom(1L);.setToRoom(9L);.setIsAccessPermitted(true);.setReason("OK");.setTimeIn(new
Date(System.currentTimeMillis()));.setTimeOut(new
Date(System.currentTimeMillis()));user = new
User();.setFirstName("Maria-Jose");.setLastName("Ivanova");.setBirthDay(new
Date(System.currentTimeMillis()));.setJob("Programmer");.setSalary(1234567890L);.setAddress("Kiev,Frunze
street, 124,
12");.setPhone("03456789");.setPassportData("CM-56789");.setPhoto("C:\\dir\\photo\\mji.jpg");.setDepartmentName("Alpha-1");.setObligedSpendTime(123456L);group=
new GroupWorker();.setGroupName("Alpha-1");.save(group);.setGroupUser(group);.save(user);.setUserTransition(user);calendaring
= new Calendaring();.setDate(new
Date(System.currentTimeMillis()));.save(calendaring);.setCalendarTrans(calendaring);room
= new
Room();.setNumber(99);.setAccessLevel(99);.save(room);.setRoomTrans(room);.save(transition);transitionTest
=
transitionRepository.findOne(transition.getId());.setSpendTime(1234567L);.saveAndFlush(transitionTest);mustEquals=
transitionTest.getSpendTime();.assertNotNull("It was your mistake!",
transitionTest);.assertEquals((Object)mustEquals, 1234567L);.delete(transition.getId());mD=
user.getId();.delete(mD);gD=group.getId();.delete(gD);rD=room.getId();.delete(rD);cD=calendaring.getId();.delete(cD);mustNull=transitionRepository.findOne(transition.getId());.assertNull("It
was your mistake", mustNull);
}
@Testvoid testDeleteGroup() throws Exception
{transition = new
Transition();.setSpendTime(123L);.setFromRoom(1L);.setToRoom(9L);.setIsAccessPermitted(true);.setReason("OK");.setTimeIn(new
Date(System.currentTimeMillis()));.setTimeOut(new Date(System.currentTimeMillis()));user
= new
User();.setFirstName("Maria-Jose");.setLastName("Ivanova");.setBirthDay(new
Date(System.currentTimeMillis()));.setJob("Programmer");.setSalary(1234567890L);.setAddress("Kiev,Frunze
street, 124, 12");.setPhone("03456789");.setPassportData("CM-56789");.setPhoto("C:\\dir\\photo\\mji.jpg");.setDepartmentName("Alpha-1");.setObligedSpendTime(123456L);group=
new
GroupWorker();.setGroupName("Alpha-1");.save(group);.setGroupUser(group);.save(user);.setUserTransition(user);calendaring
= new Calendaring();.setDate(new
Date(System.currentTimeMillis()));.save(calendaring);.setCalendarTrans(calendaring);room
= new
Room();.setNumber(99);.setAccessLevel(99);.save(room);.setRoomTrans(room);.save(transition);getId
= transitionRepository.findOne(transition.getId()).getId();.delete(getId);mD=
user.getId();.delete(mD);gD=group.getId();.delete(gD);rD=room.getId();.delete(rD);cD=calendaring.getId();.delete(cD);transitionTest=transitionRepository.findOne(getId);.assertNull("It
was your mistake",transitionTest);
}
@Testvoid testGetGroupById() throws Exception
{transition = new
Transition();.setSpendTime(123L);.setFromRoom(1L);.setToRoom(9L);.setIsAccessPermitted(true);.setReason("OK");.setTimeIn(new
Date(System.currentTimeMillis()));.setTimeOut(new Date(System.currentTimeMillis()));user
= new
User();.setFirstName("Maria-Jose");.setLastName("Ivanova");.setBirthDay(new
Date(System.currentTimeMillis()));.setJob("Programmer");.setSalary(1234567890L);.setAddress("Kiev,Frunze
street, 124, 12");.setPhone("03456789");.setPassportData("CM-56789");.setPhoto("C:\\dir\\photo\\mji.jpg");.setDepartmentName("Alpha-1");.setObligedSpendTime(123456L);group=
new GroupWorker();.setGroupName("Alpha-1");.save(group);.setGroupUser(group);.save(user);.setUserTransition(user);calendaring
= new Calendaring();.setDate(new
Date(System.currentTimeMillis()));.save(calendaring);.setCalendarTrans(calendaring);room
= new
Room();.setNumber(99);.setAccessLevel(99);.save(room);.setRoomTrans(room);.save(transition);transitionTest
= transitionRepository.findOne(transition.getId());mustEquals=
transitionTest.getReason();.assertNotNull("It was your mistake!",
transitionTest);.assertEquals(mustEquals,
"OK");.delete(transition.getId());mD=
user.getId();.delete(mD);gD=group.getId();.delete(gD);rD=room.getId();.delete(rD);cD=calendaring.getId();.delete(cD);mustNull=transitionRepository.findOne(transition.getId());.assertNull("It
was your mistake", mustNull);
}
}
3.10 Класс UserTest
import
org.junit.Assert;org.junit.Test;org.junit.runner.RunWith;org.springframework.beans.factory.annotation.Autowired;org.springframework.test.context.ContextConfiguration;org.springframework.test.context.junit4.SpringJUnit4ClassRunner;ua.com.lejastu.dao.GroupDao;ua.com.lejastu.dao.UserDao;ua.com.lejastu.entity.GroupWorker;ua.com.lejastu.entity.User;ua.com.lejastu.repository.GroupRepository;ua.com.lejastu.repository.UserRepository;
java.util.Date;
/**
* User: LejaStu
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {
"classpath*:applicationContext.xml"})class UserTest {
@AutowiredUserRepository userRepository;
@AutowiredGroupRepository groupRepository;
@Testvoid testCreateGroup() throws Exception
{user = new
User();.setFirstName("Maria-Jose");.setLastName("Ivanova");.setBirthDay(new
Date(System.currentTimeMillis()));.setJob("Programmer");.setSalary(1234567890L);.setAddress("Kiev,Frunze
street, 124,
12");.setPhone("03456789");.setPassportData("CM-56789");.setPhoto("C:\\dir\\photo\\mji.jpg");.setDepartmentName("Alpha-1");.setObligedSpendTime(123456L);groupWorker
= new GroupWorker();.setGroupName("Banjo
Men");.save(groupWorker);.setGroupUser(groupWorker);.save(user);getId =
user.getId();userTest =
userRepository.findOne(getId);mustEquals=userTest.getFirstName();.assertNotNull("It
was your mistake!",
userTest);.assertEquals(mustEquals,"Maria-Jose");.delete(getId);mD=
groupWorker.getId();.delete(mD);mustNull=userRepository.findOne(user.getId());.assertNull("It
was your mistake", mustNull);
}
@Testvoid testUpdateGroup() throws Exception
{user = new
User();.setFirstName("Maria-Jose");.setLastName("Ivanova");.setBirthDay(new
Date(System.currentTimeMillis()));.setJob("Programmer");.setSalary(1234567890L);.setAddress("Kiev,Frunze
street, 124, 12");.setPhone("03456789");.setPassportData("CM-56789");.setPhoto("C:\\dir\\photo\\mji.jpg");.setDepartmentName("Alpha-1");.setObligedSpendTime(123456L);groupWorker
= new GroupWorker();.setGroupName("Banjo
Men");.save(groupWorker);.setGroupUser(groupWorker);.save(user);userTest =
userRepository.findOne(user.getId());.setLastName("Compuiternaia");.saveAndFlush(userTest);mustEquals=
userTest.getLastName();.assertNotNull("It was your mistake!",
userTest);.assertEquals(mustEquals,
"Compuiternaia");.delete(user.getId());mD= groupWorker.getId();.delete(mD);mustNull=userRepository.findOne(user.getId());.assertNull("It
was your mistake", mustNull);
}
@Testvoid testDeleteGroup() throws Exception
{user = new
User();.setFirstName("Maria-Jose");.setLastName("Ivanova");.setBirthDay(new
Date(System.currentTimeMillis()));.setJob("Programmer");.setSalary(1234567890L);.setAddress("Kiev,Frunze
street, 124,
12");.setPhone("03456789");.setPassportData("CM-56789");.setPhoto("C:\\dir\\photo\\mji.jpg");.setDepartmentName("Alpha-1");.setObligedSpendTime(123456L);groupWorker
= new GroupWorker();.setGroupName("Banjo
Men");.save(groupWorker);.setGroupUser(groupWorker);.save(user);getId =
userRepository.findOne(user.getId()).getId();.delete(getId);mD=
groupWorker.getId();.delete(mD);groupWorkerTest=userRepository.findOne(getId);.assertNull("It
was your mistake",groupWorkerTest);
}
@Testvoid testGetGroupById() throws Exception
{user = new
User();.setFirstName("Maria-Jose");.setLastName("Ivanova");.setBirthDay(new
Date(System.currentTimeMillis()));.setJob("Programmer");.setSalary(1234567890L);.setAddress("Kiev,Frunze
street, 124,
12");.setPhone("03456789");.setPassportData("CM-56789");.setPhoto("C:\\dir\\photo\\mji.jpg");.setDepartmentName("Alpha-1");.setObligedSpendTime(123456L);groupWorker
= new GroupWorker();.setGroupName("Banjo Men");.save(groupWorker);.setGroupUser(groupWorker);.save(user);userTest
= userRepository.findOne(user.getId());mustEquals=
userTest.getLastName();.assertNotNull("It was your mistake!",
userTest);.assertEquals(mustEquals, "Ivanova");.delete(user.getId());mD=
groupWorker.getId();.delete(mD);mustNull=userRepository.findOne(user.getId());.assertNull("It
was your mistake", mustNull);
}
}
3.11 Класс WorkbenchTest
import
org.junit.Assert;org.junit.Test;org.junit.runner.RunWith;org.springframework.beans.factory.annotation.Autowired;org.springframework.test.context.ContextConfiguration;org.springframework.test.context.junit4.SpringJUnit4ClassRunner;ua.com.lejastu.dao.GroupDao;ua.com.lejastu.dao.WorkbenchDao;ua.com.lejastu.entity.GroupWorker;ua.com.lejastu.entity.Workbench;ua.com.lejastu.repository.GroupRepository;ua.com.lejastu.repository.WorkbenchRepository;
/**
* User: LejaStu
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {
"classpath*:applicationContext.xml"})class WorkbenchTest {
@AutowiredWorkbenchRepository
workbenchRepository;
@AutowiredGroupRepository groupRepository;
@Testvoid testCreateGroup() throws Exception
{workbench = new Workbench();.setWorkBenchNumber(123L);groupWorker = new
GroupWorker();.setGroupName("Banjo Men");.save(groupWorker);.setGroupWorkbench(groupWorker);.save(workbench);getId
= workbench.getId();workbenchTest =
workbenchRepository.findOne(getId);mustEquals=workbenchTest.getWorkBenchNumber();.assertNotNull("It
was your mistake!", workbenchTest);.assertEquals((Object) mustEquals,
123L);.delete(getId);mD=
groupWorker.getId();.delete(mD);mustNull=workbenchRepository.findOne(workbench.getId());.assertNull("It
was your mistake", mustNull);
}
@Testvoid testUpdateGroup() throws Exception
{workbench = new Workbench();.setWorkBenchNumber(123L);groupWorker = new
GroupWorker();.setGroupName("Banjo
Men");.save(groupWorker);.setGroupWorkbench(groupWorker);.save(workbench);workbenchTest
=
workbenchRepository.findOne(workbench.getId());.setWorkBenchNumber(1234567L);.saveAndFlush(workbenchTest);mustEquals=
workbenchTest.getWorkBenchNumber();.assertNotNull("It was your
mistake!", workbenchTest);.assertEquals((Object)mustEquals,
1234567L);.delete(workbench.getId());mD=
groupWorker.getId();.delete(mD);mustNull=workbenchRepository.findOne(workbench.getId());.assertNull("It
was your mistake", mustNull);
}
@Testvoid testDeleteGroup() throws Exception
{workbench = new Workbench();.setWorkBenchNumber(123L);groupWorker = new
GroupWorker();.setGroupName("Banjo
Men");.save(groupWorker);.setGroupWorkbench(groupWorker);.save(workbench);getId
= workbenchRepository.findOne(workbench.getId()).getId();.delete(getId);mD=
groupWorker.getId();.delete(mD);groupWorkerTest=workbenchRepository.findOne(getId);.assertNull("It
was your mistake",groupWorkerTest);
}
@Testvoid testGetGroupById() throws Exception
{workbench = new Workbench();.setWorkBenchNumber(123L);groupWorker = new
GroupWorker();.setGroupName("Banjo
Men");.save(groupWorker);.setGroupWorkbench(groupWorker);.save(workbench);workbenchTest
= workbenchRepository.findOne(workbench.getId());mustEquals=
workbenchTest.getWorkBenchNumber();.assertNotNull("It was your
mistake!", workbenchTest);.assertEquals((Object)mustEquals,
123L);.delete(workbench.getId());mD= groupWorker.getId();.delete(mD);mustNull=workbenchRepository.findOne(workbench.getId());.assertNull("It
was your mistake", mustNull);
}
}