diff --git a/pom.xml b/pom.xml index 748503b..a2166b5 100644 --- a/pom.xml +++ b/pom.xml @@ -25,6 +25,12 @@ 4.11 test + + org.jetbrains + annotations-java5 + RELEASE + compile + diff --git a/src/main/java/ru/lebedev/se/App.java b/src/main/java/ru/lebedev/se/App.java deleted file mode 100644 index 3ffb09b..0000000 --- a/src/main/java/ru/lebedev/se/App.java +++ /dev/null @@ -1,14 +0,0 @@ -package ru.lebedev.se; - -/** - * @author Анатолий Лебедев - * @version 1.0.0 - */ - -public class App -{ - public static void main(String[] args) { - System.out.println("Привет, мир!"); - } - -} diff --git a/src/main/java/ru/lebedev/se/Employee.java b/src/main/java/ru/lebedev/se/Employee.java new file mode 100644 index 0000000..11432c5 --- /dev/null +++ b/src/main/java/ru/lebedev/se/Employee.java @@ -0,0 +1,114 @@ +package ru.lebedev.se; + + +public class Employee { + private String fio; + private String position; + private String email; + private String phoneNumber; + private int salary; + private int age; + private final static String EMAIL = "ouroffice@ourwork.com"; // Если нет своей электронной почты, ставим рабочую + private final static String PHONE = "+78122233322"; // Если нет телефона - ставим рабочий + + //------------------------------------------------------------------------------------------------------------ + // Формируем простые сеттеры и геттеры + + public void setFio(String fio) { + this.fio = fio; + } + + public String getFio() { + return fio.toUpperCase(); // Выводим в верхнем регистре + } + + public void setPosition(String position) { + this.position = position; + } + + public String getPosition() { + return toTitleCase(position); // Выводим строчными буквами с первой заглавной + } + + public void setEmail(String email) { + this.email = email; + } + + public String getEmail() { + return email; + } + + public void setPhoneNumber(String phoneNumber) { + this.phoneNumber = phoneNumber; + } + + public String getPhoneNumber() { + return phoneNumber; + } + + public void setSalary(int salary) { + this.salary = salary; + } + + public int getSalary() { + return salary; + } + + public void setAge(int age) { + if (age > 0) + this.age = age; + else + this.age = age * (-1); // Переводим отрицательный возраст в положительный, считаем опечаткой + } + + public int getAge() { + return age; + } + + //------------------------------------------------------------------------------------------------------------ + // формируем конструкторы + + public Employee(String fio, String position, String email, String phoneNumber, int salary, int age) { + setFio(fio); + setPosition(position); + setEmail(email); + setPhoneNumber(phoneNumber); + setSalary(salary); + setAge(age); + } + + public Employee(String fio, String position, String phoneNumber, int salary, int age) { + this(fio, position, EMAIL, phoneNumber, salary, age); + } + + public Employee(String fio, String position, int salary, int age) { + this(fio, position, EMAIL, PHONE, salary, age); + } + + //------------------------------------------------------------------------------------------------------------ + // Преобразуем первый символ строки в верхний регистр, остальные в нижний + + public static String toTitleCase(String s) { + if (s.isEmpty()) { + return s; + } + return s.substring(0, 1).toUpperCase() + s.substring(1).toLowerCase(); + } + + //------------------------------------------------------------------------------------------------------------ + // Выводим данные работника с помощью геттеров для форматирования + + public void printInfo() { + System.out.println("Ф.И.О.: " + getFio() + ", Должность: " + getPosition() + ", Электронная почта: " + + getEmail() + ", Телефон: " + getPhoneNumber() + ", Зарплата: " + getSalary() + + ", Возраст: " + getAge()); + } + + // Выводим данные работника как введено + public void printInfoOriginal() { + System.out.println("Ф.И.О.: " + fio + ", Должность: " + position + ", Электронная почта: " + + email + ", Телефон: " + phoneNumber + ", Зарплата: " + salary + ", Возраст: " + age); + } +} + + diff --git a/src/main/java/ru/lebedev/se/Employees.java b/src/main/java/ru/lebedev/se/Employees.java new file mode 100644 index 0000000..05a522c --- /dev/null +++ b/src/main/java/ru/lebedev/se/Employees.java @@ -0,0 +1,28 @@ +package ru.lebedev.se; + +import java.util.Scanner; + +public class Employees { + + public static void main(String[] args) { + int edgeOfAge; + Employee[] EmployeeArray = new Employee[5]; + EmployeeArray[0] = new Employee("Иванов Иван", "Инженер", "ivanov@work.ru", "+78121111111", 30000, 45); + EmployeeArray[1] = new Employee("Петров Петр", "МеНеДжЕР", "+78122222222", 40000, 38); + EmployeeArray[2] = new Employee("Сидоров Сидор", "Бухгалтер", 45000, 42); + EmployeeArray[3] = new Employee("Неизвестный Эрнст", "ДиРЕктОр", "+74952222222", 100000, 60); + EmployeeArray[4] = new Employee("Львов Лев", "Программист", "lviv@work.ru", "+78125555555", 14000, 24); + + // Запросим пользователя о возрасте сотрудников, старше которого выводить на экран + Scanner sc = new Scanner(System.in); + System.out.println("Введите возраст, сотрудников старше которого выводить на экран: "); + edgeOfAge = sc.nextInt(); + System.out.println(); + sc.close(); + + // Выводим сотрудников + for (Employee employee : EmployeeArray) { + if (employee.getAge() > edgeOfAge) employee.printInfo(); + } + } +} diff --git a/src/main/java/ru/lebedev/se/chat/client/ChatClient.java b/src/main/java/ru/lebedev/se/chat/client/ChatClient.java new file mode 100644 index 0000000..159737f --- /dev/null +++ b/src/main/java/ru/lebedev/se/chat/client/ChatClient.java @@ -0,0 +1,9 @@ +package ru.lebedev.se.chat.client; + +public class ChatClient { + + public static void main(String[] args) throws Exception{ + final ClientService service = new ClientService(); + service.run(); + } +} diff --git a/src/main/java/ru/lebedev/se/chat/client/ClientService.java b/src/main/java/ru/lebedev/se/chat/client/ClientService.java new file mode 100644 index 0000000..91f8d9b --- /dev/null +++ b/src/main/java/ru/lebedev/se/chat/client/ClientService.java @@ -0,0 +1,128 @@ +package ru.lebedev.se.chat.client; + +import ru.lebedev.se.chat.server.api.ChatService; +import ru.lebedev.se.chat.server.model.Message; +import ru.lebedev.se.chat.server.model.Session; + +import javax.xml.namespace.QName; +import javax.xml.ws.Service; +import java.net.URL; +import java.util.*; + +public class ClientService { + + private static final String CMD_EXIT = "exit"; + + private static final String CMD_LOGIN = "login"; + + private static final String CMD_LOGOUT = "logout"; + + private static final String CMD_READ = "read"; + + private static final String CMD_SEND = "send"; + + private static final String CMD_USERS = "users"; + + private static final String CMD_BROADCAST = "broadcast"; + + private static final String LOCAL_PART = "ChatServiceBeanService"; + + private static final String LOCAL_NAMESPACE = "http://service.server.chat.se.lebedev.ru/"; + + private static final String WSDL = "http://localhost:8080/ChatService?wsdl"; + + private final URL url; + + private final QName qname; + + private final Service service; + + private final ChatService chatService; + + private final Scanner scanner; + + private Session session = null; + + public ClientService() throws Exception { + url = new URL(WSDL); + qname = new QName(LOCAL_NAMESPACE, LOCAL_PART); + service = Service.create(url, qname); + chatService = service.getPort(ChatService.class); + scanner = new Scanner(System.in); + } + + public void run() { + String cmd = ""; + while (!CMD_EXIT.equals(cmd)) { + System.out.println("ENTER CMD: "); + cmd = scanner.nextLine(); + switch (cmd) { + case CMD_LOGIN: + login(); + break; + + case CMD_LOGOUT: + logout(); + break; + + case CMD_READ: + read(); + break; + + case CMD_SEND: + send(); + break; + + case CMD_USERS: + users(); + break; + + case CMD_BROADCAST: + broadcast(); + break; + } + System.out.println(); + } + } + + private void login() { + System.out.println("ENTER LOGIN: "); + final String login = scanner.nextLine(); + System.out.println("ENTER PASSWORD: "); + final String password = scanner.nextLine(); + session = chatService.signIn(login, password); + final String msg = session != null ? "OK" : "ERROR"; + System.out.println("AUTH: " + msg); + } + + private void logout() { + chatService.signOut(session); + } + + private void send() { + System.out.println("ENTER LOGIN: "); + final String login = scanner.nextLine(); + System.out.println("ENTER MESSAGE: "); + final String message = scanner.nextLine(); + chatService.sendMessage(session, login, message); + } + + private void read() { + final List messages = chatService.getMessages(session); + for (final Message message : messages) { + System.out.println("** INCOME MESSAGE **"); + System.out.println("FROM: " + message.source); + System.out.println("TEXT: " + message.text); + } + } + + private void users() { + System.out.println(chatService.getListLogin()); + } + + private void broadcast() { + System.out.println("ENTER MESSAGE: "); + final String message = scanner.nextLine(); + chatService.sendBroadcast(session, message); + } +} diff --git a/src/main/java/ru/lebedev/se/chat/server/ChatServer.java b/src/main/java/ru/lebedev/se/chat/server/ChatServer.java new file mode 100644 index 0000000..7ef0a8a --- /dev/null +++ b/src/main/java/ru/lebedev/se/chat/server/ChatServer.java @@ -0,0 +1,16 @@ +package ru.lebedev.se.chat.server; + +import ru.lebedev.se.chat.server.api.ChatService; +import ru.lebedev.se.chat.server.service.ChatServiceBean; + +import javax.xml.ws.Endpoint; + +public class ChatServer { + + public static void main(String[] args) { + final ChatService service = new ChatServiceBean(); + service.register("admin", "admin"); + service.register("test", "test"); + Endpoint.publish("http://localhost:8080/ChatService?wsdl",service); + } +} diff --git a/src/main/java/ru/lebedev/se/chat/server/api/ChatService.java b/src/main/java/ru/lebedev/se/chat/server/api/ChatService.java new file mode 100644 index 0000000..b31d765 --- /dev/null +++ b/src/main/java/ru/lebedev/se/chat/server/api/ChatService.java @@ -0,0 +1,44 @@ +package ru.lebedev.se.chat.server.api; + +import ru.lebedev.se.chat.server.model.Message; +import ru.lebedev.se.chat.server.model.Session; +import ru.lebedev.se.chat.server.model.User; + +import javax.jws.WebMethod; +import javax.jws.WebParam; +import javax.jws.WebService; +import java.util.List; + +@WebService +public interface ChatService { + + @WebMethod + boolean register(@WebParam String login, @WebParam String password); + + @WebMethod + List getListLogin(); + + @WebMethod + boolean isLoginExists(@WebParam String login); + + @WebMethod + Session signIn(@WebParam String login, @WebParam String password); + + @WebMethod + User getUser(@WebParam Session session); + + @WebMethod + void signOut(@WebParam Session session); + + @WebMethod + List getMessages(@WebParam Session session); + + @WebMethod + void sendBroadcast(@WebParam Session session, @WebParam String message); + + @WebMethod + void sendMessage(@WebParam Session session, @WebParam String login, @WebParam String message); + + @WebMethod + void clearMessages(@WebParam Session session); +} diff --git a/src/main/java/ru/lebedev/se/chat/server/api/MessageService.java b/src/main/java/ru/lebedev/se/chat/server/api/MessageService.java new file mode 100644 index 0000000..b6d1617 --- /dev/null +++ b/src/main/java/ru/lebedev/se/chat/server/api/MessageService.java @@ -0,0 +1,16 @@ +package ru.lebedev.se.chat.server.api; + +import ru.lebedev.se.chat.server.model.Message; + +import java.util.List; + +public interface MessageService { + + List getMessage(String login); + + void sendBroadCast(String source, String text); + + void sendMessage(String source, String target, String text); + + void cleanMessage(String login); +} diff --git a/src/main/java/ru/lebedev/se/chat/server/api/SessionService.java b/src/main/java/ru/lebedev/se/chat/server/api/SessionService.java new file mode 100644 index 0000000..272bf36 --- /dev/null +++ b/src/main/java/ru/lebedev/se/chat/server/api/SessionService.java @@ -0,0 +1,14 @@ +package ru.lebedev.se.chat.server.api; + +import ru.lebedev.se.chat.server.model.Session; +import ru.lebedev.se.chat.server.model.User; + +public interface SessionService { + + Session signIn(String login, String password); + + User getUser(Session session); + + void signOut(Session session); + +} diff --git a/src/main/java/ru/lebedev/se/chat/server/api/UserService.java b/src/main/java/ru/lebedev/se/chat/server/api/UserService.java new file mode 100644 index 0000000..3d07b1c --- /dev/null +++ b/src/main/java/ru/lebedev/se/chat/server/api/UserService.java @@ -0,0 +1,24 @@ +package ru.lebedev.se.chat.server.api; + +import ru.lebedev.se.chat.server.model.User; + +import java.util.List; + +public interface UserService { + + boolean register(String login, String password); + + List getListLogin(); + + User getUser(String login); + + void createUser(String login, String password); + + int getCountUser(); + + void removeAll(); + + boolean isLoginExists(String login); + + void removeUser(String login); +} diff --git a/src/main/java/ru/lebedev/se/chat/server/model/Message.java b/src/main/java/ru/lebedev/se/chat/server/model/Message.java new file mode 100644 index 0000000..9733513 --- /dev/null +++ b/src/main/java/ru/lebedev/se/chat/server/model/Message.java @@ -0,0 +1,11 @@ +package ru.lebedev.se.chat.server.model; + +import java.util.UUID; + +public final class Message { + public String id = UUID.randomUUID().toString(); + public long timestamp = System.currentTimeMillis(); + public String source; + public String target; + public String text; +} diff --git a/src/main/java/ru/lebedev/se/chat/server/model/MessageBox.java b/src/main/java/ru/lebedev/se/chat/server/model/MessageBox.java new file mode 100644 index 0000000..3b90605 --- /dev/null +++ b/src/main/java/ru/lebedev/se/chat/server/model/MessageBox.java @@ -0,0 +1,6 @@ +package ru.lebedev.se.chat.server.model; + +import java.util.ArrayList; + +public final class MessageBox extends ArrayList { +} diff --git a/src/main/java/ru/lebedev/se/chat/server/model/Session.java b/src/main/java/ru/lebedev/se/chat/server/model/Session.java new file mode 100644 index 0000000..c6322fd --- /dev/null +++ b/src/main/java/ru/lebedev/se/chat/server/model/Session.java @@ -0,0 +1,23 @@ +package ru.lebedev.se.chat.server.model; + +import java.util.*; + +public final class Session { + public long timestamp = System.currentTimeMillis(); + public String id = UUID.randomUUID().toString(); + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Session session = (Session) o; + final boolean checkTimeStamp = Objects.equals(timestamp, session.timestamp); + final boolean checkSessionId = Objects.equals(id, session.id); + return checkTimeStamp && checkSessionId; + } + + @Override + public int hashCode() { + return Objects.hash(timestamp, id); + } +} diff --git a/src/main/java/ru/lebedev/se/chat/server/model/User.java b/src/main/java/ru/lebedev/se/chat/server/model/User.java new file mode 100644 index 0000000..4d0b07b --- /dev/null +++ b/src/main/java/ru/lebedev/se/chat/server/model/User.java @@ -0,0 +1,6 @@ +package ru.lebedev.se.chat.server.model; + +public final class User { + public String login; + public String password; +} diff --git a/src/main/java/ru/lebedev/se/chat/server/service/ChatServiceBean.java b/src/main/java/ru/lebedev/se/chat/server/service/ChatServiceBean.java new file mode 100644 index 0000000..307eb02 --- /dev/null +++ b/src/main/java/ru/lebedev/se/chat/server/service/ChatServiceBean.java @@ -0,0 +1,88 @@ +package ru.lebedev.se.chat.server.service; + +import ru.lebedev.se.chat.server.api.ChatService; +import ru.lebedev.se.chat.server.api.MessageService; +import ru.lebedev.se.chat.server.api.SessionService; +import ru.lebedev.se.chat.server.api.UserService; +import ru.lebedev.se.chat.server.model.Message; +import ru.lebedev.se.chat.server.model.Session; +import ru.lebedev.se.chat.server.model.User; + +import javax.jws.WebMethod; +import javax.jws.WebService; +import java.util.*; + +@WebService(endpointInterface = "ru.lebedev.se.chat.server.api.ChatService") +public final class ChatServiceBean implements ChatService { + + private final UserService userService = new UserServiceBean(); + + private final MessageService messageService = new MessageServiceBean(userService); + + private final SessionService sessionService = new SessionServiceBean(userService); + + @Override + @WebMethod + public boolean register(final String login, final String password) { + return userService.register(login, password); + } + + @Override + @WebMethod + public List getListLogin() { + return userService.getListLogin(); + } + + @Override + @WebMethod + public boolean isLoginExists(final String login) { + return userService.isLoginExists(login); + } + + @Override + @WebMethod + public Session signIn(String login, String password) { + return sessionService.signIn(login, password); + } + + @Override + @WebMethod + public User getUser(final Session session) { + return sessionService.getUser(session); + } + + @Override + @WebMethod + public void signOut(final Session session) { + sessionService.signOut(session); + } + + @Override + @WebMethod + public List getMessages(final Session session) { + final User user = sessionService.getUser(session); + return messageService.getMessage(user.login); + } + + @Override + @WebMethod + public void sendBroadcast(final Session session, final String message) { + final User user = sessionService.getUser(session); + messageService.sendBroadCast(user.login, message); + } + + @Override + @WebMethod + public void sendMessage(final Session session, final String login, final String message) { + final User source = sessionService.getUser(session); + final User target = userService.getUser(login); + messageService.sendMessage(source.login, target.login, message); + } + + @Override + @WebMethod + public void clearMessages(Session session) { + final User user = sessionService.getUser(session); + messageService.cleanMessage(user.login); + } +} diff --git a/src/main/java/ru/lebedev/se/chat/server/service/MessageServiceBean.java b/src/main/java/ru/lebedev/se/chat/server/service/MessageServiceBean.java new file mode 100644 index 0000000..fd148ba --- /dev/null +++ b/src/main/java/ru/lebedev/se/chat/server/service/MessageServiceBean.java @@ -0,0 +1,56 @@ +package ru.lebedev.se.chat.server.service; + +import ru.lebedev.se.chat.server.api.MessageService; +import ru.lebedev.se.chat.server.api.UserService; +import ru.lebedev.se.chat.server.model.Message; +import ru.lebedev.se.chat.server.model.MessageBox; + +import java.util.*; + +public final class MessageServiceBean implements MessageService { + + private final Map boxes = new HashMap<>(); + + private final UserService userService; + + public MessageServiceBean(final UserService userService) { + this.userService = userService; + } + + private MessageBox getMessageBox(final String login) { + if (login == null || login.isEmpty()) return null; + if (!boxes.containsKey(login)) boxes.put(login, new MessageBox()); + return boxes.get(login); + } + + @Override + public List getMessage(final String login) { + final MessageBox messageBox = getMessageBox(login); + cleanMessage(login); + return messageBox; + } + + @Override + public void sendBroadCast(final String source, final String text) { + final Collection logins = userService.getListLogin(); + for (final String target : logins) { + if (source.equals(target)) continue; + sendMessage(source, target, text); + } + } + + @Override + public void sendMessage(final String source, final String target, final String text) { + final Message message = new Message(); + message.source = source; + message.target = target; + message.text = text; + final MessageBox messageBox = getMessageBox(target); + messageBox.add(message); + } + + @Override + public void cleanMessage(final String login) { + boxes.put(login, new MessageBox()); + } +} diff --git a/src/main/java/ru/lebedev/se/chat/server/service/SessionServiceBean.java b/src/main/java/ru/lebedev/se/chat/server/service/SessionServiceBean.java new file mode 100644 index 0000000..68ad03d --- /dev/null +++ b/src/main/java/ru/lebedev/se/chat/server/service/SessionServiceBean.java @@ -0,0 +1,42 @@ +package ru.lebedev.se.chat.server.service; + +import ru.lebedev.se.chat.server.api.SessionService; +import ru.lebedev.se.chat.server.api.UserService; +import ru.lebedev.se.chat.server.model.Session; +import ru.lebedev.se.chat.server.model.User; + +import java.util.*; + +public final class SessionServiceBean implements SessionService { + + private final UserService userService; + + private final Map sessions = new HashMap<>(); + + public SessionServiceBean (final UserService userService){ + this.userService = userService; + } + @Override + public Session signIn(final String login, final String password) { + if (login == null || login.isEmpty()) return null; + if (password == null || password.isEmpty()) return null; + final User user = userService.getUser(login); + if (user == null) return null; + if (!password.equals(user.password)) return null; + final Session session = new Session(); + sessions.put(session, user); + return session; + } + + @Override + public User getUser(final Session session) { + if (session == null) return null; + return sessions.get(session); + } + + @Override + public void signOut(Session session) { + if (session == null) return; + sessions.remove(session); + } +} diff --git a/src/main/java/ru/lebedev/se/chat/server/service/UserServiceBean.java b/src/main/java/ru/lebedev/se/chat/server/service/UserServiceBean.java new file mode 100644 index 0000000..04bb781 --- /dev/null +++ b/src/main/java/ru/lebedev/se/chat/server/service/UserServiceBean.java @@ -0,0 +1,64 @@ +package ru.lebedev.se.chat.server.service; + +import ru.lebedev.se.chat.server.api.UserService; +import ru.lebedev.se.chat.server.model.User; + +import java.util.*; + +public final class UserServiceBean implements UserService { + + private final Map users = new HashMap<>(); + + + @Override + public boolean register(String login, String password) { + if (login == null || login.isEmpty()) return false; + if (password == null || password.isEmpty()) return false; + if (users.containsKey(login)) return false; + createUser(login, password); + return true; + } + + @Override + public List getListLogin() { + return new ArrayList<>(users.keySet()); + } + + @Override + public User getUser(String login) { + if (login == null || login.isEmpty()) return null; + return users.get(login); + } + + @Override + public void createUser(final String login, final String password) { + if (login == null || login.isEmpty()) return; + if (password == null || password.isEmpty()) return; + if (users.containsKey(login)) return; + final User user = new User(); + user.login = login; + user.password = password; + users.put(login, user); + } + + @Override + public int getCountUser() { + return users.size(); + } + + @Override + public void removeAll() { + users.clear(); + } + + @Override + public boolean isLoginExists(String login) { + return users.containsKey(login); + } + + @Override + public void removeUser(String login) { + users.remove(login); + + } +} diff --git a/src/test/java/ru/lebedev/se/ChatServerTest.java b/src/test/java/ru/lebedev/se/ChatServerTest.java new file mode 100644 index 0000000..e304b36 --- /dev/null +++ b/src/test/java/ru/lebedev/se/ChatServerTest.java @@ -0,0 +1,73 @@ +package ru.lebedev.se; + +import org.junit.Assert; +import org.junit.Test; +import ru.lebedev.se.chat.server.api.ChatService; +import ru.lebedev.se.chat.server.model.Session; +import ru.lebedev.se.chat.server.service.ChatServiceBean; + +public class ChatServerTest { + + @Test + public void testRegister() { + final ChatService service = new ChatServiceBean(); + Assert.assertTrue(service.register("admin", "admin")); + Assert.assertFalse(service.register("admin", "admin")); + } + + @Test + public void testSignIn() { + final ChatService service = new ChatServiceBean(); + Assert.assertNull(service.signIn("admin", "admin")); + service.register("admin", "admin"); + Assert.assertNotNull(service.signIn("admin", "admin")); + } + + @Test + public void testSignOut() { + final ChatService service = new ChatServiceBean(); + service.register("admin", "admin"); + + final Session sessionAdmin = service.signIn("admin", "admin"); + Assert.assertNotNull(sessionAdmin); + Assert.assertNotNull(service.getUser(sessionAdmin)); + service.signOut(sessionAdmin); + Assert.assertNull(service.getUser(sessionAdmin)); + } + + @Test + public void testSendBroadcast() { + final ChatService service = new ChatServiceBean(); + service.register("admin", "admin"); + service.register("test", "test"); + service.register("noname", "nopass"); + + final Session sessionAdmin = service.signIn("admin", "admin"); + service.sendBroadcast(sessionAdmin, "Hello world!"); + Assert.assertTrue(service.getMessages(sessionAdmin).isEmpty()); + + final Session sessionTest = service.signIn("test", "test"); + Assert.assertFalse(service.getMessages(sessionTest).isEmpty()); + Assert.assertTrue(service.getMessages(sessionTest).isEmpty()); + + final Session sessionNoname = service.signIn("noname", "nopass"); + Assert.assertFalse(service.getMessages(sessionNoname).isEmpty()); + Assert.assertTrue(service.getMessages(sessionNoname).isEmpty()); + } + + @Test + public void testSendMessage() { + final ChatService service = new ChatServiceBean(); + service.register("admin", "admin"); + service.register("test", "test"); + + final Session sessionAdmin = service.signIn("admin", "admin"); + service.sendMessage(sessionAdmin, "test", "Hello world!"); + Assert.assertTrue(service.getMessages(sessionAdmin).isEmpty()); + + final Session sessionTest = service.signIn("test", "test"); + Assert.assertFalse(service.getMessages(sessionTest).isEmpty()); + Assert.assertTrue(service.getMessages(sessionTest).isEmpty()); + + } +} \ No newline at end of file diff --git a/src/test/java/ru/lebedev/se/TestMap.java b/src/test/java/ru/lebedev/se/TestMap.java new file mode 100644 index 0000000..1c2ffb3 --- /dev/null +++ b/src/test/java/ru/lebedev/se/TestMap.java @@ -0,0 +1,19 @@ +package ru.lebedev.se; + +import org.junit.Test; + +import java.util.HashMap; +import java.util.Map; + +public class TestMap { + + @Test + public void test() { + final Map map = new HashMap<>(); + map.put("100", "Ivanoff"); + map.put("101", "Petroff"); + map.put("102", "Sidoroff"); + + System.out.println(map.get("102")); + } +} diff --git a/src/test/java/ru/lebedev/se/TestUUID.java b/src/test/java/ru/lebedev/se/TestUUID.java new file mode 100644 index 0000000..cd4f84d --- /dev/null +++ b/src/test/java/ru/lebedev/se/TestUUID.java @@ -0,0 +1,13 @@ +package ru.lebedev.se; + +import org.junit.Test; + +import java.util.UUID; + +public class TestUUID { + @Test + public void test(){ + System.out.println(UUID.randomUUID().toString()); + System.out.println(System.currentTimeMillis()); + } +}