-
Notifications
You must be signed in to change notification settings - Fork 201
Expand file tree
/
Copy pathTask05Main.java
More file actions
89 lines (69 loc) · 4.67 KB
/
Task05Main.java
File metadata and controls
89 lines (69 loc) · 4.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
package com.example.task05;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.*;
public class Task05Main {
public static void main(String[] args) {
// Random variables
String randomFrom = "RandomSender"; // Некоторая случайная строка. Можете выбрать ее самостоятельно.
String randomTo = "RandomRecipient"; // Некоторая случайная строка. Можете выбрать ее самостоятельно.
int randomSalary = 100; // Некоторое случайное целое положительное число. Можете выбрать его самостоятельно.
// Создание списка из трех почтовых сообщений.
MailMessage firstMessage = new MailMessage(
"Robert Howard",
"H.P. Lovecraft",
"This \"The Shadow over Innsmouth\" story is real masterpiece, Howard!"
);
assert firstMessage.getFrom().equals("Robert Howard") : "Wrong firstMessage from address";
assert firstMessage.getTo().equals("H.P. Lovecraft") : "Wrong firstMessage to address";
assert firstMessage.getContent().endsWith("Howard!") : "Wrong firstMessage content ending";
MailMessage secondMessage = new MailMessage(
"Jonathan Nolan",
"Christopher Nolan",
"Брат, почему все так хвалят только тебя, когда практически все сценарии написал я. Так не честно!"
);
MailMessage thirdMessage = new MailMessage(
"Stephen Hawking",
"Christopher Nolan",
"Я так и не понял Интерстеллар."
);
List<MailMessage> messages = Arrays.asList(
firstMessage, secondMessage, thirdMessage
);
// Создание почтового сервиса.
MailService<String> mailService = new MailService<>();
// Обработка списка писем почтовым сервисом
messages.stream().forEachOrdered(mailService);
// Получение и проверка словаря "почтового ящика",
// где по получателю можно получить список сообщений, которые были ему отправлены
Map<String, List<String>> mailBox = mailService.getMailBox();
assert mailBox.get("H.P. Lovecraft").equals(
Arrays.asList(
"This \"The Shadow over Innsmouth\" story is real masterpiece, Howard!"
)
) : "wrong mailService mailbox content (1)";
assert mailBox.get("Christopher Nolan").equals(
Arrays.asList(
"Брат, почему все так хвалят только тебя, когда практически все сценарии написал я. Так не честно!",
"Я так и не понял Интерстеллар."
)
) : "wrong mailService mailbox content (2)";
assert mailBox.get(randomTo).equals(Collections.<String>emptyList()) : "wrong mailService mailbox content (3)";
// Создание списка из трех зарплат.
Salary salary1 = new Salary("Facebook", "Mark Zuckerberg", 1);
Salary salary2 = new Salary("FC Barcelona", "Lionel Messi", Integer.MAX_VALUE);
Salary salary3 = new Salary(randomFrom, randomTo, randomSalary);
// Создание почтового сервиса, обрабатывающего зарплаты.
MailService<Integer> salaryService = new MailService<>();
// Обработка списка зарплат почтовым сервисом
Arrays.asList(salary1, salary2, salary3).forEach(salaryService);
// Получение и проверка словаря "почтового ящика",
// где по получателю можно получить список зарплат, которые были ему отправлены.
Map<String, List<Integer>> salaries = salaryService.getMailBox();
assert salaries.get(salary1.getTo()).equals(Arrays.asList(1)) : "wrong salaries mailbox content (1)";
assert salaries.get(salary2.getTo()).equals(Arrays.asList(Integer.MAX_VALUE)) : "wrong salaries mailbox content (2)";
assert salaries.get(randomTo).equals(Arrays.asList(randomSalary)) : "wrong salaries mailbox content (3)";
}
}